
Wenn ich iptables verwende, um eingehenden Datenverkehr zu blockieren, gehe ich folgendermaßen vor:
- iptables -A INPUT -j REJECT
oder
- iptables -P INPUT DROP
Es läuft eine Zeitüberschreitung ab, es wird nichts gesagt und das Ziehen wird einfach beendet. (dauert 1 Minute).
Meine aktuelle Konfiguration:
*filter
:INPUT ACCEPT [29875:3958669]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [263459:37321297]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2022 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A FORWARD -o pterodactyl0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o pterodactyl0 -j DOCKER
-A FORWARD -i pterodactyl0 ! -o pterodactyl0 -j ACCEPT
-A FORWARD -i pterodactyl0 -o pterodactyl0 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i pterodactyl0 ! -o pterodactyl0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o pterodactyl0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
COMMIT
*nat
:PREROUTING ACCEPT [1352:194638]
:INPUT ACCEPT [891:120286]
:OUTPUT ACCEPT [1048:62993]
:POSTROUTING ACCEPT [1048:62993]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A POSTROUTING -s 172.18.0.0/16 ! -o pterodactyl0 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
-A DOCKER -i pterodactyl0 -j RETURN
COMMIT
Wenn ich die Richtlinie auf Akzeptieren belasse oder unerwünschten Datenverkehr nicht ablehne, arbeitet Docker erheblich schneller und es scheint keine Zeitüberschreitung zu geben:
[Pterodactyl Daemon]: Pulling Docker container image, this could take a few minutes to complete...
---this information doesn't show up when I have closed ports---
Pulling from pterodactyl/yolks
Status: Image is up to date for ghcr.io/pterodactyl/yolks:java_17
Digest: sha256:2dc464502b22a0c64edbc10a347d9f72b4581640be487b5eb750785d26ccad04
---this information doesn't show up when I have closed ports---
[Pterodactyl Daemon]: Finished pulling Docker container image
Mache ich also irgendetwas falsch oder muss etwas verbessert werden? (Ich bin neu hier. Früher habe ich Firewalld verwendet, was zwar gut funktioniert hat, aber für meine Zwecke nicht ausreichte.)
Antwort1
Ich bin dumm, es war einfach:
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Damit bereits bestehende Verbindungen zustande kommen.