GNU/Linux >> Tutoriels Linux >  >> Cent OS

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

Dans ce tutoriel, nous allons vous montrer comment configurer un pare-feu avec iptables sur un VPS Linux exécutant Ubuntu ou CentOS comme système d'exploitation. Iptables est un outil d'administration pour le filtrage de paquets IPv4 et NAT et il est utilisé pour configurer et gérer les tables de règles de filtrage de paquets IPv4 dans le noyau Linux.

Configurer et configurer correctement un pare-feu est l'une des choses les plus importantes et cruciales que vous devez faire pour sécuriser votre serveur.

Avec iptables, plusieurs tables de correspondance de paquets différentes sont définies et chaque table peut contenir un certain nombre de chaînes intégrées ainsi que certaines chaînes définies par l'utilisateur. Les chaînes sont en fait des listes de règles qui correspondent à un ensemble de paquets et chaque règle spécifie ce qu'il faut faire avec le paquet correspondant.

Le tableau par défaut est le filter table et contient les chaînes intégrées INPUT, FORWARD et OUTPUT. La chaîne INPUT est utilisée pour les paquets destinés aux sockets locaux, la chaîne FORWARD est utilisée pour les paquets acheminés via la boîte tandis que la chaîne OUTPUT est utilisée pour les paquets générés localement.

Connectez-vous à votre serveur via SSH et listez les règles définies dans une chaîne spécifique en utilisant la syntaxe suivante :

sudo iptables -L CHAIN

Remplacez CHAIN ​​par l'une des chaînes intégrées pour voir les règles définies. Si aucune chaîne n'est sélectionnée, toutes les chaînes seront répertoriées dans la sortie.

sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Les règles de pare-feu spécifient ce qu'il faut faire avec un certain paquet s'il correspond à certains critères et si le paquet ne correspond pas aux critères, la prochaine règle de pare-feu définie dans la chaîne sera examinée. C'est une chose très importante à savoir lors de la définition des règles de pare-feu car vous pouvez facilement vous verrouiller hors de votre serveur si vous définissez la règle qui accepte les paquets de votre adresse IP locale après la règle de blocage.

Les cibles que vous pouvez utiliser pour les règles de pare-feu sont ACCEPT, DROP, QUEUE et RETURN. ACCEPT laissera passer le paquet, DROP abandonnera le paquet, QUEUE transmettra le paquet à l'espace utilisateur tandis que RETURN arrêtera le paquet traversant la chaîne actuelle et reprendra à la règle suivante dans la chaîne précédente. La politique de chaîne par défaut définira ce qu'il faut faire avec un paquet s'il ne correspond pas à certaines règles de pare-feu. Comme vous pouvez le voir dans la sortie de la première commande, la stratégie par défaut pour toutes les chaînes intégrées est définie sur ACCEPTER. ACCEPTER laissera passer le paquet donc il n'y a pas de protection.

Avant d'ajouter des règles spécifiques, ajoutez la suivante :

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Cela empêchera les connexions déjà établies d'être interrompues et votre session SSH actuelle restera active.

Ensuite, ajoutez des règles pour autoriser le trafic sur votre interface de bouclage :

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

Ensuite, autorisez l'accès à votre serveur via SSH pour votre adresse IP locale afin que vous seul puissiez accéder au serveur :

sudo iptables -A INPUT -s 111.111.111.111 -p tcp --dport 22 -j ACCEPT

111.111.111.111 est votre adresse IP locale et 22 est le port d'écoute de votre démon SSH. Si votre adresse IP locale change dynamiquement, il est préférable d'omettre le -s 111.111.111.111 partie et utilisez une méthode différente pour protéger le service SSH du trafic indésirable.

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

Ensuite, autorisez l'accès à vos services importants comme le serveur HTTP/HTTPS :

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

[ecko_alert color="blue"]Coincé quelque part ? Obtenez un VPS de notre part et nous sécuriserons correctement votre serveur et configurerons un pare-feu pour vous, gratuitement ![/ecko_alert]

Maintenant, listez les règles actuelles et vérifiez si tout est OK. Pour une sortie détaillée, vous pouvez utiliser la commande suivante :

sudo iptables -nvL

Si vous souhaitez autoriser l'accès à d'autres services, il est préférable de le faire maintenant. Une fois que vous avez terminé, vous pouvez définir la stratégie par défaut de la chaîne intégrée INPUT sur DROP.

sudo iptables -P INPUT -j DROP

Cela supprimera tout paquet qui ne correspond pas aux critères des règles du pare-feu. Le résultat final devrait ressembler à celui-ci :

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443

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
    0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0

Cependant, si vous redémarrez maintenant le serveur, vous perdrez toutes les règles de pare-feu que vous avez définies, il est donc très important de rendre les règles permanentes.

Si vous utilisez un VPS Ubuntu, vous devez installer un package supplémentaire à cet effet. Allez-y et installez le package requis à l'aide de la commande suivante :

sudo apt-get install iptables-persistent

Sur Ubutnu 14.04 vous pouvez enregistrer et recharger les règles de pare-feu à l'aide des commandes ci-dessous :

sudo /etc/init.d/iptables-persistent save
sudo /etc/init.d/iptables-persistent reload

Sur Ubuntu 16.04 utilisez plutôt les commandes suivantes :

sudo netfilter-persistent save
sudo netfilter-persistent reload

Si vous utilisez un VPS CentOS, vous pouvez enregistrer les règles de pare-feu à l'aide de la commande ci-dessous :

service iptables save

Bien sûr, vous n'avez rien à faire si vous utilisez l'un de nos services d'hébergement VPS entièrement géré, auquel cas vous pouvez simplement demander à nos administrateurs Linux experts de vous aider à configurer vos iptables sur votre serveur. Ils sont disponibles 24h/24 et 7j/7 et prendront immédiatement en charge votre demande.

PS . Si vous avez aimé cet article sur Comment configurer un pare-feu avec iptables sur Ubuntu et CentOS, partagez-le avec vos amis sur les réseaux sociaux en utilisant les boutons ci-dessous ou laissez simplement un commentaire dans la section des commentaires. Merci.


Cent OS
  1. Comment configurer un pare-feu avec UFW dans Ubuntu \ Debian

  2. Comment ouvrir le port Http (80) dans Iptables sur CentOS

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

  4. Comment configurer un pare-feu avec UFW sur Ubuntu 16.04

  5. Comment configurer un pare-feu avec Firewalld sur CentOS 8

Comment configurer la haute disponibilité Nginx avec Pacemaker et Corosync sur CentOS 7

Comment arrêter et désactiver le pare-feu sur CentOS 8

Comment vider le DNS sur Ubuntu et CentOS

Comment configurer le pare-feu Iptables sur CentOS

Comment installer Firefox 36 sur CentOS 7 et Ubuntu 14.04

Comment installer et configurer un VPN avec OpenVPN sur Ubuntu 18.04