PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables --syn und --state option



bp
24.01.03, 20:05
Hallo,
ich habe ein firewall script am laufen in dem folgende zeile steht:

${IPTABLES} -A INPUT -j ACCEPT -i ${INTERFACE} -p tcp \
--dport $i -m state --state NEW,ESTABLISHED,RELATED

d.h. alle pakete an den port $1 mit den states NEW,ESTABLISHED,RELATET werden erlaubt
nun möchte ich nicht alle neuen pakete erlauben sondern nur solche die ein gesetztes limit nicht überschreiten, also

${IPTABLES} -A INPUT -j ACCEPT -i ${INTERFACE} -p tcp \
--dport $i -m state --state NEW -m limit --limit 1/s

den rest wie gehabt

${IPTABLES} -A INPUT -j ACCEPT -i ${INTERFACE} -p tcp \
--dport $i -m state --state ESTABLISHED,RELATED

macht das so sinn? beim lesen der iptables man bin ich darauf gestossen das neue pakete das syn bit gesetzt haben, also könnte ich auch schreiben

${IPTABLES} -A INPUT -j ACCEPT -i ${INTERFACE} -p tcp \
--dport $i --syn -m limit --limit 1/s

oder?

wo ist der unterschied zwischen --syn und -m state --state NEW?
ich hoffe es ist klar was ich meine und ich hoffe ihr könnt mir helfen

HangLoose
25.01.03, 13:32
hi


wo ist der unterschied zwischen --syn und -m state --state NEW? ich hoffe es ist klar was ich meine und ich hoffe ihr könnt mir helfen

der große vorteil von -m state --state ist, das dein paketfilter quasi dynamisch ist. ausgehende verbindungen werden in einer tabelle gespeichert, anhand derer dein paketfilter entscheiden kann, was z.b zu einer bestehenden verbindung gehört und was nicht.

besonders praktisch ist das bei einer udp verbindung, die ja keine flags kennt und damit *zustandslos* ist.

bei einer tcp verbindung macht es imho keinen unterschied ob du nun --syn oder -m state --state NEW verwendest.


Gruß HL

bp
25.01.03, 14:50
vielen dank!
hab mir schon gedacht das --syn nur für tcp pakete gilt

Jinto
25.01.03, 17:56
Auch bei tcp gibt es einen Unterschied. Es ist nicht zwingend notwendig, dass ein Paket das Syn-Bit gesetzt haben muss um als NEW zu gelten z. B. ACK-Pakete, die zu keiner Verbindung gehören sind auch NEW.

HTH

cane
27.01.03, 15:09
Und solche Packete wie Jinto sie beschreibt sollte man alle blocken um den gängigen Portscannern (oder DOS Tools) das Leben nicht zu erleichtern...

cane

bp
27.01.03, 15:26
also zum beispiel so...

${IPTABLES} -A INPUT -p tcp --tcp-flags ALL !SYN -m state --state NEW -j MY_DROP

macht das so sinn?

P.S. ich habe die regel:
${IPTABLES} -A INPUT -j ACCEPT -i ${INTERFACE} -p tcp \
--dport $i -m state --state NEW -m limit --limit 1/s

wieder aufgegeben, da diese regel ja keinen unterschied macht, wer das limit überschreitet, somit ist z.B. mein webserver entweder wegen eine DoS Attacke nicht erreichbar oder deswegen weil die firewall die pakete dropt. Ideal wäre also eine regel die nur eine spezifische verbindung zählt und dann diese bei überschreitung des limits dropt, aber sowas geht nicht, oder doch?