Tach,
ich sitze hier vor folgendem (für mich) schwerwiegenden Problem. Ich habe ein Skript /etc/ppp/ppp-up, welches wvdial aufruft und ein Logbucheintrag macht. Dann habe ich noch ein Skript, das den Paketfilter aufbauen soll. Beide Skripte funktionieren sehr gut. Das Problem ist aber, wie kriege ich es hin, daß nach vollständigem Verbindungsaufbau der Paketfilter automatisch aufgerufen wird? Ein Eintrag in die /etc/ppp/ip-up brachte nichts, außer ein paar verstümmelte FW-Rules, aus denen ich auch nicht schlau wurde. Bisher hatte ich die Filterregeln in die /etc/ppp/ip-up direkt hineingeschrieben. Aufgrund der Fülle an Regeln und der Möglichkeit selbige über Schalter dem Skript mitzuteilen, hatte ich ein eigenes FW-Skript geschrieben.
Ich bräuchte in diesem Fall dringend Hilfe.
MfG
Carsten
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Saturday 14 September 2002 22:50, Carsten Friede wrote:
Aufgrund der Fülle an Regeln und der Möglichkeit selbige über Schalter dem Skript mitzuteilen, hatte ich ein eigenes FW-Skript geschrieben.
Ich bräuchte in diesem Fall dringend Hilfe.
Ich konfiguriere meine FW nur einmal beim Booten, die Regeln bleiben auch ohne Interface aktiv, damit besteht kein Grund bei jedem Dial-Out die FW erneut aufzubauen.
Konrad
- -- Never shown Star Trek episodes #13: Picard: "I've got a warning message from starfleet: Q has got a son." Troy: "Oh, how nice. Will he name him R, S or T?"
Konrad Rosenbaum wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Saturday 14 September 2002 22:50, Carsten Friede wrote:
Aufgrund der Fülle an Regeln und der Möglichkeit selbige über Schalter dem Skript mitzuteilen, hatte ich ein eigenes FW-Skript geschrieben.
Ich bräuchte in diesem Fall dringend Hilfe.
Ich konfiguriere meine FW nur einmal beim Booten, die Regeln bleiben auch ohne Interface aktiv, damit besteht kein Grund bei jedem Dial-Out die FW erneut aufzubauen.
Konrad
Hey, wie machst Du das?
Carsten
am 19.09.2002, um 10:45:15 +0200 mailte Carsten Friede folgendes:
Ich konfiguriere meine FW nur einmal beim Booten, die Regeln bleiben auch ohne Interface aktiv, damit besteht kein Grund bei jedem Dial-Out die FW erneut aufzubauen.
Hey, wie machst Du das?
sicherlich so, wie auch ich ;-)
Also, einfach ein Bootscript (das sind die Dinger, die als Paramater [start|stop] haben wollen, und das an geeigneter Stelle beim booten aufrufen. Fertich.
Nähere Info's: Guckst Du hier:
http://www.google.com/search?hl=de&ie=ISO-8859-1&newwindow=1&q=i...
Andreas
Andreas Kretschmer wrote:
am 19.09.2002, um 10:45:15 +0200 mailte Carsten Friede folgendes:
Ich konfiguriere meine FW nur einmal beim Booten, die Regeln bleiben auch ohne Interface aktiv, damit besteht kein Grund bei jedem Dial-Out die FW erneut aufzubauen.
Hey, wie machst Du das?
sicherlich so, wie auch ich ;-)
Also, einfach ein Bootscript (das sind die Dinger, die als Paramater [start|stop] haben wollen, und das an geeigneter Stelle beim booten
Nein, ich meinte eher, wie das funktioniert bei sich ständig ändernden IPs beim Dialout. Ich besorge die IPs immer per grep, awk und sed. Diese wird dann per Variablenzuweisung im Skript verfügbar gemacht. Nun eine Lösung über Bootscript habe ich schon für Ethernet mit fester IP gemacht, das ist auch nicht weiter schwer. Nur, wie mache ich das mit ppp0? Nach dem Booten ist dieses Gerät nicht da und hat dementsprechend auch keine IP. Wenn ich das richtig verstanden habe, soll am Anfang das Gerüst der FW aufgebaut werden. Die konkreten Werte (LOCALIP,External Device) werden dann nach dem Einwählen eingetragen bzw. übergeben, richtig? Aber wie mache ich das aus z.B. aus /etc/ppp/ip-up heraus? Ich wollte schon, wenn's geht spezifischere Rules mit genauer lokaler IP und so.
MfG
Carsten
am Thu, dem 19.09.2002, um 12:41:40 +0200 mailte Carsten Friede folgendes:
Also, einfach ein Bootscript (das sind die Dinger, die als Paramater [start|stop] haben wollen, und das an geeigneter Stelle beim booten
Nein, ich meinte eher, wie das funktioniert bei sich ständig ändernden IPs beim Dialout.
Trenne Dich vom Gedanken an IP's und denke mal mehr in Richtung Interface. Du mußt keine diekten IP's angeben, zumindest nicht bei iptables. Es ist flexibel genug, um auch mit dynamischen IP's umzugehen, indem man einfach mit den Interfaces arbeitet.
Beispiel: (mit $IPT = /pfad/zu/iptables)
$IPT -A block -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A block -m state --state NEW -i ! ippp0 -j ACCEPT
erlaub alles, was bereits aufgebaut oder aber zu einer bestehenden Verbindung gehört (Zeile 1) sowie alle Verbindungswünsche (Neuaufbau) von allen Schnittstellen _außer_ ippp0 (das ist mein ISDN-Interface).
Im lokalen Netz habe ich nur einen Rechner, und der ist vertrauenswürdig.
Wichtig ist in dem Zusammenhang -i und -o für in-interface und out-interface. Welche IP die haben, ist Wuarscht.
Andreas
Andreas Kretschmer wrote:
am Thu, dem 19.09.2002, um 12:41:40 +0200 mailte Carsten Friede folgendes:
Also, einfach ein Bootscript (das sind die Dinger, die als Paramater [start|stop] haben wollen, und das an geeigneter Stelle beim booten
Nein, ich meinte eher, wie das funktioniert bei sich ständig ändernden IPs beim Dialout.
Trenne Dich vom Gedanken an IP's und denke mal mehr in Richtung Interface. Du mußt keine diekten IP's angeben, zumindest nicht bei iptables. Es ist flexibel genug, um auch mit dynamischen IP's umzugehen, indem man einfach mit den Interfaces arbeitet.
Beispiel: (mit $IPT = /pfad/zu/iptables)
$IPT -A block -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A block -m state --state NEW -i ! ippp0 -j ACCEPT
erlaub alles, was bereits aufgebaut oder aber zu einer bestehenden Verbindung gehört (Zeile 1) sowie alle Verbindungswünsche (Neuaufbau) von allen Schnittstellen _außer_ ippp0 (das ist mein ISDN-Interface).
Im lokalen Netz habe ich nur einen Rechner, und der ist vertrauenswürdig.
Wichtig ist in dem Zusammenhang -i und -o für in-interface und out-interface. Welche IP die haben, ist Wuarscht.
Ähm, ich benutze IPChains. Und so wie Du das beschreibst, würde das bedeuten, daß ich nur Interface abhängig die Rules setzen muß. Ich weiß jetzt nicht genau, ob ipchains das so einfach mitmacht, wenn das Interface nicht da ist.[Es macht's mit. Gerade ausprobiert.] Wenn dann die Verbindung aufgebaut ist, dann würde bei den Rules in der destination "Any" stehen. Stört auch nicht weiter, bis auf z.B. anti-spoofing Regeln, wo es meines erachtens nach doch schon ganz praktisch wäre zumindest die lokale IP zu wissen. Alles andere ist kein Problem, so wird's z.B. bei SuSE seit Version 6.4 mit dem Paket firewals gemacht. Es war allerdings auch der Grund für mich der Grund ein selbstgeschriebenes Skript zu verwenden, da ich mit dieser Taktik nicht so ganz einverstanden war. Das eigentliche Problem ist doch aber immer noch, daß der Aufruf meines Filterskriptes aus /etc/ppp/ip-up nicht klappt. Warum das so ist würde ich gerne wissen wollen. Das Skript ip-up ist meines Wissens nach das letzte, was nach dem Handshake und Austausch der IP's gestartet wird. Zu diesem Zeitpunkt müßte alles "klar" sein. D.h. mein Filter müßte richtig aufgebaut werden. Wird er aber nicht. Es kommen nur verstümmelte Rules raus. Wieso???
Da interessiert mich brennend.
MfG
Carsten
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Thursday 19 September 2002 22:22, Carsten Friede wrote:
bis auf z.B. anti-spoofing Regeln, wo es meines erachtens nach doch schon ganz praktisch wäre zumindest die lokale IP zu wissen.
Die kann man auch so formulieren, dass sie den Negativfall abfangen, also anstatt "lass alles durch, was zu diesem Interface gehoert" ein "fang alles ab, was zu anderen Interfaces gehoert": ipchains -A INPUT -i ippp0 -d 192.168.0.0/16 -j DROP ipchains -A INPUT -i ippp0 -d 172.16.0.0/12 -j DROP ipchains -A INPUT -i ippp0 -d 10.0.0.0/8 -j DROP
anstatt: ipchains -A INPUT -i ippp0 -d !$MYIP -j DROP
Konrad
- -- Never shown Star Trek episodes #11: Jaqotay: "Captn', I think I've lost my watch." Janeway: "Oh' no, not a time shift again!"
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Thursday 19 September 2002 10:45, Carsten Friede wrote:
Konrad Rosenbaum wrote:
Ich konfiguriere meine FW nur einmal beim Booten, die Regeln bleiben auch ohne Interface aktiv, damit besteht kein Grund bei jedem Dial-Out die FW erneut aufzubauen.
Hey, wie machst Du das?
1. Ich konfiguriere mir meine FW per Hand, bis ich mit den Testergebnissen zufrieden bin (vorausgesetzt man hat irgendwo ausserhalb einen Rechner von dem aus man den eigenen "angreifen" kann). 2. Ich speichere die Config mit "iptables-save >/etc/iptables.rules" 3. Ich richte mir ein Bootskript ein: 3.1. cd /etc/init.d 3.2. cp skeleton iptables 3.3. $EDITOR iptables 3.3.1 start wird auf "iptables-restore </etc/iptables.rules" gesetzt 3.3.2 stop bleibt leer (wozu eine FW aufraeumen, das oeffnet nur unnoetig Loecher) 3.3.3 restart, reload werden "$0 start" 3.3.4 es kommt eine Zusatzregel "open" rein, die die FW abschaltet (iptables -F ...; iptables -P ... ACCEPT) (benutze ich, wenn ich Tests ohne FW durchfuehren will) 4. Ich verteile das Skript in die diversen Runlevel (bei Debian per update-rc.d, bei SuSE via YaST2 Init-Editor)
Das schoene daran, wenn ich meine FW von Hand mal wieder etwas getunt habe braucht ich nur nochmal iptables-save aufzurufen, damit das permanent wird. Ausserdem kann ich so mehrere verschiedene Konfigurationen rumliegen lassen, die die Ergebnisse verschiedenster Experimente enthalten.
Konrad
- -- Never shown Star Trek episodes #1: Dr. Crusher: "Geordy, since when does he have such deep blue eyes?" Lt. Geordy LaForge: "I think we will need to reboot Data."
lug-dd@mailman.schlittermann.de