Une des priorités après l’installation du système est de configurer correctement iptables pour filtrer le trafic. La stratégie par défaut autorise tout ce qui n'est pas interdit. Ce n'est pas la méthode la plus efficace en termes de sécurité, car dans ce mode, le serveur est exposé à des intrus.
Vous pouvez, par exemple, analyser les ports ouverts sur le serveur. Sur cette base, il est possible de déterminer les services utilisés, leur version, le nom et la version du système d'exploitation. Suivant - la sélection des vulnérabilités à eux. Ou certains icmp - les messages peuvent donner des informations supplémentaires.
En général, la description de la raison pour laquelle vous devez configurer le pare-feu, digne d'un article séparé, qui sont innombrables. Et si vous lisez cet article, vous savez certainement pourquoi vous en avez besoin. ;)
Comme tous les articles sur le site, cette instruction est rédigée sur la base d'une expérience personnelle, à la "je fais ceci", quelqu'un d'autre est différent.
Contenu de l'article:
- Установка необходимых компонентов 1 Installez les composants nécessaires
- Редактирование правил для ip версии 4 2 Règles d’édition pour ip version 4
Installer les composants nécessaires
Et ainsi, le système a déjà le principal de la liste des outils nécessaires - iptables. Mais cela ne suffit pas. Vous aurez également besoin des filtres tarpit et iptables-persistent pour charger les règles au démarrage du système.
# aptitude install iptables-persistent xtables-addons-dkms
Au cours de l'installation persistante, deux questions seront posées sur la sauvegarde des règles actuelles. Vous pouvez répondre "Oui", puis dans le dossier / etc / iptables / rules /, vous créerez les fichiers nécessaires avec les règles que nous avons modifiées.
Modification des règles pour ip version 4
Ouvrez le fichier /etc/iptables/rules.v4 dans votre éditeur favori. Vous verrez des lignes définissant la stratégie par défaut pour les chaînes. Dans toutes les valeurs, ce sera accepter. Pour la chaîne FORWARD, définissez la stratégie DROP. Nous ne sommes pas un routeur ou un ordinateur qui redirige le trafic ailleurs. :) On ne change pas le reste.
* filtre : INPUT ACCEPT [0: 0] : DROP FORWARD [0: 0] : OUTPUT ACCEPT [0: 0] COMMIT
Toutes les autres règles seront ajoutées avant la ligne COMMIT. Et tout d'abord nous ajoutons la règle permettant le trafic local.
-A INPUT -i lo -j ACCEPTER
En outre, la règle autorise toutes les connexions actives déjà établies pour les protocoles TCP et UDP. Cela est nécessaire au bon fonctionnement du réseau car sans cela, les réponses aux connexions sortantes seraient rejetées.
-A INPUT -m state --state RELATED, ESTABLISHED -p all -j ACCEPT
Vous devez maintenant ajouter une règle permettant l'installation de nouvelles connexions entrantes vers certains services. J'ai un serveur web et mail, ainsi que ssh.
Note importante! Ajoutez toujours une règle d'autorisation pour ssh afin de ne pas perdre l'accès au serveur une fois les règles appliquées.
Vous pouvez ajouter d'autres ports ici, séparés par une virgule. L'extension multiport vous permet de spécifier plusieurs ports afin de ne pas produire des règles presque identiques pour chacun séparément. ;)
-A INPUT -m state --state NEW -p tcp -m multiport --dport 22,25,80,443 -j ACCEPT
Si vous avez un seul service sur le serveur pour lequel vous devez ouvrir un port, la règle sera la suivante:
-A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
Vous devrez peut-être également ouvrir des ports UDP. La seule différence avec les règles ci-dessus est qu'au lieu de -p tcp, vous devez spécifier -p udp .
Et lorsque vous ajoutez la règle suivante, le filtre tarpit est très pratique, et a été installé avec le package xtables-addon-dkms. En bref, cela crée une interruption pour les connexions entrantes, en ne renvoyant rien, mais en maintenant la connexion, ce qui gaspille les ressources du client qui se connecte, mais pas du serveur. En savoir plus sur tarpit sur le site Web OpenNET. Pour l'instant, ajoutez une règle pour toutes les autres connexions entrantes.
-A INPUT -p tcp -m tcp -j TARPIT
Il est important de garder à l'esprit que le piège ne fonctionne qu'avec tcp. De même, vous pouvez implémenter une interdiction sur ip au niveau iptables, au lieu de la chute standard. Malheureusement, il ne convient pas pour les UDP. Par conséquent, nous interdisons tous les autres paquets udp entrants pour lesquels vous n'avez pas créé d'exception auparavant.
-A INPUT -p udp -j DROP
Et nous prenons pour icmp. Ici, en tant que type icmp, vous pouvez spécifier un code ou un nom équivalent. J'ai un code :)
Nous autorisons les réponses d'écho entrantes au cas où nous envoyons une requête ping à un autre hôte du serveur.
-A INPUT -p icmp --icmp-type 0 -j ACCEPTER
Icmp entrante - des messages sur l’indisponibilité du destinataire.
-A INPUT -p icmp --icmp-type 3 -j ACCEPTER
Et les pings entrants si quelqu'un fait un ping sur notre serveur.
-A INPUT -p icmp --icmp-type 8 -j ACCEPTER
Ainsi qu'un message sur l'expiration du paquet.
-A INPUT -p icmp --icmp-type 11 -j ACCEPTER
C’est le minimum de messages nécessaire au bon fonctionnement du réseau. Vous aurez peut-être besoin d' autres codes . Comment les résoudre, vous savez déjà. :)
Nous allons maintenant créer des règles pour les messages icmp sortants. Ces règles se ressemblent, mais la chaîne est déjà OUTPUT. Par conséquent, cela n'a aucun sens de les décrire.
-A SORTIE -p icmp --icmp-type 0 -j ACCEPTER -A SORTIE -p icmp --icmp-type 3 -j ACCEPTER -A SORTIE -p icmp --icmp-type 8 -j ACCEPTER -A SORTIE -p icmp --icmp-type 11 -j ACCEPTER -A SORTIE -p icmp --icmp-type 12 -j ACCEPTER
Sauf le douzième. Il permet l'envoi d'un message de paramètre non valide (une erreur dans l'en-tête IP ou l'option requise est manquante).
Tous les autres fichiers ICMP sortants sont interdits afin que le serveur ne brouille pas le supplément.
-A SORTIE -p icmp -j DROP
C'est tout. Enregistrez le fichier /etc/iptables/rules.v4, activez les règles avec la commande suivante:
cat /etc/iptables/rules.v4 | iptables-restore -c

( 6 évaluations moyenne de 4.17 sur 5)