Il y a un exemple de règles 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 il y a REJECT
trois règles. Il m'a dit qu'il devrait y en avoir à la DROP
place, et il a parlé de l'amélioration de la 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
DROP
en placeREJECT --reject-with
? Si oui, quelle est la différence?
Réponses:
Ces 3 règles semblent assez explicites:
Si vous recherchez plus de détails (sur les paquets UDP / TCP, ICMP), vous devez vous plonger dans les documents de réseau, et peut-être
man iptables
aussi.Cela fait une différence. Et contrairement à la croyance populaire,
DROP
ne donne pas une meilleure sécurité queREJECT
. Cela dérange les utilisateurs légitimes, et en réalité, il ne protège pas des utilisateurs malveillants. Cet article explique le raisonnement en détail:http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject
la source