Dennis Wronka
Soulcollector
Also Port 111 (portmapper, rpcbind) und 953 (RNDC is used by BIND 9) kannst Du ohne Beeintraechtigung der Funktionalitaet sperren.
Normalerweise ist das eigentlich nicht wuenschenswert, jedoch ist die von mir gepostete Konfiguration in dem Fall eine Ausnahme. Es kommt ja kein Paket aus firewall zurueck in INPUT. Am Ende von firewall wird ja mit iptables -A firewall -j DROP alles gedroppt was diese Regel erreicht. Es kommt also nichts mehr zurueck in die Chain INPUT, da auf jeden Fall jedes Paket in der Chain firewall bearbeitet wird.
Wie ich schon zuvor gesagt hab wird ein Paket aus dem Filter genommen und der betreffenden Regel (ACCEPT, DROP, REJECT) weiter verarbeitet wenn eine Regel zutrifft.
Folgendes Beispiel: (UDP/67 ist fuer DHCP, nur mal so als Beispiel jetzt)
Die erste Regel trifft auf alle UDP-Pakete zu, diese werden der Regel entsprechend gedroppt.
Die zweite Regel trifft auf Pakete an UDP-Port 67 (DHCP) zu, und teilt dem Paketfilter mit diese zu akzeptieren.
Das Problem ist hier nun, dass zuerst alle UDP-Pakete gedroppt werden, die zweite Regel wird also nie auf ein Paket zutreffen, da kein entsprechendes Paket diese Regel erreichen wird.
Falls UDP bis auf Port 67 gesperrt werden soll, kann das mit folgenden Beispielen realisiert werden.
Beispiel 1:
Beispiel 2:
Das erste Beispiel laesst erst alle Pakete durch die an UDP-Port 67 gehen und droppt dann den Rest.
Das zweite Beispiel droppt alle UDP-Pakete die nicht an UDP-Port 67 gehen.
Solche Konstrukte brauchst Du in dem Script was ich hier gepostet hab jedoch nicht, Du kannst einfach alles was Du brauchst akzeptieren, der Rest wird am Ende eh gedroppt.
Dass alles am Ende von firewall gedroppt wird, und somit kein Paket aus Firewall zurueck nach INPUT kommt, gibt Dir eine Beschraenkung beim Einfuegen von Regeln in die Chain INPUT. Sie muessen vor der Verzweigung nach firewall (iptables -A INPUT -j firewall) eingefuegt werden, ansonsten sind sie ueberfluessig.
Ich hoffe ich konnte wieder ein wenig Licht in's Dunkel bringen. Weiterhin viel Erfolg.
Eingehende Pakete landen zuerst in der Chain INPUT, werden dort mit iptables -A INPUT -j firewall in die Chain firewall uebergeben. Falls ein Paket in firewall nicht bearbeitet wird, also keine Regel auf dieses Paket zutrifft, kommt es wieder zurueck in INPUT und wird dort entsprechend weiterverarbeitet, falls dort noch Regeln sind. Falls das Ende der Chain INPUT erreicht wird ohne das eine Regel darauf zutrifft, dann tritt die Policy der Chain in Kraft. Standard-maessig ist das meine ich ACCEPT.bohlen hat gesagt.:Bei dieser Konfiguration mit "firewall" habe da noch Frage, ich verstehe daß als aller erste die Ketten der firewall nach der Reihenfolge bearbeitet werden, danach werden die Packete in INPUT weitergeleitet. Wen ich aber noch in INPUT einige Regeln habe, ist das Eintrag iptables -A INPUT -j firewall richtig?
Normalerweise ist das eigentlich nicht wuenschenswert, jedoch ist die von mir gepostete Konfiguration in dem Fall eine Ausnahme. Es kommt ja kein Paket aus firewall zurueck in INPUT. Am Ende von firewall wird ja mit iptables -A firewall -j DROP alles gedroppt was diese Regel erreicht. Es kommt also nichts mehr zurueck in die Chain INPUT, da auf jeden Fall jedes Paket in der Chain firewall bearbeitet wird.
Wie ich schon zuvor gesagt hab wird ein Paket aus dem Filter genommen und der betreffenden Regel (ACCEPT, DROP, REJECT) weiter verarbeitet wenn eine Regel zutrifft.
Folgendes Beispiel: (UDP/67 ist fuer DHCP, nur mal so als Beispiel jetzt)
Code:
iptables -A firewall -p udp -j DROP
iptables -A firewall -p udp --dport 67 -j ACCEPT
Die zweite Regel trifft auf Pakete an UDP-Port 67 (DHCP) zu, und teilt dem Paketfilter mit diese zu akzeptieren.
Das Problem ist hier nun, dass zuerst alle UDP-Pakete gedroppt werden, die zweite Regel wird also nie auf ein Paket zutreffen, da kein entsprechendes Paket diese Regel erreichen wird.
Falls UDP bis auf Port 67 gesperrt werden soll, kann das mit folgenden Beispielen realisiert werden.
Beispiel 1:
Code:
iptables -A firewall -p udp --dport 67 -j ACCEPT
iptables -A firewall -p udp -j DROP
Beispiel 2:
Code:
iptables -A firewall -p udp --dport ! 67 -j DROP
Das erste Beispiel laesst erst alle Pakete durch die an UDP-Port 67 gehen und droppt dann den Rest.
Das zweite Beispiel droppt alle UDP-Pakete die nicht an UDP-Port 67 gehen.
Solche Konstrukte brauchst Du in dem Script was ich hier gepostet hab jedoch nicht, Du kannst einfach alles was Du brauchst akzeptieren, der Rest wird am Ende eh gedroppt.
Dass alles am Ende von firewall gedroppt wird, und somit kein Paket aus Firewall zurueck nach INPUT kommt, gibt Dir eine Beschraenkung beim Einfuegen von Regeln in die Chain INPUT. Sie muessen vor der Verzweigung nach firewall (iptables -A INPUT -j firewall) eingefuegt werden, ansonsten sind sie ueberfluessig.
Ich hoffe ich konnte wieder ein wenig Licht in's Dunkel bringen. Weiterhin viel Erfolg.