Il y a un exemple de règles d'IPTABLES sur Archlinux Wiki:
# Generated by iptables-save v1.4.18 on Sun Mar 17 14:21:12 2013
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:TCP - [0:0]
:UDP - [0:0]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
COMMIT
# Completed on Sun Mar 17 14:21:12 2013
Il y a quelques jours, mon ami m'a demandé pourquoi y a-t-il REJECT
dans les trois dernières règles. Il m'a dit qu'il devrait y avoir DROP
au lieu de cela, et il a mentionné quelque chose sur une meilleure sécurité en cas de DROP
.
Donc, j'ai deux questions:
Que font les trois règles?
Cela fait-il une différence quand je mets là DROP
en place REJECT --reject-with
? Si oui, quelle est la différence?
Que font les trois règles?
Ces 3 règles semblent assez explicatives:
Si vous recherchez plus de détails (sur les paquets UDP/TCP, ICMP), vous devez creuser dans la mise en réseau des documents et peut-être le man iptables
trop.
Est-ce que cela fait de la différence quand je pose y at-il une baisse de rejet à la place? Si oui, quelqu'un pourrait-il m'expliquer la différence pour moi, je l'apprécierai vraiment.
Cela fait une différence. Et contrairement à la croyance populaire, DROP
ne donne pas une meilleure sécurité que REJECT
. Il inconvénient les utilisateurs légitimes et il n'est effectivement aucune protection contre les malveillants. Cet article explique le raisonnement en détail:
http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject
Une raison commune de l'utilisation de la goutte plutôt que de rejeter est d'éviter de donner des informations sur lesquelles les ports sont ouverts, cependant, les paquets éliminant exactement autant d'informations que le rejet.
Avec Rejeter, vous faites votre analyse et classez les résultats dans "Connexion établie" et "Connexion rejetée".
Avec une chute, vous classez les résultats dans "Connexion établie" et "Connexion expirée".
Le scanner le plus trivial utilisera l'appel "Connecter" du système d'exploitation et attendra jusqu'à la fin d'une tentative de connexion avant de commencer le suivant. Ce type de scanner sera considérablement ralentie en laissant tomber des paquets. Toutefois, si l'attaque définit un délai d'attente de 5 secondes par tentative de connexion, il est possible de numériser chaque port réservé (1..1023) sur une machine en seulement 1,5 heure. Les analyses sont toujours automatisées et un attaquant ne se soucie pas que le résultat n'est pas immédiat.
Un scanner plus sophistiqué enverra des paquets lui-même plutôt que de compter sur le système d'exploitation TCP Mise en œuvre. Ces scanners sont rapides, efficaces et indifférents au choix de la rejet ou de la chute.
[~ # ~] Conclusion [~ # ~]
La chute n'offre aucune barrière efficace aux forces hostiles, mais peut ralentir considérablement les applications exécutées par des utilisateurs légitimes. La chute ne doit normalement pas être utilisée.