hacker verägert

SPI-Firewall für Ihren Debian- und Ubuntu-VPS

Die Hardware-Knoten von Rackhansa implementieren vorgeschaltete SPI Firewall (Stateful Packet Inspection) für die gehosteten virtuellen Server; IPV6-Protokoll wird von Dual-Stack-Betrieb supportet. Bekannte Angriffe durch ICMP-Protokolle und DOS-Angriffe (Denial of Service) werden von den physischen Server abgewehrt, so dass diese Art von schlechten Datenpakete die vServer nicht erreichen.
Die Vorteile sind ganz klar:

  • Rackhansa Kunden haben weniger Arbeit durch eine übersichtliche und einfachere Firewall.
  • Bei Bekanntwerden eines neuartigen Netzwerkangriffs implementiert Rackhansa die Abwehr zentral auf den Hardware-Knoten, um alle vServer schnellstmöglich zu schützen.

Weil Debian und Ubuntu die Firewall standardmäßig nicht aktivieren, bekommen diese Templates im Verzeichnis /etc/network/if-up.d zwei zusätzliche Skripts von Rackhansa: firewall-ipv4 und firewall-ipv6 (sie werden ausgeführt, sobald die Netzwerkschnittstelle aktiv ist).
In diesen Skripts gibt es zwei wichtige Variablen; diese nachfolgend aufgeführten Port-Nummern werden beim Booten freigeschaltet:
TCP_PORTS="22 80 443"
UDP_PORTS=""

Die TCP-Ports 22, 80 und 443 (ssh, http und https) sind standardmäßig freigeschaltet.
Falls Sie weitere Ports öffnen möchten, tragen Sie bitte die Port-Nummer in diese Variablen ein (siehe /etc/services).

IPV4-Firewall

Wir möchten an dieser Stelle noch mal erwähnen, dass die nachfolgend vorgestellte Firewall minimal ist und nur dann ausreichend Schutz für Ihren Server bietet, wenn eine vorgeschaltete Firewall all die schlechten Pakete gefiltert hat.
Mit folgendem Befehl:

iptables -n -L -v

wird die aktive Firewall-Regel angezeigt (Sie sollten auf jeden Fall Ihre Firewall überprüfen, insbesondere wenn eine Regel hinzugefügt oder geändert worden ist):

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  707 68591 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
   18  1040 ACCEPT     tcp  --  venet0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     tcp  --  venet0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  venet0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
   25  1198 REJECT     all  --  venet0 *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 697 packets, 89539 bytes)
pkts bytes target prot opt in out source destination

Chain INPUT: Policy DROP bedeutet, dass Datenpakete nicht durchgelassen werden, sofern keine Regel zutrifft.

  • Zeile mit state RELATED,ESTABLISHED: Alle Datenpakete zu einer bestehenden Netzwerkverbindung dürfen passieren. Genau diese Regel macht eine Firewall zu einer SPI-Firewall (Stateful Packet Inspection), also der Kernel führt eine Tabelle darüber, welche Netzwerkverbindung zwischen zwei Endpunkten besteht.
  • Zeile mit „ACCEPT all — lo“: Interne Kommunikation – Verbindungen von und zu dem Loopback-Interface (localhost bzw. 127.0.0.1) sind erlaubt.
  • Zeilen mit „ACCEPT tcp — venet0“: Hier werden die Ports 22, 80 und 443 für eingehende Verbindungen aus der Internetwolke frei geschaltet. Port 22 müssen Sie freigeben, sonst können Sie sich nicht in Ihrem Server mit ssh einloggen.
  • Zeile mit „ACCEPT icmp“: Damit werden die Ping-Datenpakete durchgelassen, wodurch Sie von Ihrem Büro aus überprüfen können, ob Ihr Server noch erreichbar ist.
  • Zeile mit „reject-with icmp-port-unreachable“: Ihr Server schickt eine höfliche Antwort zurück, dass der Verbindungsaufbau nicht akzeptiert worden ist.

Chain FORWARD: Alles ist in Ordnung, Ihr Server ist nur kein Router.
Chain Output mit Policy ACCEPT bedeutet, dass Ihr Server Netzwerkverbindungen nach außen aufbauen darf.

IPV6-Firewall

Mit folgendem Befehl:

ip6tables -n -L -v

wird die aktive IPV6-Firewall angezeigt:

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all      *      *       ::/0                 ::/0                 state RELATED,ESTABLISHED
    0     0 ACCEPT     all      lo     *       ::/0                 ::/0                
    0     0 ACCEPT     tcp      venet0 *       ::/0                 ::/0                 tcp dpt:22
    0     0 ACCEPT     tcp      venet0 *       ::/0                 ::/0                 tcp dpt:80
    0     0 ACCEPT     tcp      venet0 *       ::/0                 ::/0                 tcp dpt:443
    0     0 ACCEPT     icmpv6    *      *       ::/0                 ::/0

Bis auf die letzte haben alle Regeln die gleiche Bedeutung wie IPV4.
Die letzte Regel mit „ACCEPT icmpv6 * *“ darf nicht fehlen! IPV6-Protokoll funktioniert nur dann, wenn Ihr Server auf spezielle Routing-Datenpakete reagiert, die über icmpv6 gesendet werden. Wie schon oben erwähnt, filtert die vorgeschaltete Rackhansa-Firewall die bekannten schlechten Datenpakete und leitet nur Ping und notwendige Routing-Informationen an Ihren Server weiter.