IPTables

snoophallo

Erfahrenes Mitglied
Ich habe jetzt Iptables installiert. Und mit dem Befehlen
Code:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
Alle Ports geschlossen.
Jetzt möchte ich nur ganz bestimmte wie ports wie 21,80,22,3306 öffnen, wie kann ich das unter debian woody anstellen?
 
Beispiel:

Code:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Das Beispiel entspricht uebrigens dem was ich nicht so gern mache, eine Regel in die eingebauten Chains setzen.
Ich erstelle lieber eine eigene Chain und schreibe dort meine Regeln rein.
Auf diese Chain verweise ich dann in INPUT, und wenn der Rechner als Router fungiert auch in FORWARD.
Der Output muss in der Regel eher weniger limitiert werden.

Bei weiteren Fragen zu IPTables, kann ich diese beiden Dokumente empfehlen:
Packet Filtering HowTo
NAT HowTo

Ansonsten kannst Du Dich auch gern an mich oder eben an das Forum wenden.

Viel Erfolg und viel Spass mit IPTables.
 
Wenn ich mit dem Befehl in den drei Bereichem die Ports schließe.
Code:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

Ist es mit folgendem Befehl nicht möglich einzelnen bestimmte Ports zu öffnen wie z.B. SSH:
Denn ich kann nun immer noch keine Verbindung über SSH aufbauen.
Code:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT

Wie kann man das besser angehen um, z.B. nur Zugang über SSH zu bekommen und das alle weiteren Ports gesperrt sind.
 
Bei OUTPUT kannst Du, meines Erachtens nach die Policy ruhig auf ACCEPT lassen.
Eine eigene Chain kannst Du mittels -N erstellen.
Das haette Dir aber auch das erste der beiden verlinkten Dokumente verraten koennen.

Beispiel:
Code:
iptables -N firewall
iptables -A firewall -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -j firewall

Weiterhin empfiehlt es sich mit Stateful-Packet-Filtering zu arbeiten.
Diese Zeilen sind da recht hilfreich (ich knuepfe am Beispiel an):
Code:
iptables -A firewall -m state --state RELATED,ESTABLISHED -j ACCEPT
Das kann unter Umstaenden noetig sein, wenn ich mich recht erinnere z.B. bei FTP.

Ausserdem ist Deine Regel fuer SSH in OUPUT falsch.
Der Verkehr kommt von Port 22 und geht an einen unbestimmten Port.
Es muesste also so lauten:
Code:
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
 
Wenn man jetzt die Einstellungen mit einem eigenen chain vorgenommen hat, ist also INPUT auf DROP mit einem Verweis auf den Chain firewall, FORWARDING ist ebenfalls DROP und OUTPUT ist auf ACCEPT gestellt. Im chain firewall gibt man nun alle eignene Port dir offen stehen sollen ein. Hab ich das so richtig verstanden?
 
In OUTPUT brauchst Du nicht auf firewall verweisen, da in firewall (in der Regel) nur geoeffnet wird. Da OUTPUT die Policy ACCEPT hat haette es wenig Sinn von dort auf firewall zu verweisen.

Richtig, in firewall gibst Du an welche Ports offen sein sollen.

Es gibt 2 Wege einen Paketfilter zu stricken:
1. Alles zulassen und ungewollten Verkehr blocken
2. Alles sperren und nur gewollten Verkehr zulassen

Die zweite Variante ist auf jeden Fall die zu empfehlende, denn es ist sicherer einen Port nicht zu oeffnen als einen Port nicht zu schliessen.
 
Es klappt sowei alle super jedoch macht mir nur der ftp Zugang Schwierigkeiten.
Ich hab den Port 21 in firewall freigegeben und den Befehl
Code:
iptables -A firewall -m state --state RELATED,ESTABLISHED -j ACCEPT
ausgeführt. Allerding bekomm ich keinen Zugang, werder über einen Browser noch über ein FTP Programm.
 
Wenn Port 21 offen ist solltest Du eigentlich zugreifen koennen, auch ohne den Befehl fuer das Connection-Tracking.
Port 21 ist der Control-Port ueber den die Befehle laufen. Soweit ich mich erinnere wird 20 in der Regel fuer die Daten genutzt. Es kann aber auch durchaus sein, dass fuer den Transfer ein anderer Port gewaehlt wird. Dafuer ist ja diese Zeile zustaendig.

Hast Du ein Script geschrieben um die Firewall einzurichten?
Falls ja, dann zeig das mal bitte her.
Ansonsten poste bitte die Befehle die Du eingegeben hast.
 
Nein ich hab kein Script geschrieben. Alles manuell gemacht.
Code:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -N firewall
iptables -A firewall -p tcp --dport 22 -j ACCEPT
iptables -A firewall -p tcp --dport 21 -j ACCEPT
iptables -A firewall -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -j firewall
 

Neue Beiträge

Zurück