GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Tutoriel Iptables - Sécuriser le VPS Ubuntu avec le pare-feu Linux

Vous cherchez un tutoriel complet sur iptables ? Restez sur place. Dans cet article, nous allons vous montrer comment installer et utiliser iptables sur le système Ubuntu. En vous familiarisant avec cet outil de pare-feu Linux, vous pouvez sécuriser votre VPS Linux à l'aide de l'interface de ligne de commande.

Qu'est-ce qu'Iptables et comment ça marche ?

En termes simples, iptables est un programme de pare-feu pour Linux. Il surveillera le trafic depuis et vers votre serveur à l'aide de tableaux . Ces tableaux contiennent des ensembles de règles , appelées chaînes , qui filtrera les paquets de données entrants et sortants.

[optin-monster-shortcode id=”fv4lqeko3gylvecpszws”]

Lorsqu'un paquet correspond à une règle , on lui attribue une cible , qui peut être une autre chaîne ou l'une de ces valeurs spéciales :

  • ACCEPTER – permettra au paquet de passer.
  • DÉPOSER – ne laissera pas passer le paquet.
  • RETOUR – empêche le paquet de traverser une chaîne et lui dit de revenir à la chaîne précédente.

Dans ce tutoriel iptables, nous allons travailler avec l'une des tables par défaut, appelée filter . Il se compose de trois chaînes :

  • ENTRÉE – contrôle les paquets entrants vers le serveur.
  • AVANCER – filtre les paquets entrants qui seront transférés ailleurs.
  • SORTIE – filtrer les paquets qui sortent de votre serveur.

Avant de commencer ce guide, assurez-vous d'avoir SSH racine ou sudo accès à votre machine qui s'exécute sur Ubuntu 16.04 ou version ultérieure. Vous pouvez établir la connexion via PuTTY (Windows) ou terminal shell (Linux, macOS). Si vous possédez Hostinger VPS, vous pouvez obtenir les informations de connexion SSH dans l'onglet Serveurs de hPanel.

Important ! les règles iptables ne s'appliquent qu'à ipv4 . Si vous souhaitez configurer un pare-feu pour ipv6 protocole, vous devrez utiliser ip6tables Au lieu.

Comment installer et utiliser le pare-feu Iptables Linux

Nous allons diviser ce tutoriel iptables en trois étapes. Tout d'abord, vous apprendrez à installer l'outil sur Ubuntu. Dans un second temps, nous allons vous montrer comment définir les règles. Enfin, nous vous guiderons pour effectuer des modifications persistantes dans iptables.

Étape 1 — Installation d'Iptables

Iptables est préinstallé dans la plupart des distributions Linux. Cependant, si vous ne l'avez pas dans le système Ubuntu/Debian par défaut, suivez les étapes ci-dessous :

  1. Connectez-vous à votre serveur via SSH. Si vous ne savez pas, vous pouvez lire notre tutoriel SSH.
  2. Exécutez la commande suivante une par une :
    sudo apt-get update
    sudo apt-get install iptables
  3. Vérifiez l'état de votre configuration iptables actuelle en exécutant :
    sudo iptables -L -v

    Ici, le -L l'option est utilisée pour lister toutes les règles, et -v sert à afficher les informations dans un format plus détaillé. Ci-dessous l'exemple de sortie :

    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target     prot opt in out   source destination
    
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target     prot opt in out   source destination
    
    Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target     prot opt in out   source destination

Vous aurez maintenant installé le pare-feu Linux. À ce stade, vous pouvez remarquer que toutes les chaînes sont définies sur ACCEPTER et n'ont pas de règles. Ce n'est pas sécurisé car n'importe quel paquet peut passer sans filtrage.

Ne vous inquiétez pas. Nous vous expliquerons comment définir des règles à la prochaine étape de notre tutoriel iptables.

Étape 2 - Définir les règles de la chaîne

Définir une règle signifie l'ajouter à la chaîne. Pour ce faire, vous devez insérer le -A option (Ajouter ) juste après la commande iptables, comme ceci :

sudo iptables -A

Il alertera iptables que vous ajoutez de nouvelles règles à une chaîne. Ensuite, vous pouvez combiner la commande avec d'autres options, telles que :

  • -i (interface ) — l'interface réseau dont vous voulez filtrer le trafic, comme eth0, lo, ppp0, etc.
  • -p (protocole ) — le protocole réseau où se déroule votre processus de filtrage. Il peut s'agir soit de tcp , udp , udplit , icmp , sctp , icmpv6 , etc. Vous pouvez également taper tout pour choisir chaque protocole.
  • -s (source ) — l'adresse d'où provient le trafic. Vous pouvez ajouter un nom d'hôte ou une adresse IP.
  • –dport (port de destination ) — le numéro de port de destination d'un protocole, tel que 22 (SSH ), 443 (https ), etc.
  • -j (cible ) — le nom de la cible (ACCEPTER , DÉPOSER , RETOUR ). Vous devez l'insérer chaque fois que vous créez une nouvelle règle.

Si vous voulez tous les utiliser, vous devez écrire la commande dans cet ordre :

sudo iptables -A <chain> -i <interface> -p <protocol (tcp/udp) > -s <source> --dport <port no.>  -j <target>

Une fois que vous avez compris la syntaxe de base, vous pouvez commencer à configurer le pare-feu pour donner plus de sécurité à votre serveur. Pour ce tutoriel iptables, nous allons utiliser le INPUT chaîne par exemple.

Activation du trafic sur Localhost

Pour autoriser le trafic sur localhost, tapez cette commande :

sudo iptables -A INPUT -i lo -j ACCEPT

Pour ce tutoriel iptables, nous utilisons lo ou bouclage interface. Il est utilisé pour toutes les communications sur l'hôte local. La commande ci-dessus s'assurera que les connexions entre une base de données et une application Web sur la même machine fonctionnent correctement.

Activation des connexions sur les ports HTTP, SSH et SSL

Ensuite, nous voulons http (port 80 ), https (port 443 ), et ssh (port 22 ) les connexions fonctionnent comme d'habitude. Pour ce faire, nous devons spécifier le protocole (-p ) et le port correspondant (–dport ). Vous pouvez exécuter ces commandes une par une :

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Il est temps de vérifier si les règles ont été ajoutées dans iptables :

sudo iptables -L -v

Il devrait renvoyer les résultats ci-dessous, ce qui signifie que toutes les connexions de protocole TCP à partir des ports spécifiés seront acceptées :

Filtrer les paquets en fonction de la source

Iptables vous permet de filtrer les paquets en fonction d'une adresse IP ou d'une plage d'adresses IP. Vous devez le spécifier après le -s option. Par exemple, pour accepter des paquets de 192.168.1.3 , la commande serait :

sudo iptables -A INPUT -s 192.168.1.3 -j ACCEPT

Vous pouvez également rejeter les paquets d'une adresse IP spécifique en remplaçant le ACCEPTER cible avec DROP .

sudo iptables -A INPUT -s 192.168.1.3 -j DROP

Si vous souhaitez supprimer des paquets d'une plage d'adresses IP, vous devez utiliser le -m option et plage IP module. Ensuite, spécifiez la plage d'adresses IP avec –src-range . N'oubliez pas qu'un trait d'union doit séparer la plage d'adresses IP sans espace, comme ceci :

sudo iptables -A INPUT -m iprange --src-range 192.168.1.100-192.168.1.200 -j DROP

Suppression de tout autre trafic

Il est crucial d'utiliser le DROP cible pour tout autre trafic après avoir défini –dport règles. Cela empêchera une connexion non autorisée d'accéder au serveur via d'autres ports ouverts. Pour ce faire, tapez simplement :

sudo iptables -A INPUT -j DROP

Maintenant, la connexion en dehors du port spécifié sera abandonnée.

Règles de suppression

Si vous souhaitez supprimer toutes les règles et repartir à zéro, vous pouvez utiliser le -F option (vider ):

sudo iptables -F

Cette commande efface toutes les règles actuelles. Cependant, pour supprimer une règle spécifique, vous devez utiliser l'option -D. Tout d'abord, vous devez voir toutes les règles disponibles en saisissant la commande suivante :

sudo iptables -L --line-numbers

Vous obtiendrez une liste de règles avec des numéros :

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination

1    ACCEPT     all -- 192.168.0.4          anywhere
2    ACCEPT     tcp -- anywhere             anywhere tcp dpt:https
3    ACCEPT     tcp -- anywhere             anywhere tcp dpt:http
4    ACCEPT     tcp -- anywhere             anywhere tcp dpt:ssh

Pour supprimer une règle, insérez la chaîne correspondante et le numéro de la liste. Disons que pour ce tutoriel iptables, nous voulons nous débarrasser de la règle numéro trois de l'INPUT chaîne. La commande doit être :

sudo iptables -D INPUT 3

Étape 3 – Modifications persistantes

Les règles iptables que nous avons créées sont enregistrées en mémoire. Cela signifie que nous devons les redéfinir au redémarrage. Pour rendre ces modifications persistantes après le redémarrage du serveur, vous pouvez utiliser cette commande :

sudo /sbin/iptables-save

Il enregistrera les règles actuelles dans le fichier de configuration du système, qui sera utilisé pour reconfigurer les tables à chaque redémarrage du serveur.

Notez que vous devez toujours exécuter cette commande chaque fois que vous apportez des modifications aux règles. Par exemple, si vous souhaitez désactiver iptables, vous devez exécuter ces deux lignes :

sudo iptables -F
sudo /sbin/iptables-save

Vous verrez les résultats suivants :

Conclusion

Iptables est un puissant programme de pare-feu que vous pouvez utiliser pour sécuriser votre serveur Linux ou VPS. Ce qui est génial, c'est que vous pouvez définir différentes règles en fonction de vos préférences.

Dans ce didacticiel iptables, vous avez appris à installer et à utiliser l'outil. Maintenant, nous espérons que vous pourrez gérer vos ensembles de règles pour filtrer les paquets entrants et sortants.

Il est temps de le tester vous-même et bonne chance !


Ubuntu
  1. Configuration du pare-feu à l'aide d'Iptables sur Ubuntu 14.04

  2. Configurer le conteneur Linux avec LXC sur Ubuntu 16.04

  3. Adaptateur d'affichage USB avec pilotes Linux/ubuntu ?

  4. Comment remplacer Iptables par Firewalld dans Ubuntu 16.04 ?

  5. Comment configurer un pare-feu avec iptables sur Ubuntu et CentOS

Comment installer PSAD sur Ubuntu Linux

Comment connecter Kindle Fire HD à Ubuntu Linux

Comment configurer le pare-feu avec UFW sur Ubuntu Linux

Comment :sécuriser votre serveur Ubuntu ou Debian avec IPTables

Comment sécuriser un pare-feu Linux avec les règles IPTables

Tutoriel sur le pare-feu Linux :Tables IPTables, chaînes, principes de base des règles