Ich habe einen Dedizierten Root Server mit Virtualisierung und 3 öffentlichen IP-Adressen im selbsen Subnetz und dem selben Gateway. Eine IP-Adresse wird bereits für das Management des Hypervisors benötigt und ist bei dem Problem irrelevant.
Die Firewall VM besitzt 3 Netzwerkschnittstellen: WAN1 = eth0, WAN2 = eth1, LAN1 = eth2 Die verbleibenden 2 IP Adressen sind meiner Firewall zugeteilt (WAN1,WAN2) und sollen beide mit dem selben Default Gateway (MultiWAN) genutzt werden. Durch "ip route" und "ip rule" habe ich es mittlerweile geschafft das ich beide Schnittstellen anpingen kann und direkt auf der FirewallVM verwendet werden kann. Masquerading mit funktioniert für die internen Maschinen soweit auch.
Leider funktioniert in der aktuellen Konfiguration das Portforwarding immer nur bei einem der beiden Interfaces. Beim Starten der Firewall immer die Portforwardings des Interfaces welches als erstes UP ist. Beim einem "ifdown" auf das funktioniernde Interface funktioniert, anschließend das Forwarding das anderen Interfaces.
Leider hab ich nichts gefunden wie ich das Problem lösen kann. Hab nicht wirklich Erfahrung mit iproute2. Virtuelle Interfaces kann ich leider auch nicht Verwenden, da das Gateway die richtige Absender MAC für die IP vorraussetzt.
Hier mein aktuelles Firewallstartscript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | ######VARIABLEN ###Interfaces und IPs export IFWAN1=eth0 export WAN1IP=x.x.x.101 export WAN1GWIP=x.x.x.97 export IFWAN2=eth1 export WAN2IP=x.x.x.102 export WAN2GWIP=x.x.x.97 export IFLAN1=eth2 export LAN1IP=192.168.x.1 ###LAN Server IPs export WIN2008R201=192.168.x.3 #######Grundlegende Konfiguration #Module für das Connection Tracking laden modprobe ip_conntrack_ftp modprobe ip_nat_ftp modprobe ip_conntrack_irc # default-Policies setzen, Tabellen leeren und loeschen / NAT regeln für Multiwan bleiben erhalten iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -F iptables -t nat -F iptables -X iptables -t nat -X #Routing aktivieren echo 1 > /proc/sys/net/ipv4/ip_forward #MultiWAN ip route add default via $WAN1GWIP dev $IFWAN1 tab 1 ip route add default via $WAN2GWIP dev $IFWAN2 tab 2 ip rule add from $WAN1IP/32 tab 1 priority 500 ip rule add from $WAN2IP/32 tab 2 priority 600 ip route flush cache ####### Allow Regeln LAN/WAN between Firewall #Loopback Verkehr erlauben iptables -A OUTPUT -o lo -j ACCEPT iptables -A INPUT -i lo -j ACCEPT #Erlaube ICMP Echo Requests (eingehend / ausgehend) iptables -A INPUT -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type 0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p icmp --icmp-type 0 -m state --state ESTABLISHED,RELATED -j ACCEPT #Erlaube DNS Abfragen (ausgehend) iptables -A OUTPUT -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p udp --sport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp --sport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT ##Erlaube jeden Verkehr #iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT #iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT #Erlaube INPUT und OUTPUT für das interne Netzwerk iptables -A OUTPUT -o $IFLAN1 -j ACCEPT iptables -A INPUT -i $IFLAN1 -j ACCEPT ######## Allow Regeln LAN-to-WAN #Erlaube LAN > WAN (Masquerading in NAT) iptables -t nat -A POSTROUTING -o $IFWAN1 -j MASQUERADE iptables -t nat -A POSTROUTING -o $IFWAN2 -j MASQUERADE #Erlaube den internen LAN Verkehr (Ansonsten geht kein Masquerading) iptables -A FORWARD -i $IFLAN1 -j ACCEPT iptables -A FORWARD -o $IFLAN1 -j ACCEPT ####### Port Forwarding WAN-to-LAN (!!!!!!!!!!! Aktuell funktioniert immer nur das Portfowarding von einem der beiden Interfaces) ###Forward $IFWAN1 iptables -t nat -A PREROUTING -p tcp -m tcp -d $WAN1IP --dport 80 -j DNAT --to-destination $WIN2008R201:80 iptables -A FORWARD -m state -p tcp -d $WIN2008R201 --dport 80 --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -p tcp -m tcp -s $WIN2008R201 --sport 80 -j SNAT --to-source $WAN1IP ###Forward $IFWAN2 ### iptables -t nat -A PREROUTING -p tcp -m tcp -d $WAN2IP --dport 3389 -j DNAT --to-destination $WIN2008R201:3389 iptables -A FORWARD -m state -p tcp -d $WIN2008R201 --dport 3389 --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -p tcp -m tcp -s $WIN2008R201 --sport 3389 -j SNAT --to-source $WAN2IP |