• This forum has a zero tolerance policy regarding spam. If you register here to publish advertising, your user account will be deleted without further questions.

iptables Regeln

Jammy

New Member
Hallo,

Da ich Leider kein Testsystem habe muss ich alles auf der Livemaschine Testen bzw direkt Umsetzen. Ist zwar Dumm aber ich kann es immoment auch nicht ändern.

Mir geht es darum, alle Verbindungen erst Blocken bzw Verwerfen und dann alle Ports Frei geben die ich benötige.

Alle Regeln löschen
iptables -F

Alle Ports schliessen
iptables -P INPUT DROP
iptables -P OUTPUT DROP

Ports erlauben
iptables -A INPUT -i venet0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i venet0 -p tcp --dport SSHPORT -j ACCEPT
iptables -A INPUT -i venet0 -p tcp --dport REDMINE -j ACCEPT
iptables -A INPUT -i venet0 -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -i venet0 -p tcp --dport 25 -j ACCEPT


iptables -A OUTPUT -o venet0 -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -o venet0 -p tcp --dport SSHPORT -j ACCEPT
iptables -A OUTPUT -o venet0 -p tcp --dport REDMINE -j ACCEPT
iptables -A OUTPUT -o venet0 -p tcp --dport 110 -j ACCEPT
iptables -A OUTPUT -o venet0 -p tcp --dport 25 -j ACCEPT

Ist das so richtig? Würdet Ihr was anders machen?
 
Dir fehlt auf jeden Fall eine Regel für ausgehende Verbindungen zur Namesauflösung (DNS). Außerdem evtl. über Connection tracking nachdenken.
Und Traffic auf dem loopback Device auf jeden Fall erlauben.
 
Es werden immer die ersten Regeln umgesetzt. Du musst also erst die Ports öffnen die du brauchst und dann alles schliessen.
 
Hallo,

Dir fehlt auf jeden Fall eine Regel für ausgehende Verbindungen zur Namesauflösung (DNS). Außerdem evtl. über Connection tracking nachdenken.
Und Traffic auf dem loopback Device auf jeden Fall erlauben.

Da muss ich mal eine entsprechnde Lektüre durch lesen. Ich hoffe ich finde welche auf Deutsch. Englich geht zwar auch aber Deutsch wäre mir lieber

Ne, muss er nicht, hat doch extra die Policy auf DROP gestellt.

Genau, ich denke mal ich werde das alles in ein Bash Script packen und bei jedem Restart durchlaufen lassen.
 
Fuer DNS musst du TCP+UDP auf Port 53 freigeben.
Loopback (lo) gibst du wie folgend frei:
Code:
iptables -I INPUT -i lo -j ACCEPT

Du kannst eine neue CHAIN erstellen und nur Anfragen welche noch im SYN-Status sind dahin verweisen, alle anderen Anfragen direkt annehmen; somit hat die Firewall weniger Arbeit, das wuerde so aehnlich aussehen:
Code:
iptables -P INPUT ACCEPT

iptables -N TCPIN
iptables -P TCPIN DROP

iptables -N UDPIN
iptables -P UDPIN DROP

iptables -A INPUT -i venet0 -p tcp -m state --state NEW -j TCPIN
iptables -A INPUT -i venet0 -p udp -j UDPIN

iptables -A TCPIN -p tcp --dport 80 -j ACCEPT
iptables -A TCPIN -p tcp --dport 22 -j ACCEPT
iptables -A TCPIN -m state --state RELATED,ESTABLISHED -j ACCEPT
...

iptables -A UDPIN -p udp --dport 53 -j ACCEPT

Beachte dass UDP-Pakete, weil sie stateless sind, IMMER die Regel durchlaufen muessen.
 
Schaue dir doch mal Arno's Firewall an. (Natürlich auf IPtables basierend)
Wenn ich deinen Beitrag richtig verstanden habe, macht das Script genau das, was du machen möchtest - Nur ein wenig einfacher.
 
Back
Top