Es gibt ein Beispiel für Iptables-Regeln im 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
Vor ein paar Tagen hat mich mein Freund gefragt, warum es REJECT
in den letzten drei Regeln so ist. Er sagte mir, dass es DROP
stattdessen etwas geben sollte , und er erwähnte etwas über eine bessere Sicherheit im Falle von DROP
.
Ich habe also zwei Fragen:
Was machen die drei Regeln?
Macht es einen Unterschied, wenn ich es dort
DROP
anbringeREJECT --reject-with
? Wenn ja, was ist der Unterschied?
Antworten:
Diese drei Regeln scheinen ziemlich selbsterklärend zu sein:
Wenn Sie mehr Details (über UDP / TCP-Pakete, ICMP) suchen, müssen Sie sich mit Netzwerkdokumenten befassen, und vielleicht
man iptables
auch mit diesen.Es macht einen Unterschied. Und entgegen der landläufigen Meinung
DROP
gibt es keine bessere Sicherheit alsREJECT
. Es stört legitime Benutzer und schützt effektiv nicht vor böswilligen Benutzern. Dieser Beitrag erklärt die Argumentation im Detail:http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject
quelle