IPTables Firewall

NiclasM

Enthusiast
Thread Starter
Mitglied seit
06.02.2007
Beiträge
4.331
Ort
Dortmund
Hey,

ich hab mich in letzer Zeit mit iptables ausseinander gesetzt und würde dass nun gerne auf meinem root Server einrichten.Doch auf meinem localem PC hatte ich nach ausführung kein Internet mehr, was hab ich vergessen :confused:

Code:
#!/bin/sh

iptables -F                              					#alle Regeln löschen
iptables -P INPUT DROP			 					#Policy für Tabelle filter, INPUT Chain
iptables -P OUTPUT DROP			 					#Policy für Tabelle filter, OUTPUT Chain
iptables -P FORWARD DROP		 					#Policy für Tabelle filter, FORWARD Chain
iptables -A INPUT -i lo -j ACCEPT	 					#eingehende Kommunikation für lo (Localhost) zulassen
iptables -A OUTPUT -o lo -j ACCEPT


# HTTP
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -j ACCEPT

# SSH
iptables -A INPUT -i eth0 -p tcp --dport 5190 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 5190 -j ACCEPT

# HTTPS
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 443 -j ACCEPT

# IMAPS
iptables -A INPUT -i eth0 -p tcp --dport 993 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 993 -j ACCEPT

# SMTPS
iptables -A INPUT -i eth0 -p tcp --dport 465 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 465 -j ACCEPT

# FTP
iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 21 -j ACCEPT
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Kein Internet heißt was? In den regeln fehlt zumindest dns ;)
 
Browser gibt nicht, DNS Auflösung per Ping ging, doch sonst kam nix :?
 
Das was fehlt, sind die Rückverbindungen...

Wenn du eine Verbindung zum Webserver öffnest, anwortet dieser nicht an Port 80, sondern an einen Port über 1024.

Das kannst du ganz einfach abfangen, in dem du alle Verbindungen zulässt, die related und established sind.

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

wobei... eigtl sollte das tun.. du gibst fuer den rückweg ja als source port 80 etc an... merkwürdig

---------- Post added at 18:45 ---------- Previous post was at 18:38 ----------

Du hast die Regeln auf deinem Server aktiv genommen richtig? Wenn das wirklich alle Regeln sind, dann dürfte Ping, DNS etc nicht funktionieren, da du kein Port 53 und keine ICMP Pakete durchlässt.
 
Zuletzt bearbeitet:
btw, statt direkt IP tables würde ich lieber ein Frontend dafür wie z.B. shorewall nehmen, ist wesentlich komfortabler :)
 
Mein Firewall Script daheim am Router sieht so aus:

Code:
#!/bin/sh

# The location of the IPtables binary file on your system.
IPT="/sbin/iptables"

# The following rules will clear out any existing firewall rules,
# and any chains that might have been created.
$IPT -F
$IPT -F INPUT
$IPT -F OUTPUT

$IPT -F FORWARD
$IPT -F -t mangle
$IPT -F -t nat
$IPT -X

# These will setup our policies.
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT

# The following line below enables IP forwarding and thus
# by extension, NAT. Turn this on if you're going to be
# doing NAT or IP Masquerading.
echo 1 > /proc/sys/net/ipv4/ip_forward


#Allgemeine Durchlaesse
$IPT -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE
$IPT -A FORWARD -i ppp0 -d 192.168.0.0/24 -j ACCEPT
$IPT -A FORWARD -o ppp0 -p TCP --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -s 192.168.0.0/16 -d 0/0 -p all -j ACCEPT
$IPT -A INPUT -i ppp0 -s 0/0 -d 0/0 -p tcp --dport 21 -j ACCEPT
$IPT -A INPUT -i ppp0 -s 0/0 -d 0/0 -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT -i ppp0 -s 0/0 -d 0/0 -p tcp --dport 25 -j ACCEPT
$IPT -A INPUT -i ppp0 -s 0/0 -d 0/0 -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -i ppp0 -s 0/0 -d 0/0 -p tcp --dport 113 -j ACCEPT

# Drop icmp, but only after letting certain types through.
$IPT -A INPUT -p icmp --icmp-type 0 -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type 3 -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type 11 -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type 8 -m limit --limit 1/second -j ACCEPT

#SSH,smtp,http,auth, VOIP Kram
$IPT -t nat -A PREROUTING -i ppp0 -p TCP --dport 21 -j DNAT --to-destination 192.168.0.xx
$IPT -t nat -A PREROUTING -i ppp0 -p TCP --dport 22 -j DNAT --to-destination 192.168.0.xx
$IPT -t nat -A PREROUTING -i ppp0 -p TCP --dport 25 -j DNAT --to-destination 192.168.0.xx
$IPT -t nat -A PREROUTING -i ppp0 -p TCP --dport 80 -j DNAT --to-destination 192.168.0.xx
$IPT -t nat -A PREROUTING -i ppp0 -p TCP --dport 113 -j DNAT --to-destination 192.168.0.xx

Damit funktioniert der Zugriff von aussen prima, und von innen gibt's auch keine Probleme.
 
ESTABLISHED und RELATED fehlt, aber alles auf DROP zu stellen ist eigentlich eh paranoid. Kannst ja mal offen lassen und dann mit nmap gucken, was da so horcht. Weil, wo nichts horcht ist auch keine Schwachstelle. Pings zu dropen kann schlau sein.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh