PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache nach aussen und Firewallregel



leon
18.11.01, 21:53
Hallo Leute,

ich habe mich schon im Forum umgesehen, aber leider nicht so Recht das Richtige gefunden. Folgendes Problem:

Ein Server mit Anbindung an das I-Net, darauf ein Apache Webserver und eine Firewall.
Die Firewall lässt mich nicht auf den Webserver.
Hier ein Auszug aus dem Skript für die Firewall

# Default policy
echo Setting up default policy...
ipchains -P input DENY
ipchains -P forward DENY
ipchains -P output DENY
# Die Default Policy wird auf DENY gesetzt
# Somit haben Sie jetzt eine ultimative Firewall

# Variables
echo Setting up all defined variables...
DEV_LNET=eth0
IP_LNET=192.168.1.18
DEV_INET=ppp0
LNET=192.168.1.0/24
GLOBAL=0.0.0.0/0
# Alle nötigen Variabeln werden jetzt definiert

-----------------------------------------------------------------

Jetzt der entscheidene Abschnitt für den erlaubten Zugriff von Aussen über den Port 80 und tcp.
Die output Regel funzt, hab ich schon getestet, nur die Inputregel stimmt irgendwie nicht. Vermutlich falsches Device.

------------------------------------------------------

# Jeder der auf meinen Webserver rauf möchte wird Akzeptiert
echo Setting up Webserver Parameter
ipchains -A input --sport 80 -d $DEV_INET 1024: -p tcp -i $DEV_INET -j ACCEPT
ipchains -A output --sport 80 -d $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT
#
---------------------------------------------------------

Hat da einer ne Idee.

Vielen Dank

Leon

SmackTV
18.11.01, 22:45
Hi leon,

Wenn ich das richtig verstanden hab willst du fürs I-Net deinen Web-Server zur verfügung stellen. Sicherlich gehst du dann mit einem Modem/ISDN/DSL Anschluß ins Netz und bekommst dynamisch eine IP zugewiesen.

Dann sollte deine Input Regeln ungefähr so aussehen:

ipchains -A INPUT -p TCP -s $GLOBAL --sport 1024:65535 --dport 80:80 -i $DEV_INET -j ACCEPT

Damit sollte der Input ebenfalls funktionieren.

In deiner Output Regel hat sich aber auch ein Fehler eingeschlichen:

iptables -A OUTPUT -p TCP --sport 80:80 -d $GLOBAL --dport 1024:65535 -i $DEV_INET -j ACCEPT

PS: Das mit dem $GLOBAL kannst du auch weglassen, da iptables bei nicht vorhandener Angabe einer Quell-/Ziel-IP-Adresse/Netz automatisch 0.0.0.0/0 setzt.

MFG, SmackTV

leon
19.11.01, 10:39
@SmackTv vielen Dank für die schnelle Antwort. Ich werde mich heute Abend gleich mal ransetzen und es ausprobieren.

Wenn es nicht klappen sollte, melde ich mich nochmal.

Leon

Thomas
19.11.01, 10:39
Hi leon, du hast da was verwechselt:

##Deine Ausführung:
ipchains -A input --sport 80 -d $DEV_INET 1024: -p tcp -i $DEV_INET -j ACCEPT

##richtig:
ipchains -A input --sport 1024: --dport 80 -p tcp -i $DEV_INET -j ACCEPT

Mit deiner Regel sagst du ja aus, dass alles was von "bla foo ... Port 80" kommt durchgelassen werden soll. Doch Anfragen kommen nicht von Port 80 sondern von einem unprivilegierten Port -> 1024 aufwärts. Port 80 ist immer der Zielport, der Port, auf dem der Webserver läuft. Also musst du --dport auf 80 setzten und --sport auf 1024:

Alles klar?

Viel Spaß, Thomas.

leon
19.11.01, 20:30
Hallo Leute

Vielen Dank für Eure Tips, es hat alles funktioniert.

Euer Leon