BREAKING CHANGE: Die alte Shell-Version muss vor der Installation der Go-Version deinstalliert werden.
1.9 KiB
1.9 KiB
Docker-Installationen
AdGuard Shield liest weiterhin das Querylog von AdGuard Home. Der Unterschied zwischen klassisch und Docker betrifft nur die Stelle, an der die Firewall eine gesperrte Client-IP abfangen muss.
Modus wählen
| Installation | Einstellung |
|---|---|
| AdGuard Home direkt auf dem Host | FIREWALL_MODE="host" |
Docker mit network_mode: host |
FIREWALL_MODE="docker-host" |
| Docker Bridge mit veröffentlichten Ports | FIREWALL_MODE="docker-bridge" |
| gemischtes Setup oder Migration | FIREWALL_MODE="hybrid" |
docker-host verhält sich technisch wie host: Die DNS-Pakete landen in der Host-INPUT-Chain.
Bei Docker Bridge mit ports: oder -p landen veröffentlichte Ports nach Dockers NAT-Regeln im Forwarding-Pfad. Deshalb nutzt AdGuard Shield dort DOCKER-USER. Diese Chain ist genau für eigene Admin-Regeln vor Dockers Container-Regeln vorgesehen.
Beispiele
Klassisch oder Docker Host Network:
FIREWALL_MODE="host"
BLOCKED_PORTS="53 443 853"
Docker Bridge mit Port-Publishing:
FIREWALL_MODE="docker-bridge"
BLOCKED_PORTS="53 443 853"
Unklarer Übergangszustand:
FIREWALL_MODE="hybrid"
Wichtige Details
docker-bridgebenötigt eine vorhandene IPv4-ChainDOCKER-USER. Wenn Docker nicht läuft oder iptables für Docker deaktiviert ist, meldetfirewall-createeinen Fehler.- IPv6 über Docker wird nur eingehängt, wenn Docker auch eine
ip6tables-ChainDOCKER-USERangelegt hat. Fehlt sie, wird IPv4 trotzdem geschützt. - In
DOCKER-USERwird nach Dockers DNAT gematcht. Wenn du ungewöhnliche Port-Mappings nutzt, solltenBLOCKED_PORTSdie Container-Zielports enthalten. hybridist praktisch für Migrationen, kann aber mehr Verkehr treffen, weil sowohl Host-Ports als auch Docker-Forwarding geprüft werden.
Nach einer Änderung:
sudo systemctl restart adguard-shield
sudo /opt/adguard-shield/adguard-shield firewall-status