[Linux] Firewall einrichten

Dieses Thema im Forum "Tutorials" wurde erstellt von Kroseida, 27. Dezember 2015.

  1. Kroseida
    Offline

    Kroseida

    Registriert seit:
    28. September 2015
    Beiträge:
    55
    Ort:
    /root/
    Minecraft:
    Kroseida
    Sehr geehrte Community,

    da anscheinend jede 2. Person hier nicht in der lage ist sein BungeeCord Netzwerk zu schützen gibt es hier ein "Tutorial" wie ihr das macht.
    Bevor ich anfange schaut euch das an! https://minecraft-server.eu/forum/threads/info-der-eigene-server.1479/
    Ihr solltet euch das Tutorial bis zum ende durchlesen!

    Gut, nun können wir ja anfangen.
    Unter Linux wird die Firewall via iptables eingerichtet, und mit hilfe von iptables-persistent gespeichert.

    Also fangen wir mit der installation von iptables-persistent an.

    (solltet ihr diese befehle nicht über denn root benutzer eingeben müsst ihr dies mit "sudo" machen)
    Linux Debian/Ubuntu
    Code (Text):
    1.  
    2. apt-get install iptables-persistent
    3.  
    Linux RHEL/CentOS 7
    Code (Text):
    1.  
    2. yum install -y iptables-services
    3.  
    hab ihr das gemacht, seid ihr in der lage eure iptables einstellungen zu speichern.
    (Ansonsten werden diese nach jedem Systemneustart gelöscht)

    Jetzt fangen wir mit den iptables selbst an:
    Erst mal sollten wir unseren SSH Port offen lassen(dient zur sicherheit, falls ihr irgendwas falsches macht, damit euer SSH port nicht blockiert wird):
    {PORT} sollte durch denn SSH Port geändert werden z.B 22.
    Code (Text):
    1.  
    2. iptables -A INPUT -p tcp --dport {PORT} -j ACCEPT
    3. iptables -A OUTPUT -p tcp --sport {PORT} -j ACCEPT
    4.  
    Nun ist unser SSH Service vor menschlichen fehlern geschützt.
    Jetzt müssen wir für unsere Game Server/Minecraft Server die ports sperren.
    Dieser schritt muss für jeden port der von außen nicht erreichbar sein soll wiederhollt werden:
    (da wahrscheinlich 25565 offen bleiben wird wiederholen wir das für diesen Port nicht)
    Code (Text):
    1.  
    2. iptables -A INPUT -p tcp --dport {PORT} -j DROP
    3. iptables -A OUTPUT -p tcp --sport {PORT} -j DROP
    4.  
    z.B
    Code (Text):
    1.  
    2. iptables -A INPUT -p tcp --dport 25555 -j DROP
    3. iptables -A OUTPUT -p tcp --sport 25555 -j DROP
    4.  
    jetzt kann jedoch niemand mehr auf die server verbinden darum müssen wir jede IP einzeln auf jeden Port freischalten:
    Code (Text):
    1.  
    2. iptables -I INPUT -p tcp -s {IP die Zugriff bekommen soll} --dport {PORT} -j ACCEPT
    3. iptables -A OUTPUT -p tcp -s {IP die Zugriff bekommen soll} --sport {PORT} -j ACCEPT
    4.  
    z.B
    Code (Text):
    1.  
    2. iptables -I INPUT -p tcp -s 127.0.0.1 --dport 25555 -j ACCEPT
    3. iptables -A OUTPUT -p tcp -s 127.0.0.1 --sport 25555 -j ACCEPT
    4.  
    (Dadurch wären die Server nur inerhalb eures vServers/Root Servers erreichbar.
    sollen diesen aber von anderen vServern/Root Servern erreichbar sein muss die 127.0.0.1 durch die jeweilige ip geändert werden.

    Nun muss unsere iptables Einstellung gespeichert werden:
    Linux Debian/Ubuntu
    Code (Text):
    1.  
    2. iptables-save > /etc/iptables/rules.v4
    3.  
    Linux RHEL/CentOS:
    Code (Text):
    1.  
    2. iptables-save > /etc/sysconfig/iptables
    3.  
    wenn die einstellungen geladen werden sollen:
    Linux Debian/Ubuntu
    Code (Text):
    1.  
    2. iptables-restore < /etc/iptables/rules.v4
    3.  
    Linux RHEL/CentOS:
    Code (Text):
    1.  
    2. iptables-restore < /etc/sysconfig/iptables
    3.  
    Hier noch weitere befehle die brauchbar sind:
    Code (Text):
    1.  
    2. ###DISABLE ALL
    3. iptables -P INPUT DROP && iptables -P OUTPUT DROP && iptables -P FORWARD DROP
    4.  
    5. ### DISALLOW ONE IP FOR PORT RANGE
    6. iptables -I INPUT -p tcp -s 2.2.2.2 --dport 40000:40020 -j DROP
    7.  
    8. ### TEST
    9. iptables -I INPUT -p udp -s 2.2.2.2 --dport 9987 -j DROP
    10.  
    11. ### ALLOW A PORT
    12. iptables -A INPUT -p tcp --dport 22 -j ACCEPT && iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
    13.  
    14. ### SAVE
    15. iptables-save > /etc/iptables.rules
    16.  
    17. ## Restore
    18. iptables-restore < /etc/iptables.rules
    19.  
    20. ### WEITERLEITEN
    21. echo "1" > /proc/sys/net/ipv4/ip_forward && iptables -t nat -A POSTROUTING -j MASQUERADE && iptables -t nat -A PREROUTING -p tcp --dport 1111 -j DNAT --to-destination 2.2.2.2:1111
    22.  
    23. ### IPTABLES-REMOVE
    24. iptables -F && iptables -X && iptables -t nat -F && iptables -t nat -X && iptables -t mangle -F && iptables -t mangle -X && iptables -P INPUT ACCEPT && iptables -P FORWARD ACCEPT && iptables -P OUTPUT ACCEPT
    25.  
    Quellen:
    https://www.thomas-krenn.com/de/wiki/Iptables_Firewall_Regeln_dauerhaft_speichern
    https://wiki.ubuntuusers.de/iptables2
    https://help.ubuntu.com/community/IptablesHowTo

    Mit Freundlichen Grüßen
    Kroseida
     
    #1
    jensIO, Verschraubt, UnityGaming und 2 anderen gefällt das.