Guten Abend Zusammen
Nach langer Suche und in verschiedenen Foren in englisch und deutsch, komme ich nicht mehr weiter und hoffe auf eine passende Lösung von euch.
Grundsätzliches Problem: Unsere Zywall USG 200 steht kurz vor einem Grossbrand. Die CPU ist permanent auf 70 - 90% aufgrund der vielen Verbindungen aus China, Südamerika und Indien. Diese Verbindungen sind zu einem grossen Teil Bruteforce Attacken auf die Firewall, sowie die OS X Mail und Webserver.
Ist-Zustand:
Einerseits läuft die Zywall im Bridge Mode für die DMZ in der Public Range
[Cablerouter](PublicIP 1) <port1-wanport> [Zywall USG 200](PublicIP 2) <-Bridge Mode in DMZ-> [Diverse Server](PublicIP N)
Andererseits besteht ein Routing von der internen Private Range mit NAT ins Internet
[Cablerouter](PublicIP 1) <port1-wanport> [Zywall USG 200](PublicIP 2) <-NAT in LAN1-> [Diverse Clients](PrivateIP DHCP)
Ziel:
Ein Ubuntu Server im Bridgemode mit zwei NIC welcher den Grossteil des Traffics von Hackangriffen unterbindet und die Möglichkeit schafft IPs komplett zu blocken (evnt. fail2ban)
[Cablerouter](PublicIP 1) <port1-eth0> [UbuntuBridge](PublicIP3) <eth1-wanport> [Zywall USG 200](PublicIP 2) <-Bridge Mode in DMZ-> [Diverse Server](PublicIP N)
Problem mit Ubuntu Server:
Das Erzeugen einer Bridge ist kein Problem, diese läuft erstaunlich schnell und eifach. Leider kann ich aber mit ufw in keiner Form kontrollieren, was für Traffic über die Bridge darf. Selbst wenn ich alles blocke z.B. mit ufw deny ftp, so bezieht sich das immer nur auf den Server selber, aber nicht auf den Traffic zwischen eth0 und eth1 (bzw. enp5s0 enp7s0 auf meinem Server)
Bis jetzt getestet:
Ich muss gestehen, ich habe nach 6 Stunden die Übersicht darüber verloren was ich schon alles getestet habe, versuche aber hier eine Zusammenfassung zu schreiben. Der Server befindet sich in einer Testumgebung, daher die "private Range" in der Konfiguration.
Ich habe die bridge-utils installiert und meine interfaces angepasst: /etc/network/interfaces
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 | # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface #auto enp5s0 #iface enp5s0 inet dhcp #Secondary interface #auto enp7s0 #iface enp7s0 inet dhcp #bridge between enp5s0 (wan) and enp7s0 (lan) auto br0 iface br0 inet static address 192.168.111.5 netmask 255.255.255.0 gateway 192.168.111.1 dns-nameservers 8.8.8.8 bridge_ports enp5s0 enp7s0 bridge_stp off bridge_fd 0 bridge_maxwait 0 |
ufw wurde enabled und mit einer Rule für ssh-Zugriff und einer für FTP Deny ausgestattet:
Status: Aktiv Zu Aktion Von -- ------ --- 21/tcp DENY Anywhere 22 ALLOW Anywhere 21/tcp (v6) DENY Anywhere (v6) 22 (v6) ALLOW Anywhere (v6)
Die default Values für ufw wurden angepasst, speziell DEFAULT_FORWARD_POLICY="DROP"
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 | # /etc/default/ufw # # Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback # accepted). You will need to 'disable' and then 'enable' the firewall for # the changes to take affect. IPV6=yes # Set the default input policy to ACCEPT, DROP, or REJECT. Please note that if # you change this you will most likely want to adjust your rules. DEFAULT_INPUT_POLICY="DROP" # Set the default output policy to ACCEPT, DROP, or REJECT. Please note that if # you change this you will most likely want to adjust your rules. DEFAULT_OUTPUT_POLICY="DROP" # Set the default forward policy to ACCEPT, DROP or REJECT. Please note that # if you change this you will most likely want to adjust your rules DEFAULT_FORWARD_POLICY="DROP" # Set the default application policy to ACCEPT, DROP, REJECT or SKIP. Please # note that setting this to ACCEPT may be a security risk. See 'man ufw' for # details DEFAULT_APPLICATION_POLICY="SKIP" # By default, ufw only touches its own chains. Set this to 'yes' to have ufw # manage the built-in chains too. Warning: setting this to 'yes' will break # non-ufw managed firewall rules MANAGE_BUILTINS=no # # IPT backend # # only enable if using iptables backend IPT_SYSCTL=/etc/ufw/sysctl.conf # Extra connection tracking modules to load. Complete list can be found in # net/netfilter/Kconfig of your kernel source. Some common modules: # nf_conntrack_irc, nf_nat_irc: DCC (Direct Client to Client) support # nf_conntrack_netbios_ns: NetBIOS (samba) client support # nf_conntrack_pptp, nf_nat_pptp: PPTP over stateful firewall/NAT # nf_conntrack_ftp, nf_nat_ftp: active FTP support # nf_conntrack_tftp, nf_nat_tftp: TFTP support (server side) IPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_netbios_ns" |
Ich habe versucht net.ipv4.ip_forward=1 in der sysctl.conf zu aktivieren, macht aber keinen Unterschied. Ausserdem habe ich Hinweise in anderen Boards darauf gefunden, man müsse unter /etc/default/ufw den Wert DEFAULT_FORWARD_POLICY="DROP" setzen und anschliessend unter /etc/ufw/before.rules die entsprechenden Einträge für br0 erstellen, z.B. (in dem Fall um den FTP Zugriff zu gewähren):
1 2 | -A ufw-before-forward -i br0 -p tcp -s 192.168.111.0/24 --dport 21 -j ACCEPT -A ufw-before-forward -i br0 -p tcp -d 192.168.111.0/24 --sport 21 -j ACCEPT |
Alles ohne Erfolg... Egal was ich konfiguriere, sämtlicher Traffic wird zwischen den beiden Interface ohne Kontrolle durch gewunken.
Hat jemand eine Idee? Was mache ich falsch? Habe ich etwas grundsätzliches falsch verstanden?
Zur Info: Ich arbeite erst seit kurzem mit Ubuntu, habe aber bald 20 Jahre Berufserfahrung in der Branche. Glaube also, die Theorie verstanden zu haben, schaffe aber die Umsetzung mit Ubuntu nicht.
Ich hoffe meine Frage ist ausreichend verständlich erklärt und entspricht den Forums-Regeln.
Beste Grüsse Ovski