ipfw

ip4you

Member
hi,

ich bin mit meinem Server per SSH verbunden.

Wenn ich nun das Firewallscript über die SSH Verbindung neu starte,

brichter die SSH Verbindung sofort ab und ist gesperrt.

Starten ich aber das selbe Script über die Console, geht SSH ohne Probleme.

Sobald über die SSH Verbindung ipfw -f flush augeführt wird muss das Script abbrechen, ist sowas möglich?


#!/bin/sh
kldload ipfw.ko
kldload dummynet.ko

ipfw -f flush
ipfw -f pipe flush

kldload dummynet.ko


ipfw add allow ip from any to any (nur zum testen)

.
.
.


Was mache ich falsch?

Gruß
neuling
 
Versuch' mal den Parameter -q bei jedem Aufruf von ipfw zu benutzen. Fuer weitere Informationen kannst du mal die Bemerkungen zu diesem Parameter in der Manpage lesen.

Gruss
Fabian
 
hi,

ich bin mit meinem Server per SSH verbunden.

Wenn ich nun das Firewallscript über die SSH Verbindung neu starte, bricht er die SSH Verbindung sofort ab und ist gesperrt.

Starten ich aber das selbe Script über die Console, geht SSH ohne Probleme.
Code:
#!/bin/sh
kldload ipfw.ko
kldload dummynet.ko

[COLOR="DarkRed"][B]ipfw -f flush           # <=============[/B][/COLOR]
ipfw -f pipe flush

kldload dummynet.ko

ipfw add allow ip from any to any  (nur zum testen)
Die letzte, einkompilierte Regel lautet (default)
Code:
65535 deny any from all to all
Da diese Regel hart codiert ist, wird sie nicht geflusht. Du sperrst Dich an der markierten Stelle selbst aus. In diesem Moment bricht Dein Skript ab, da sein controling terminal gestorben ist.

Problemlösung: zwei at(1)-Jobs erstellen. Der erste aktiviert die neuen Regeln, der zweite einige Minuten später die Alten. Wenn irgendetwas mit den neuen Regeln nicht stimmt, fällt man automatisch auf die funktionierenden Alten zurück und kann weiterexperimentieren. Falls die Neuen funktionieren, löscht man den zweiten at-Job mit atrm(1).
 
Zurück
Oben