IP Tables Config Problem

Gemeinsam ins Internet mit Firewall und Proxy.
Antworten
Knexi
Beiträge: 25
Registriert: 11.10.2015 09:45:43

IP Tables Config Problem

Beitrag von Knexi » 14.08.2016 19:38:43

Hallo allerseits,

habe ein paar Probleme bei der Konfiguration der IP-Tables Firewall auf meinem Debian Desktop und
hoffe ihr könnt mir diesbezüglich ein paar Tipps geben.


Und zwar ich habe Probleme mit ausgehenden Verbindungen.
Folgende Regel sollte doch eigentlich ausgehenden Verkehr erlauben:

Code: Alles auswählen

$IPTABLES -P OUTPUT ACCEPT
Ausgehend blockiert werden von mir eigentlich nur Google, FB
IP-Adressbereiche ... (siehe Skript).

Dennoch muss ich für jeden Dienst den ausgehenden Port explizit erlauben
(DNS, HTTP, Tor, SMTP, POP3, SSH ...)
Woran liegt das?

Ich habe auch z.B. bei Gajim das Problem dass bei aktiver Firewall keine
Plugins geladen werden können. Laut Logs scheint Gajim einen Random Port
zu nutzen.
Doch andererseits funktioniert z.B. mein Browser, bei dem ja eigentlich
auch jeder Tab einen random Port erhalten sollte oder?

Hast irgendjemand eine Idee woran das liegen könnte?

Eine weitere Verständnisfrage hätte ich auch noch:
Nehmen wir an ich erlaube ausgehend Port 443 und ich Sperre ausgehend zB
8.8.8.8/24
Ist nun eine Verbindung zu 8.8.8.8:443 (mask 255.255.255.0) erlaubt?

Danke im Voraus.

Hier mein Skript:

Code: Alles auswählen

#!/bin/sh
# iptables Firewall Skript
echo "Loading Firewall ..."

##################
# iptables 
##################

IPTABLES="/sbin/iptables"

##################
# Purge/Flush 
##################

# Alle Regeln löschen
$IPTABLES -F 
$IPTABLES -t nat -F
$IPTABLES -t mangle -F

# Alle Regelketten löschen
$IPTABLES -X 
$IPTABLES -t nat -X
$IPTABLES -t mangle -X

##################
# Regeln
##################

# IPv4 Default
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT

# Loopback-Schnittstelle Verkehr erlauben
$IPTABLES -A INPUT -i lo -j ACCEPT 
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# ICMP-Antwortpakete erlauben
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type echo-reply -j ACCEPT 
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type echo-request -j ACCEPT 
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type destination-unreachable -j ACCEPT

# Alle Pakete zu einer bestehenden TCP-Verbindung akzeptieren
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Alle Pakete ordentlich zurückweisen
$IPTABLES -A INPUT -p tcp -j REJECT --reject-with tcp-reset 
$IPTABLES -A INPUT -j REJECT --reject-with icmp-port-unreachable

#Allow outbound connections on the ports we previously decided.
$IPTABLES -A OUTPUT -p tcp --dport 25 -j ACCEPT #SMTP
$IPTABLES -A OUTPUT -p tcp --dport 53 -j ACCEPT #DNS
$IPTABLES -A OUTPUT -p tcp --dport 80 -j ACCEPT #HTTP
$IPTABLES -A OUTPUT -p tcp --dport 110 -j ACCEPT #POP
$IPTABLES -A OUTPUT -p tcp --dport 443 -j ACCEPT #HTTPS
$IPTABLES -A OUTPUT -p tcp --dport 51413 -j ACCEPT #BT
$IPTABLES -A OUTPUT -p tcp --dport 6969 -j ACCEPT #BT tracker
$IPTABLES -A OUTPUT -p UDP --dport 67:68 -j ACCEPT #DHCP
$IPTABLES -A OUTPUT -p udp --dport 53 -j ACCEPT #DNS
$IPTABLES -A OUTPUT -p udp --dport 51413 -j ACCEPT #BT
## edit: dont forget tor Ports!
$IPTABLES -A OUTPUT -p tcp --dport 9050 -j ACCEPT #Tor
$IPTABLES -A OUTPUT -p tcp --dport 9150 -j ACCEPT #Tor
$IPTABLES -A OUTPUT -p tcp --dport 9040 -j ACCEPT #Tor
$IPTABLES -A OUTPUT -p udp --dport 5400 -j ACCEPT #Tor
## edit: common Email Ports
$IPTABLES -A OUTPUT -p tcp --dport 465 -j ACCEPT #SMTP with SSL/TLS
$IPTABLES -A OUTPUT -p tcp --dport 993 -j ACCEPT #IMAP with SSL/TLS
$IPTABLES -A OUTPUT -p tcp --dport 995 -j ACCEPT #POP3 with SSL/TLS
$IPTABLES -A OUTPUT -p tcp --dport 143 -j ACCEPT #IMAP
## edit: other important protocols
$IPTABLES -A OUTPUT -p tcp --dport 22 -j ACCEPT #SSH
## edit: Newsgroup
$IPTABLES -A OUTPUT -p tcp --dport 119 -j ACCEPT #NNTP
# edit NTP
$IPTABLES -A OUTPUT -p udp --dport 123 -j ACCEPT #NNTP
#edit XMPP
$IPTABLES -A OUTPUT -p tcp --dport 5222 -j ACCEPT #XMPP


##IP Adressen Script git: https://github.com/mglinux/afwall_easy
$IPTABLES -A OUTPUT -d 8.8.4.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 8.8.8.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 8.34.208.0/20 -j REJECT
$IPTABLES -A OUTPUT -d 8.35.192.0/20 -j REJECT
$IPTABLES -A OUTPUT -d 23.236.48.0/20 -j REJECT
$IPTABLES -A OUTPUT -d 23.251.128.0/19 -j REJECT
$IPTABLES -A OUTPUT -d 64.233.160.0/19 -j REJECT
$IPTABLES -A OUTPUT -d 66.102.0.0/20 -j REJECT
$IPTABLES -A OUTPUT -d 66.249.64.0/19 -j REJECT
$IPTABLES -A OUTPUT -d 70.32.128.0/19 -j REJECT
$IPTABLES -A OUTPUT -d 72.14.192.0/18 -j REJECT
$IPTABLES -A OUTPUT -d 74.114.24.0/21 -j REJECT
$IPTABLES -A OUTPUT -d 74.125.0.0/16 -j REJECT
$IPTABLES -A OUTPUT -d 104.132.0.0/23 -j REJECT
$IPTABLES -A OUTPUT -d 104.132.5.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 104.132.7.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 104.132.8.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 104.132.11.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 104.132.34.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 104.132.51.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 104.133.0.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 104.133.2.0/23 -j REJECT
$IPTABLES -A OUTPUT -d 104.154.0.0/15 -j REJECT
$IPTABLES -A OUTPUT -d 104.196.0.0/14 -j REJECT
$IPTABLES -A OUTPUT -d 107.167.160.0/19 -j REJECT
$IPTABLES -A OUTPUT -d 107.178.192.0/18 -j REJECT
$IPTABLES -A OUTPUT -d 108.59.80.0/20 -j REJECT
$IPTABLES -A OUTPUT -d 108.170.192.0/18 -j REJECT
$IPTABLES -A OUTPUT -d 108.177.0.0/17 -j REJECT
$IPTABLES -A OUTPUT -d 130.211.0.0/16 -j REJECT
$IPTABLES -A OUTPUT -d 142.250.0.0/15 -j REJECT
$IPTABLES -A OUTPUT -d 146.148.0.0/17 -j REJECT
$IPTABLES -A OUTPUT -d 162.216.148.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 162.222.176.0/21 -j REJECT
$IPTABLES -A OUTPUT -d 172.0.0.0/16 -j REJECT
$IPTABLES -A OUTPUT -d 172.102.8.0/21 -j REJECT
$IPTABLES -A OUTPUT -d 172.110.32.0/21 -j REJECT
$IPTABLES -A OUTPUT -d 172.217.0.0/16 -j REJECT
$IPTABLES -A OUTPUT -d 172.253.0.0/16 -j REJECT
$IPTABLES -A OUTPUT -d 173.194.0.0/16 -j REJECT
$IPTABLES -A OUTPUT -d 173.255.112.0/20 -j REJECT
$IPTABLES -A OUTPUT -d 185.25.28.0/23 -j REJECT
$IPTABLES -A OUTPUT -d 185.150.148.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 192.104.160.0/23 -j REJECT
$IPTABLES -A OUTPUT -d 192.158.28.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 192.178.0.0/15 -j REJECT
$IPTABLES -A OUTPUT -d 193.200.222.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 199.192.112.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 199.223.232.0/21 -j REJECT
$IPTABLES -A OUTPUT -d 207.223.160.0/20 -j REJECT
$IPTABLES -A OUTPUT -d 208.68.108.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 209.85.128.0/17 -j REJECT
$IPTABLES -A OUTPUT -d 209.107.176.0/20 -j REJECT
$IPTABLES -A OUTPUT -d 216.58.192.0/19 -j REJECT
$IPTABLES -A OUTPUT -d 216.73.80.0/20 -j REJECT
$IPTABLES -A OUTPUT -d 216.239.32.0/19 -j REJECT
$IPTABLES -A OUTPUT -d 216.252.220.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 31.13.24.0/21 -j REJECT
$IPTABLES -A OUTPUT -d 31.13.64.0/18 -j REJECT
$IPTABLES -A OUTPUT -d 45.64.40.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 66.220.144.0/20 -j REJECT
$IPTABLES -A OUTPUT -d 69.63.176.0/20 -j REJECT
$IPTABLES -A OUTPUT -d 69.171.224.0/19 -j REJECT
$IPTABLES -A OUTPUT -d 74.119.76.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 103.4.96.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 157.240.0.0/17 -j REJECT
$IPTABLES -A OUTPUT -d 173.252.64.0/18 -j REJECT
$IPTABLES -A OUTPUT -d 179.60.192.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 185.60.216.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 204.15.20.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 63.124.78.0/23 -j REJECT
$IPTABLES -A OUTPUT -d 112.106.0.0/15 -j REJECT
$IPTABLES -A OUTPUT -d 112.108.0.0/16 -j REJECT
$IPTABLES -A OUTPUT -d 121.252.0.0/15 -j REJECT
$IPTABLES -A OUTPUT -d 122.101.0.0/16 -j REJECT
$IPTABLES -A OUTPUT -d 123.32.0.0/12 -j REJECT
$IPTABLES -A OUTPUT -d 157.197.0.0/16 -j REJECT
$IPTABLES -A OUTPUT -d 165.213.0.0/16 -j REJECT
$IPTABLES -A OUTPUT -d 166.79.0.0/16 -j REJECT
$IPTABLES -A OUTPUT -d 166.103.0.0/16 -j REJECT
$IPTABLES -A OUTPUT -d 168.219.0.0/16 -j REJECT
$IPTABLES -A OUTPUT -d 182.192.0.0/13 -j REJECT
$IPTABLES -A OUTPUT -d 194.133.18.0/23 -j REJECT
$IPTABLES -A OUTPUT -d 202.20.128.0/17 -j REJECT
$IPTABLES -A OUTPUT -d 203.126.64.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 203.241.48.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 203.241.132.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 203.241.136.0/21 -j REJECT
$IPTABLES -A OUTPUT -d 203.241.144.0/21 -j REJECT
$IPTABLES -A OUTPUT -d 203.241.152.0/23 -j REJECT
$IPTABLES -A OUTPUT -d 203.241.154.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 203.241.156.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 203.241.160.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 203.242.96.0/20 -j REJECT
$IPTABLES -A OUTPUT -d 203.244.96.0/19 -j REJECT
$IPTABLES -A OUTPUT -d 203.244.192.0/18 -j REJECT
$IPTABLES -A OUTPUT -d 203.246.140.0/22 -j REJECT
$IPTABLES -A OUTPUT -d 203.246.144.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 203.246.146.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 203.246.149.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 203.246.157.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 203.246.190.0/23 -j REJECT
$IPTABLES -A OUTPUT -d 203.246.192.0/18 -j REJECT
$IPTABLES -A OUTPUT -d 203.249.192.0/19 -j REJECT
$IPTABLES -A OUTPUT -d 203.254.192.0/18 -j REJECT
$IPTABLES -A OUTPUT -d 206.67.236.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 207.140.43.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 208.248.44.0/24 -j REJECT
$IPTABLES -A OUTPUT -d 210.94.32.0/19 -j REJECT
$IPTABLES -A OUTPUT -d 210.118.32.0/19 -j REJECT
$IPTABLES -A OUTPUT -d 210.118.64.0/18 -j REJECT
$IPTABLES -A OUTPUT -d 211.36.64.0/19 -j REJECT
$IPTABLES -A OUTPUT -d 211.45.0.0/19 -j REJECT
$IPTABLES -A OUTPUT -d 211.189.0.0/17 -j REJECT



# Logging aktivieren
$IPTABLES -N LOGGING
$IPTABLES -A INPUT -j LOGGING
$IPTABLES -A OUTPUT -j LOGGING
$IPTABLES -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
$IPTABLES -A LOGGING -j DROP


#Save our firewall rules
iptables-save > /etc/iptables.rules
iptables-save > /etc/iptables.up.rules


echo "................ done!"

Lg

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: IP Tables Config Problem

Beitrag von eggy » 14.08.2016 20:03:51

Die aktuelle Konfiguration ist wahrscheinlich interessanter/leichter zu lesen, siehe iptables --list -nv --line-numbers oder iptables-save
Für längere Logs/Ausgaben/Scripte etc gibts nopaste.debianforum.de
Schau Dir da mal den Unterschied zwischen -A und -I an. Die Reihenfolge spielt eine Rolle, der erste Treffer zählt in der Regel.

Knexi
Beiträge: 25
Registriert: 11.10.2015 09:45:43

Re: IP Tables Config Problem

Beitrag von Knexi » 14.08.2016 20:21:10

OK sorry bezüglich des langen Snippets.
Ok danke also zählt der erste Hit in den rules.

Hier der output der aktuellen Config anstelle des Scripts:
http://nopaste.debianforum.de/39454

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: IP Tables Config Problem

Beitrag von eggy » 14.08.2016 20:26:20

Verfolge mal den Weg eines beliebigen Paketes in Output: angenommen es wird nicht von den ACCEPT Zeilen 17-40 erwischt und gehört auch nicht zu in 40-154 von REJECT erschlagen, was passiert damit dann?

Knexi
Beiträge: 25
Registriert: 11.10.2015 09:45:43

Re: IP Tables Config Problem

Beitrag von Knexi » 14.08.2016 20:39:12

eggy hat geschrieben:Verfolge mal den Weg eines beliebigen Paketes in Output: angenommen es wird nicht von den ACCEPT Zeilen 17-40 erwischt und gehört auch nicht zu in 40-154 von REJECT erschlagen, was passiert damit dann?
Abgesehen von der generellen ACCEPT Policy und den Zeilen 17-40 und 40-154 seh ich jetzt nichts also müsste doch die allgemeine Policy

Code: Alles auswählen

$IPTABLES -P OUTPUT ACCEPT
zutreffen.
Jedoch scheine ich irgendetwas zu übersehen, sonst würde es ja funktionieren :)

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: IP Tables Config Problem

Beitrag von eggy » 14.08.2016 21:55:28

155: geh zu 157 und dann weiter

Knexi
Beiträge: 25
Registriert: 11.10.2015 09:45:43

Re: IP Tables Config Problem

Beitrag von Knexi » 14.08.2016 22:07:34

Vielen Dank! :hail:
Jetzt hab ich den Fehler gesehen.
Man wird einfach blind für die eigenen Skripts.

Antworten