Port 80 erlauben

Gemeinsam ins Internet mit Firewall und Proxy.
Antworten
Benutzeravatar
suntsu
Beiträge: 2947
Registriert: 03.05.2002 10:45:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: schweiz
Kontaktdaten:

Port 80 erlauben

Beitrag von suntsu » 30.08.2002 13:21:08

Tag

Firewall läuft, und mach alles dicht. SSH geht(d.h. Firewall funktioniert)
nur leider komm ich auf keine http siten mehr

code in iptables

Code: Alles auswählen

#HTTP-Daten(tcp-Port 80)
if [ "$CONNECTION_TRACKING" = "1" ]; then

        iptables -A OUTPUT -o $INTERNET -p tcp -s $IPADDR --sport $UNPRIVPORTS -
-dport 80 -m state --state NEW -j ACCEPT
fi

iptables -A OUTPUT -o $INTERNET -p tcp -s $IPADDR --sport $UNPRIVPORTS --dport
80 -m state --state NEW -j ACCEPT

iptables -A INPUT -i $INTERNET -p tcp ! --syn --sport 80 -d $IPADDR --dport $UNP
RIVPORTS -j ACCEPT
Weis jemand was hier falsch ist?


gruss
manuel

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 30.08.2002 14:07:08

Ich blick zwar nicht ganz durch die Konstruktion durch (da gibt es noch andere Regeln, richtig?), aber check doch 'mal mit tcpdump, ob am Server was ankommt, oder ob die FW das schon blockt. Wie funktioniert die Connection nicht? (Conn reset by peer, Timeout?). Wenn SSH funktioniert, sollte HTTP mit den gleichen Regeln auch gehen (so isses bei mir konfiguriert).

Evtl. ist auch der Apache nicht richtig konfiguriert (wenn's Apache ist). Der Router hat ja im Prinzip 2 IP Adressen: die des externen ppp Interface und die des internen eth Interface. Evtl. nimmt der Verbindungen nur auf einem der Interfaces an...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
suntsu
Beiträge: 2947
Registriert: 03.05.2002 10:45:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: schweiz
Kontaktdaten:

Beitrag von suntsu » 30.08.2002 14:16:18

Ich blick zwar nicht ganz
sry ;)

Das ist nätürlich nur die regel um auf http seiten zu connecten. Ich bekomme eine timeout, und das mit dem tcdump kenn ich noch ned, wers aber anschauen.

Das problem ist nur ich will gar nix routen, ich hab ein laptop, bei dem ich diverses einschränken will, aber den zugriff auf websiten ned. Ich betreibe auch gar kein Webserver, will nur auf welche connecten.

gruss
manuel

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 30.08.2002 14:26:48

Ah, OK, es geht also um einen standalone Rechner mit Firewall, von dem aus man nicht alles machen können soll (nur www, ssh etc.)... Right?

Ich finde Deine Regeln etwas zu kompliziert für den Zweck (vor allem die konstruktion mit den Privports leuchtet mir nicht so ganz ein, aber egal...

Aus dem Gedächtnis sollte es in etwas folgendermassen funktionieren:

Code: Alles auswählen

iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -P INPUT DENY
iptables -A OUTPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
iptables -P OUTPUT DENY
Achtung ist alles aus dem Hinterkopf, also ohne Gewähr. Damit sollte man inbound gar nix können und outbound nur www. Die Rückpakete der www Verbindung (sport 80) werde schon vom Conntracking in der ersten Regel erschlagen. Grundsätzlich: Mit Conntracking brauchst Du nur eine Regel, die ESTABLISHED und RELATED erlaubt, und danach musst Du Dich nur noch um die NEW Pakete kümmern...

Hth... Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
suntsu
Beiträge: 2947
Registriert: 03.05.2002 10:45:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: schweiz
Kontaktdaten:

Beitrag von suntsu » 30.08.2002 14:49:15

Ah, OK, es geht also um einen standalone Rechner mit Firewall, von dem aus man nicht alles machen können soll (nur www, ssh etc.)... Right?
Genau, ich sollte mal ein bisschen präzieser meine Fragen formulieren ;)
Ich finde Deine Regeln etwas zu kompliziert für den Zweck
Ich hab mir ein buch gekauft, da ich im netz keine für mich brauchbare anleitung gefunden habe, daher wohl kompliziert.

Vielleicht hab ich den fehler schon gefunden, mir hat noch das ipt_stat modul gefehlt, bin grad am kompilieren, wenn geht sag ich bescheid :oops:

gruss
manuel

Benutzeravatar
suntsu
Beiträge: 2947
Registriert: 03.05.2002 10:45:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: schweiz
Kontaktdaten:

Beitrag von suntsu » 30.08.2002 15:14:07

Code: Alles auswählen

iptables -P INPUT/OUTPUT DENY 
bei diesen beiden bekomme ich beim starten die meldung:

Code: Alles auswählen

iptables: Bad policy name
hab ich hier noch was übersehen?

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 30.08.2002 15:20:19

versuch 'mal REJECT statt DENY...
P.
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
suntsu
Beiträge: 2947
Registriert: 03.05.2002 10:45:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: schweiz
Kontaktdaten:

Beitrag von suntsu » 30.08.2002 15:27:36

Nein geht immer noch nicht > gleiche meldung mit REJECT.

Aber danke für die Hilfe. Ich werde morgen wohl noch ein bisschen basteln und mein buch ein wenig lesen 8)

gruss
manuel

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 30.08.2002 15:59:25

Vielleicht fehlt da noch ein Modul... (ipt_REJECT oder ipt_DENY).

Ich habe bei iptables die Erfahrung gemacht, am besten direkt alles als Modul zu kompilieren. Dann lädt man die einfach nach, die man braucht, aber wenigstens sind alle da.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
suntsu
Beiträge: 2947
Registriert: 03.05.2002 10:45:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: schweiz
Kontaktdaten:

Beitrag von suntsu » 30.08.2002 16:18:41

Vielleicht fehlt da noch ein Modul...
schon wider recht. Aber jetzt hab ich definitif alle :)

Nur leider bekomme ich immer noch ein timeout.
Könntest du mal ein auszug aus deinem script posten, wenn du es auch auf einem standalone rechner am laufen hast. Die beispiele die ich bis jetzt gefunden habe bezogen sich alle auf Router.


gruss
manuel

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 30.08.2002 16:44:07

Das folgende ist der komplette Code meiner alten ISDN Firewall. Ich hatte keinen Router, sondern meine Workstation hatte ein ISDN Karte und ging selbst ins Internet. Die Masquerading und Forward Sachen waren nur für mein Notebook (das an der 2ten Netzwerkkarte hing) sollte also eigentlich unnötig sein.

Ach so: ippp0 ist das Internet Interface

Code: Alles auswählen

iptables -t nat -A POSTROUTING -o ippp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
# INBOUND
# Conntracking handeln
iptables -A INPUT -i ippp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Drop ALL inbound traffic
iptables -A INPUT -i ippp0 -j DROP
# Set Policy to ACCEPT (unused because of previous rule!)
iptables -P INPUT ACCEPT

# OUTBOUND
# Conntracking handeln
iptables -A OUTPUT -o ippp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow ALL outbound traffic
iptables -A OUTPUT -o ippp0 -m state --state NEW -j ACCEPT
Die Config erlaubt alles outbound und nichts inbound. Um selektiv outbound zu arbeiten, sollte die OUTBOUND Sektion folgendermassen aussehen:

Code: Alles auswählen

# OUTBOUND
# Conntracking handeln
iptables -A OUTPUT -o ippp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow important outbound traffic (DNS!)
iptables -A OUTPUT -o ippp0 -p udp -m state --state NEW --dport 53 -j ACCEPT
iptables -A OUTPUT -o ippp0 -p icmp -m state --state NEW -j ACCEPT
# Allow selected outbound ports (www, ssh)
iptables -A OUTPUT -o ippp0 -p tcp -m state --state NEW --dport 80 -j ACCEPT
iptables -A OUTPUT -o ippp0 -p tcp -m state --state NEW --dport 22 -j ACCEPT
# Drop ALL other outbound traffic
iptables -A OUTPUT -o ippp0 -j DROP
# Set Policy to ACCEPT (unused because of previous rule!)
iptables -P INPUT ACCEPT
Damit sollte outbound nur ssh und www gehen. Die ICMP abgehend Regel ist zweifelhaft. Ich weiss nicht, ob es unbedingt nötig ist...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Antworten