Erstmal herzlichen Dank für die Mühe!! Markus Heidinger schrieb:
Nimm folgendes Skript: [...] Und kopiere es statt Deines Skriptes in /etc/init.d, zum Beispiel als "fireback", damit's nicht so lang ist ;-).
Ok habe ich, und "iptables -L > /root/fwrules" habe ich im Stop-Block ergänzt.
Danach machst Du ein "insserv /etc/init.d/fireback" und startest es der Ordnung halber einmal mit "/etc/init.d/fireback start". Beim starten wird es nichts tun, ausser den eigenen Status setzen. Aber beim herunterfahren sollte es dann zuallererst (so hoffe ich) Dein Log kopieren.
insserv funktioniert, das Script ebenfalls.
Kontrolliere vorher sicherheitshalber, ob in /etc/init.d/rcX.d, wobei X Dein Runlevel - ich nehm mal an "3" ist - ob durch inssserv entsprechende Symlinks mit SXXfireback und KXXfireback erstellt wurden. Durch $ALL in der INIT INFO sollte gewährleistet sein, dass die höchstmögliche Start- und die niedrigstmögliche Killfolge vergeben wurden.
Runlevel ist 3. insserv legt Symlinks an. Allerdings hatte ich nach Aktivierung der Firewall und anschließendem Reboot ins Rettungssystem gar keine neuen Dateien unter /repair/root. 'man insserv' sagt, dass 'Required-Stop' unter SuSE nicht beachtet wird. Außerdem kann es m.E. schon deswegen nicht funktionieren, weil beim Verlassen des Runlevel 3 ja das Script ausgeführt werden soll, unter 'Default-Stop' steht jedoch nur '0 1 2 6'. Ich habe also mit 'insserv -r fireback' (im "normalen" System) die ganzen Symlinks wieder entfernt und anschließend im Rettungssystem von Hand folgendes: cd /repair/etc/init.d/rc3.d mv K01SuSEfirewall2 K02SuSEfirewall2 ln -s ../fireback ./K01fireback (K02... war noch nicht vergeben.)
Bin mal gespannt, ob es funkioniert, denn ich verstehe immer noch nicht ganz, wo das Firewall-Log hinkommt. Nun gut und dann muss es auch noch verwertbare Informationen bringen ...
Tja, was dabei rausgekommen ist... Eine Datei 'firewall' gibt's dann im Root-Verzeichnis immernoch nicht. Das Script funktioniert aber, ich hatte zusätzlich noch ein 'cp /var/log/warn /root/warn' eingefügt, 'warn' ist nun im Root-Verzeichnis vorhanden. Und auch eine Datei namens 'fwrules' ist da, mit folgendem Inhalt (das "> " vor jeder Zeile habe ich eingefügt, damit mein Mailprogramm die Zeilen nicht umbricht):
ACCEPT all -- anywhere anywhere DROP all -- anywhere 255.255.255.255 DROP all -- anywhere 0.0.0.0 input_ext all -- anywhere anywhere DROP all -- anywhere anywhere
Chain FORWARD (policy DROP) target prot opt source destination TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT icmp -- anywhere anywhere icmp time-exceeded ACCEPT icmp -- anywhere anywhere icmp port-unreachable ACCEPT icmp -- anywhere anywhere icmp fragmentation-needed ACCEPT icmp -- anywhere anywhere icmp network-prohibited ACCEPT icmp -- anywhere anywhere icmp host-prohibited ACCEPT icmp -- anywhere anywhere icmp communication-prohibited DROP icmp -- anywhere anywhere icmp destination-unreachable
Chain forward_dmz (0 references) target prot opt source destination
Chain forward_ext (0 references) target prot opt source destination
Chain forward_int (0 references) target prot opt source destination
Chain input_dmz (0 references) target prot opt source destination ACCEPT icmp -- anywhere anywhere icmp echo-request DROP icmp -- anywhere anywhere reject_func tcp -- anywhere anywhere tcp dpt:ident flags:SYN,RST,ACK/SYN DROP tcp -- anywhere anywhere tcp dpt:ssh flags:SYN,RST,ACK/SYN DROP all -- anywhere anywhere
Chain input_ext (1 references) target prot opt source destination ACCEPT icmp -- anywhere anywhere icmp source-quench ACCEPT icmp -- anywhere anywhere icmp echo-request DROP icmp -- anywhere anywhere reject_func tcp -- anywhere anywhere tcp dpt:ident flags:SYN,RST,ACK/SYN DROP tcp -- anywhere anywhere tcp dpt:ssh flags:SYN,RST,ACK/SYN DROP tcp -- anywhere anywhere tcp dpt:smtp flags:SYN,RST,ACK/SYN DROP all -- anywhere anywhere
Chain input_int (0 references) target prot opt source destination ACCEPT icmp -- anywhere anywhere icmp echo-request DROP icmp -- anywhere anywhere reject_func tcp -- anywhere anywhere tcp dpt:ident flags:SYN,RST,ACK/SYN DROP tcp -- anywhere anywhere tcp dpt:ssh flags:SYN,RST,ACK/SYN DROP all -- anywhere anywhere
Besonders schlau werde ich daraus nicht, aber eine Freigabe von 'ssh' bzw. Port 22 sehe ich auch nicht. Hat jemand noch weitere Ideen? Ich bin ziemlich ratlos... Viele Grüße, Stefan