• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!
  • Dies ist ein moderiertes Forum. Dein Beitrag ist für dich und andere erst sichtbar, wenn er von einem Teammitglied moderiert wurde! Wird dein Beitrag abgelehnt erhältst du eine Meldung. Bitte erstelle so lange keine neuen Beiträge! Die Freischaltung wird auch nicht durch Nachfragen bei einem Teammitglied beschleunigt.

[Linux] Firewall einrichten

Kroseida

Schafhirte
Registriert
28 September 2015
Beiträge
110
Alter
28
Diamanten
307
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:
apt-get install iptables-persistent

Linux RHEL/CentOS 7
Code:
yum install -y iptables-services

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:
iptables -A INPUT -p tcp --dport {PORT} -j ACCEPT
iptables -A OUTPUT -p tcp --sport {PORT} -j ACCEPT

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:
iptables -A INPUT -p tcp --dport {PORT} -j DROP
iptables -A OUTPUT -p tcp --sport {PORT} -j DROP
z.B
Code:
iptables -A INPUT -p tcp --dport 25555 -j DROP
iptables -A OUTPUT -p tcp --sport 25555 -j DROP

jetzt kann jedoch niemand mehr auf die server verbinden darum müssen wir jede IP einzeln auf jeden Port freischalten:
Code:
iptables -I INPUT -p tcp -s {IP die Zugriff bekommen soll} --dport {PORT} -j ACCEPT
iptables -A OUTPUT -p tcp -s {IP die Zugriff bekommen soll} --sport {PORT} -j ACCEPT
z.B
Code:
iptables -I INPUT -p tcp -s 127.0.0.1 --dport 25555 -j ACCEPT
iptables -A OUTPUT -p tcp -s 127.0.0.1 --sport 25555 -j ACCEPT
(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:
iptables-save > /etc/iptables/rules.v4

Linux RHEL/CentOS:
Code:
iptables-save > /etc/sysconfig/iptables

wenn die einstellungen geladen werden sollen:
Linux Debian/Ubuntu
Code:
iptables-restore < /etc/iptables/rules.v4

Linux RHEL/CentOS:
Code:
iptables-restore < /etc/sysconfig/iptables

Hier noch weitere befehle die brauchbar sind:
Code:
###DISABLE ALL
iptables -P INPUT DROP && iptables -P OUTPUT DROP && iptables -P FORWARD DROP

### DISALLOW ONE IP FOR PORT RANGE
iptables -I INPUT -p tcp -s 2.2.2.2 --dport 40000:40020 -j DROP

### TEST
iptables -I INPUT -p udp -s 2.2.2.2 --dport 9987 -j DROP

### ALLOW A PORT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT && iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

### SAVE
iptables-save > /etc/iptables.rules

## Restore
iptables-restore < /etc/iptables.rules

### WEITERLEITEN
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

### IPTABLES-REMOVE
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

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
 
Zuletzt bearbeitet:
Oben