Hallo,
habe mir eine kleine Debian Jessie Kiste aufgesetzt die als Router/Firewall fungieren soll. Nun ist es aber leider so, dass aus mir nicht ersichtlichen Gründen das Forwarding nicht funktioniert. Der Router sitzt hinter einer Fritzbox, die den Zugang zum ISP herstellt. Ich Habe eth1(red) zum Netz der FritzBox, eth0(green) für meine Clients und wlan0(blue). Auf dem Router ist dnsmasq installiert. Die Wlan-Clients bekommen auch ein Lease von dnsmasq, können aber nicht über red ins Internet. Meines erachtens sind die iptables Regeln korrekt.
Code:
Chain INPUT (policy DROP)
target prot opt source destination
LOG all -- anywhere anywhere state NEW LOG level warning
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT udp -- anywhere anywhere udp dpts:bootps:bootpc
ACCEPT udp -- anywhere anywhere udp dpts:bootps:bootpc
ACCEPT tcp -- anywhere anywhere tcp dpt:6666 state NEW
ACCEPT tcp -- 10.8.0.0/16 anywhere tcp dpt:6666 state NEW
ACCEPT tcp -- anywhere anywhere tcp dpt:6666 MAC 70:5A:0F:D0:09:1D state NEW
ACCEPT tcp -- anywhere anywhere tcp dpt:6666 MAC AC:FD:CE:0C:E5:5E state NEW
ACCEPT udp -- anywhere anywhere udp dpt:openvpn state NEW
Chain FORWARD (policy DROP)
target prot opt source destination
LOG all -- anywhere anywhere state NEW LOG level warning
ACCEPT all -- anywhere anywhere state NEW
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW
ACCEPT udp -- anywhere anywhere state NEW
ACCEPT tcp -- anywhere anywhere state NEW
ACCEPT udp -- anywhere anywhere state NEW
ACCEPT all -- anywhere 192.168.1.0/24
ACCEPT all -- anywhere 192.168.1.0/24
ACCEPT all -- anywhere 192.168.178.222 state NEW
ACCEPT tcp -- anywhere 192.168.178.222 state NEW
ACCEPT tcp -- anywhere 192.168.178.43 state NEW
ACCEPT tcp -- anywhere anywhere multiport dports http,5001,5006 state NEW
ACCEPT tcp -- anywhere anywhere multiport dports smtp,urd,imaps,pop3s state NEW
ACCEPT tcp -- anywhere anywhere multiport dports 9010,9090 state NEW
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
LOG all -- anywhere anywhere state NEW LOG level warning
ACCEPT all -- localhost anywhere state NEW
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
Auch die Route auf dem Router sieht ok aus. Lokale Pakete kommen auch ins Internet
Code:
Kernel-IP-Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface
default fritz.box 0.0.0.0 UG 0 0 0 eth1
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
192.168.100.0 * 255.255.255.0 U 0 0 0 wlan0
192.168.178.0 * 255.255.255.0 U 0 0 0 eth0
Das Forwarding ist natürlich aktiviert
Code:
root@pissoff:~# cat /proc/sys/net/ipv4/ip_forward
1
Bin gerade etwas ratlos. Was mich etwas wundert ist die Tatsache, dass einige Regeln in der Forwarding Tabelle doppelt sind, obwohl es im Firewallskript nichts doppeltes gibt, zumindest mein Eindruck
Hier ist das Script
Code:
#!/bin/sh
#
#Firwallscript V.0.1 / 2017-02-27
##
IPTABLES="/sbin/iptables"
#Alle Tabellen leeren
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
#Default policies auf DROP setzen
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
#Netzwerkdevices zuordnen
GREEN=eth0
RED=eth1
BLUE=wlan0
VPN=tun1
PIA=tun0
#NETZ/HOST Zuordnungen
LAN_CLIENTS="192.168.178.0/24"
SEBBI_NET="192.168.1.0/24"
NAS="192.168.178.222"
MAIL="192.168.178.4"
SQUEEZE="192.168.178.43"
#SERVICES
NAS_SERVICE="80,5001,5006"
SQUEEZE_SERVICE="9010,9090"
MAIL_SERVICE="25,465,993,995"
##Logging
$IPTABLES -A FORWARD -m state --state NEW -j LOG
$IPTABLES -A OUTPUT -m state --state NEW -j LOG
$IPTABLES -A INPUT -m state --state NEW -j LOG
#Lokale Verbindungen nach aussen zulassen
$IPTABLES -A OUTPUT -s 127.0.0.1 -m state --state NEW -j ACCEPT
##Zum testen
$IPTABLES -A FORWARD -m state --state NEW -j ACCEPT
#Lokale Verbindungen untereinander zulassen
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
##Generell alle Pakete erlauben, die zu einer bereits aufgebauten Verbindung gehXren
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
##Ping erlauben
$IPTABLES -A INPUT -p icmp -j ACCEPT
$IPTABLES -A OUTPUT -p icmp -j ACCEPT
$IPTABLES -A FORWARD -p icmp -j ACCEPT
#Verbindungen aus GRUEN ins Internet zulassen
$IPTABLES -A FORWARD -i $GREEN -o $RED -p tcp -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -i $GREEN -o $RED -p udp -m state --state NEW -j ACCEPT
#Verbindungen aus BLAU ins Internet zulassen
$IPTABLES -A FORWARD -i $BLUE -o $RED -p tcp -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -i $BLUE -o $RED -p udp -m state --state NEW -j ACCEPT
##Verbindung ins Sebbi-Net zulassen
$IPTABLES -A FORWARD -i $BLUE -d $SEBBI_NET -j ACCEPT
$IPTABLES -A FORWARD -i $GREEN -d $SEBBI_NET -j ACCEPT
#Maskierung
$IPTABLES -t nat -A POSTROUTING -o $RED -j MASQUERADE
##DHCP Clients erlaube
$IPTABLES -A INPUT -i $BLUE -p udp --dport 67:68 -j ACCEPT
$IPTABLES -A INPUT -i $GREEN -p udp --dport 67:68 -j ACCEPT
#Zugriff von BLAU auf NAS
$IPTABLES -A FORWARD -i $BLUE -o $GREEN -d $NAS -m state --state NEW -j ACCEPT
##SSH aus GREEN erlauben
$IPTABLES -A INPUT -i $GREEN -p tcp --dport 6666 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -i $GREEN -s 10.8.0.0/16 -p tcp --dport 6666 -m state --state NEW -j ACCEPT
##SSH von meinen Notebooks erlauben( 1. Buero, 2. Lenovo Notebook)
$IPTABLES -A INPUT -p tcp --dport 6666 -m mac --mac-source 70:5A:0F:D0:09:1D -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 6666 -m mac --mac-source AC:FD:CE:0C:E5:5E -m state --state NEW -j ACCEPT
##Port 80,443 auf SQUID umleiten
#$IPTABLES -A FORWARD -i $GREEN
##Zugriff von EXTERN auf TUN
$IPTABLES -A INPUT -i $RED -p udp --dport 1194 -m state --state NEW -j ACCEPT
##TUN darf auf GREEN, aber nur NAS und SQUEEZE
$IPTABLES -A FORWARD -i $VPN -o $GREEN -p tcp -d $NAS -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -i $VPN -o $GREEN -p tcp -d $SQUEEZE -m state --state NEW -j ACCEPT
##Internet vom FireTV wird auf Google umgeleitet
#$IPTABLES -t nat -A PREROUTING -i $GREEN ! -d $LAN_CLIENTS -p udp --dport 53 -j DNAT --to
#$IPTABLES -A OUTPUT ! -d $LAN_CLIENTS -p udp --dport 53 -j DNAT --to
##NAS erreichbar machen
$IPTABLES -t nat -A PREROUTING -i $RED -p tcp -m multiport --dports $NAS_SERVICE -j DNAT --to-destination $NAS
$IPTABLES -A FORWARD -i $RED -o $GREEN -p tcp -m multiport --dports $NAS_SERVICE -m state --state NEW -j ACCEPT
##MAIL erreichbar machen
$IPTABLES -t nat -A PREROUTING -i $RED -p tcp -m multiport --dports $MAIL_SERVICE -j DNAT --to-destination $MAIL
$IPTABLES -A FORWARD -i $RED -o $GREEN -p tcp -m multiport --dports $MAIL_SERVICE -m state --state NEW -j ACCEPT
##SQUEEZE erreichbar machen
$IPTABLES -t nat -A PREROUTING -i $RED -p tcp -m multiport --dports $SQUEEZE_SERVICE -j DNAT --to-destination $SQUEEZE
$IPTABLES -A FORWARD -i $RED -o $GREEN -p tcp -m multiport --dports $SQUEEZE_SERVICE -m state --state NEW -j ACCEPT
#Zum Schluss noch das Forwarding akzeptieren
echo "1" > /proc/sys/net/ipv4/ip_forward
Lesezeichen