Présentation
Dans ce didacticiel, nous expliquerons comment effectuer certaines modifications IPTables de base qui contribueront grandement à sécuriser votre serveur. Cela se fait sur une nouvelle installation d'Ubuntu 14.04 64 bits dans notre Cloud. Cela peut également être fait sur n'importe quelle version de notre système d'exploitation Ubuntu 12.04 ainsi que sur Debian. Toutes nos commandes sont exécutées en tant que root et l'édition des fichiers se fait via vi. Si vous utilisez un autre utilisateur pour ce faire, vous aurez besoin d'un accès sudo. Vous pouvez utiliser n'importe quel éditeur de fichiers que vous souhaitez.
Sécuriser votre serveur Cloud avec IPTables
Malheureusement, nos Ubuntu 14.04 ou 12.04 ne sont pas déjà équipés d'IPTables. Dans Debian, IPTables est déjà installé, vous pouvez donc ignorer cette étape. Notre première étape avec Ubuntu consiste donc à installer IPTables. Pour ce faire, lancez simplement :
apt-get install iptables
Après avoir installé IPTables, vous pouvez le vérifier en exécutant :
iptables –L
Cela listera toutes les règles que vous avez en cours d'exécution et vérifiera pour vous que vous avez installé iptables et que cela fonctionne. Pour le moment, c'est juste vide mais vous pouvez voir les trois types de chaînes disponibles.
Ensuite, nous allons installer le package iptables-persistent. Ce que cela fait, c'est qu'il écrira nos règles IPTables actuelles dans un nouveau fichier (/etc/iptables/rules.v4) et il gérera automatiquement l'application de nos règles au redémarrage. Assez utile !

/etc/iptables/rules.v4
Lorsque vous entrez dans le fichier, il devrait ressembler à l'image ci-dessus. Il y a quelques éléments que nous voudrons ajouter avant notre première règle personnalisée. Ce serait une règle pour l'interface de bouclage et une pour le trafic déjà établi. Vous pouvez les voir ci-dessous. La première règle personnalisée que nous allons ajouter permettra l'accès SSH à notre serveur. Nous voudrons ajouter les règles au-dessus de la ligne COMMIT car COMMIT délimite la fin de notre ensemble de règles INPUT, FORWARD et OUTPUT. Pour savoir ce que signifient tous les segments IPTables et plus d'informations à leur sujet, veuillez consulter notre section IPTables.
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
Remarque :Si vous avez un port SSH personnalisé comme nous l'avons configuré dans le didacticiel Changer votre port SSH dans Ubuntu, vous devrez changer le 22 pour qu'il soit le port SSH que vous avez configuré. Dans notre cas 3389

/etc/iptables/rules.v4
Vos règles doivent ressembler à l'image ci-dessus. Maintenant, avant de terminer ici, il y a encore deux choses que nous devons changer. Où les règles disent :
:INPUT ACCEPT and :FORWARD ACCEPT
Nous voudrons leur faire avoir :
:INPUT DROP and :FORWARD DROP
Ce que cela fait, c'est qu'il dit à IPTables de bloquer et de supprimer tout le trafic qui ne va pas vers les ports que vous spécifiez pour autoriser le passage. Cela empêchera les personnes d'essayer d'utiliser les services que vous exécutez, à moins que vous n'ayez ouvert ces ports au public.
Lorsque vous avez terminé, cela devrait ressembler à ce qui précède. Une fois là-bas, enregistrez simplement le fichier et fermez-le. La dernière chose que nous devons faire est de charger ces nouvelles règles dans les IPTables actuelles. Pour ce faire, il vous suffit d'exécuter :
iptables-restore < /etc/iptables/rules.v4
Pour vérifier que nos règles sont en place, exécutez simplement la même commande que précédemment :
iptables –L
Vous devriez voir quelque chose de similaire à la page ci-dessous.

/etc/iptables/rules.v4
Après ça, c'est tout ! Vos nouvelles règles entrent en vigueur immédiatement, et elles resteront pendant les redémarrages. Si vous souhaitez obtenir plus de restrictions avec vos tables IP, en particulier l'accès à SSH, vous pouvez procéder comme suit pour chaque adresse IP qui doit être autorisée. Cela implique de modifier la règle SSH et d'en ajouter d'autres. Là où il indique la règle SSH que nous avons identifiée précédemment, vous souhaitez la modifier pour qu'elle soit :
-A INPUT -s IPADDR –m tcp –p tcp --dport 3389 –j ACCEPT
Où IPADDR est votre adresse IP à laquelle vous souhaitez avoir un accès SSH à votre serveur. Si vous n'avez pas configuré de port SSH personnalisé, vous voudriez qu'il reste 22 et non 3389.
Pour autoriser des ports spécifiques, par exemple pour l'accès Web à votre site Web, tout ce que vous avez à faire est de connaître/trouver le port sur lequel le service s'exécute (ou sur lequel vous l'avez configuré) et son protocole (TCP ou UDP) et de l'autoriser. Par exemple, l'accès au site :
-A INPUT -m tcp -p tcp --dport 80 -j ACCEPT
Et maintenant, Internet a accès à l'hébergement Web que vous faites.
Gardez à l'esprit que lors de l'ajout de nouvelles règles aux sections INPUT ou FORWARD, il est recommandé de regrouper les nouvelles règles avec des règles similaires. INPUT avec INPUT et FORWARD avec FORWARD. Vous voudrez également vous assurer que toutes les règles que vous ajoutez et qui autorisent le passage d'un nouveau port sont répertoriées AU-DESSUS de toute instruction de rejet pour cet ensemble de règles. Si elles sont répertoriées après des lignes de rejet, les règles ne prendront pas effet.
Pour voir la sortie de ce que fait IPTables et/ou bloque avec ses règles, vous pouvez exécuter ce qui suit. Il affichera les règles que vous avez et tout ce qui concerne les paquets concernant la suppression des connexions ou leur autorisation.
iptables -L -vn
Pour savoir ce que signifient tous les segments IPTables et plus d'informations à leur sujet, veuillez consulter notre section IPTables (lien).
Remarque :Si vous utilisez les services cloud d'Atlantic.Net, vous pouvez toujours accéder à votre serveur via notre visionneuse VNC dans le portail cloud si vous vous verrouillez.