![]() |
![]() |
|
|
|||||||
| Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
#1 |
|
Inventar
![]() Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343
|
ich muß eine iptables-fw implementieren und hätte dazu einige fragen. anregungen habe ich mir teilweise von diversen seiten wie von der wcm linux-box genommen.
1.) ich hab ein verständisproblem bei traffic, der durch die FW durchgelassen werden soll. in den meisten lösungen passiert dieser traffic die chain FORWARD. wenn ich also z.b. eine FW habe, die zwischen 2 subnetzen 60.0.0.0/24 und 160.0.0.0/24 liegt, hätte ich mMn z.b. "lasse TCP-traffic aus dem subnetz 60.0.0.0/24 durch, der zu 160.0.0.0:1812 geht." Code:
iptables -A FORWARD -p tcp -s 60.0.0.0/24 -d 160.0.0.10/24 --dport 1812 -j ACCEPT wenn ich mir aber z.b. diese seite ansehe, verstehe ich das so, daß die pakete, die die FW passieren dürfen, durch ROUTING durchmüssen. solche anweisungen finde ich aber in keinem bsp, wenns darum geht, traffic durchzulassen, weswegen ich vermute, daß ich da was nicht verstanden habe, wann man FORWARD und wann ROUTING verwenden muß. 2.) bei manchen regeln wird für die source und die destination eine bestimmte adresse oder ein subnetz angegeben. bei anderen hingegen wird angegeben, welches ein- bzw. ausgangsinterface verwendet werden muß, damit die regel zutrifft. macht das einen unterschied oder kann ich mich für eines von beidem entscheiden, je nach dem wie spezifisch meine regel sein muß? 3.) in vielen scripts (u.a. auch bei der wcm linux-box) ist mir aufgefallen, daß die anweisung Code:
iptables -F 4.) logging findet ja automatisch in die datei /var/log/syslog statt. ist es möglich, fürs logging eine eigene datei zu verwenden, um sie von sonstigen logs zu trennen? vielen dank im voraus.
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret." Then he pulled the trigger of his BFG9000. |
|
|
|
|
|
#2 |
|
Inventar
![]() Registriert seit: 05.01.2000
Beiträge: 3.812
|
1,
forward wird ein spezieller Dienst auf eine Interne Maschine ohne "echter" IP (192.x.x.,10.0.xx) benötigt. Routing, wenn z.B mehrere Webserver hinter der Firewall laufen. 2, ja 3, weil es nicht getestet wird, einmal "F" reicht. Wenn du am Anfang alles zumachst. 4,syslog.con aktivieren, da gibt es aber viele Wege die zum Logging führen. Google aktivieren und aufpassen, das dein Logging ein Burstlimit hat, sonst kann man die Maschine abschießen. Gutes Script www.onlinetravel.at/firewall2 Sloter |
|
|
|
|
|
#3 | ||
|
Inventar
![]() Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343
|
Zitat:
Zitat:
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret." Then he pulled the trigger of his BFG9000. |
||
|
|
|
|
|
#4 |
|
Inventar
![]() Registriert seit: 05.01.2000
Beiträge: 3.812
|
Spezieller Dienst ist doof ausgedrückt.
Wenn du hinter deiner Firewall ein Netz hast und da eine Maschine als Webserver fungiert, leitest du die Angaben mit forwar auf die Maschine weiter. Hast du aber zwei Webserver hinter der Firewall wird es eng, du kannst nur einen Port weiterleiten. Grundsätzlich baut man eine Firewall so auf, das zuerst alles geschlossen wird und dann machst du der Reihe nach auf, was du benötigst. So kannst du nichts vergessen und es bleibt nicht ein Schlupfloch aus unchtsamkeit offen. Ein flush macht man nur am Beginn, damit keine alten Regeln aktiv bleiben. Beispiel eines Firewallscripts. #Flush everything, start from scratch $IPTABLES -F #Set default policies to DROP $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP Sloter |
|
|
|
|
|
#5 | |
|
Inventar
![]() Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343
|
Zitat:
immerhin kann ich für einen, wie für zwei webserver, die ja mit unterschiedlichen IPs angesprochen werden, FORWARD-regeln definieren, so z.b. Code:
iptables -A FORWARD -d 160.0.0.5 --dport 80 -j ACCEPT iptables -A FORWARD -d 160.0.0.6 --dport 80 -j ACCEPT ich verstehe daher nicht, wo da jetzt der große der unterschied liegt, ob ich einen oder mehrere webserver hinter der FW laufen habe. ![]()
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret." Then he pulled the trigger of his BFG9000. |
|
|
|
|
|
|
#6 | |
|
Master
![]() Registriert seit: 30.06.2000
Ort: Klagenfurt
Beiträge: 629
|
Zitat:
Die Firewall kriegt auf der öffentliche n IP eine Anfrage an den Port 80, jetzt kommen die Regeln zum Tragen. Also lt. Deiner Konfiguration wird die Anfrage an 160.0.0.5 Port 80 weitergeleitet, da die Regel vor der anderen Regel steht, und nachdem die Regel abgearbeitet wurde und die Anfrage ensprechend abgearbeitet wurde gibt eigentlich keinen Grund mehr die zweite Regel abzuarbeiten. Denn wie einer meiner Vorposter bereits gesagt hat, wird alles mal gesperrt und dann stück für stück geöffnet. kann man einen "Anfrage" Port nur auf eine IP weiterleiten (vorausgesetzt du hast nur eine Source (sprich öffentliche IP Adresse). Ich hoffe das war nicht zu umständlich ;-) Um jedoch das Problem mit 2 Webservern zu lösen, gibt eine ganz elegante Lösung, einfach beide Webseiten auf einem Server laufen lassen und somit all e Anfragen von Port 80 der öffentlichen IP an diesen Webserver weiterleiten und erst am Webserver die Unterscheidung zu treffen (aufgrund der Angefragten Domain) welche "index.htm" er nun zurück gibt.
____________________________________
*hmmmmmmmmmmmmmmm* |
|
|
|
|
|
|
#7 |
|
Inventar
![]() Registriert seit: 27.02.2001
Beiträge: 1.967
|
@RaistlinMajere
Angenommen Dein Linuxrechner hat 2 Interfaces. Eins zeigt ins LAN (eth0), eins ins Internet (eth1). Die INPUT Chain betrifft immer Pakete, die bei einem Interface reinkommen und als Ziel den Linuxrechner selber haben. (darum gibt's ja bei den INPUT Regeln auch nur -i IF) z.B Anfrage von außen "-A INPUT -i eth1" von innen: "-A INPUT -i eth0" OUTPUT betrifft Pakete die von Deinem Linuxrechner (selber) ausgehen und ihn auf irgendeinem IF verlassen. (-A OUTPUT -o IF) Und die FORWARD chain behandelt das Routing. Pakete passieren Deinen Linuxrechner nur. Rein bei eth0, raus bei eth1. Grüße Manx |
|
|
|
|
|
#8 | |
|
Inventar
![]() Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343
|
Zitat:
ich dachte ursprünglich, daß meine beispielregeln sagen "wenn ein request auf 160.0.0.5:80 reinkommt, darfst du diesen weiterleiten". deiner beschreibung zufolge dürfte diese regeln allerdings lediglich den 2. teil dieser aussage abdecken, nämlich die weiterleitung. was ich da noch vermisse, ist der fett markierte teil des zitats. muß ich die abfrage ob einer anfrage auf port 80 eigens über eine INPUT-regel machen? also z.b. so: Code:
iptables -A INPUT --dport 80 -j ACCEPT iptables -A FORWARD -d 160.0.0.5 --dport 80 -j ACCEPT wenn dem so ist, dann ist FORWARD wohl nicht das richtige für mich, weil ich hier nicht eine anfrage auf port 80 auf der FW habe, sondern einen ganz bestimmten server und port hinter der FW von draußen ansprechen will, dieser traffic muß durchgelassen werden.
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret." Then he pulled the trigger of his BFG9000. |
|
|
|
|
|
|
#9 | ||
|
Inventar
![]() Registriert seit: 27.02.2001
Beiträge: 1.967
|
Zitat:
Zitat:
Hier kommt stateful-inspection ins Spiel. Du wirst sowas brauchen: Code:
iptables -A FORWARD -i Interface1 -o Interface2 -m state --state ESTABLISHED,RELATED -j ACCEPT Manx PS: auf http://harry.homelinux.org gibt's einen Konfigurator, vielleicht als Starthilfe brauchbar |
||
|
|
|
|
|
#10 | |
|
Inventar
![]() Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343
|
Zitat:
damit ist mir hier aber nicht geholfen, weil ich ja nicht möchte, daß aus dem subnetz 60.0.0.0 die firewall auf einem port angesprochen werden kann, den diese dann einfach auf eine maschine dahinter weiterleitet. was ich vielmehr brauche, ist, daß ich aus dem subnet 60.0.0.0 sage "ich weiß, daß sich hinter der firewall auf 160.0.0.5:1812 ein server befindet, den ich ansprechen möchte." die firewall soll diese anfrage durchlassen. wie mache ich das?
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret." Then he pulled the trigger of his BFG9000. |
|
|
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|