Hallo,
ich habe ein ganz merkwürdiges Problem mit Firewall / Masquerading. Ich benutze ein Script zum Starten der Firewall, die nur HTTP- und Nameserver- Connections passieren lassen soll. Die Firewall läuft auf einem Server mit Internet- Verbindung, der den Zugang auch den anderen Rechnern im Netz zur Verfügung stellen soll.
<script>
# masquerading
ETH_IP= 'hostname -i | tr -d ' `' ipfwadm -F -a accept -m -b -P tcp -S $ETH_IP/24 ipfwadm -F -a accept -m -b -P udp -S $ETH_IP/24
</script>
Ob ich mit einem Client (Gateway auf den Server mit d. Firewall gesetzt) auf das Internet zugreifen kann scheint nun ganz von Zufall abhängig zu sein. Zur Vereinfachung hatte ich auf dem Server eine permanente Verbindung ins Internet laufen. Wenn es einmal geklappt hat, dann meistens nachdem ich irgend welche anderen Einstellungen mit ipfwadm ausprobiert habe. Wenn ich danach die Firewall- Tabelle geflutet habe (davon ausgehend, dass dann wirklich alles weg ist) und mein o.g. script ausführte, hatte ich oft Erfolg - leider nicht mehr nachvollziehbar. Kann es sein, dass in dem Script ein ganz entscheidender Eintrag fehlt ?
Matthias Petermann wrote:
ich habe ein ganz merkwürdiges Problem mit Firewall / Masquerading. Ich benutze ein Script zum Starten der Firewall, die nur HTTP- und Nameserver- Connections passieren lassen soll.
<script> # masquerading ETH_IP= 'hostname -i | tr -d ' `'
Das ist die IP-Adresse Deines Servers, nicht des internen Netzes bzw. des Client-Rechners.
ipfwadm -F -a accept -m -b -P tcp -S $ETH_IP/24 ipfwadm -F -a accept -m -b -P udp -S $ETH_IP/24
</script>
Hiermit laesst Du alle tcp/udp-Pakete durch, die von Deinem Server kommen.
Kann es sein, dass in dem Script ein ganz entscheidender Eintrag fehlt ?
Ja. Du musst dem Server sagen, dass er Anfragen aus dem internen Netz (z.B. 192.168.1.0/24) [1] bzw. von einem bestimmten Rechner des internen Netzes (192.168.1.102/24) [2] durchlassen soll.
[1]
-- schnipp --
# alle Rechner des internen Netzes duerfen raus ipfwadm -F -p deny ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0
-- schnapp --
[2]
-- schnipp --
# nur der Rechner mit IP x.x.x.102 darf raus ipfwadm -F -p deny ipfwadm -F -a m -S 192.168.1.102/24 -D 0.0.0.0/0
-- schnapp --
Das eigentliche Anliegen, nur Anfragen auf Port 80 und 53 durchzulassen, bleibt dem geneigten Leser als Uebung ueberlassen.
Literatur:
IP-Masquerade.gz Firewall-HOWTO.gz man ipfwadm
sven
Hallo Matthias,
[IP-Masqerading] On Mon, Dec 13, 1999 at 11:44:50PM +0100, Matthias Petermann wrote:
Kann es sein, dass in dem Script ein ganz entscheidender Eintrag fehlt?
es gibt ein Programm/Paket ipmasq. Einfach installieren -> geht. Das gilt zumindest fuer Debian.
Tschuess Torsten
lug-dd@mailman.schlittermann.de