Puncte:0

Reguli de firewall persistente pentru Docker bazate pe DPORT (înainte să aibă loc NAT)

drapel ma

Luptă cu regulile de firewall cu containerele Docker.

Configurarea este după cum urmează.

Instalare subțire a Debian 11 care rulează Docker (autonom).
Instalat pe Docker este Portainer și alte 4 containere web.
Toate atașate la o singură rețea Bridged numită dkr-lan.

Ignorând containerul portainer, celelalte containere au următoarele porturi mapate

  • web01 8081:80
  • web02 8082:80
  • web03 8083:80
  • web04 8084:80

web01 și web03 pot fi accesate public de oriunde pe porturile 8081 și 8083.
Cu toate acestea, web02 poate fi accesat doar de două IP-uri publice 1.2.3.4 și 1.2.3.5.
De asemenea, web04 poate fi accesat doar de un IP public 1.2.3.4.

Folosesc iptables și am încercat inițial să stabilesc reguli în lanțul DOCKER-USER, totuși acest lucru pare să filtreze pachetele numai după ce a avut loc NAT și se pare că toate containerele după NAT folosesc portul 80. Nu am putut afla cum ACCEPT web02 și web04 pentru acele IP-uri și DROP restul.

După câteva căutări am început să cred că cea mai bună opțiune era filtrarea în lanțul PREROUTING.

cu reguli ca mai jos

# Pentru web01
iptables -t mangle -A PREROUTING -p TCP -s 0/0 --dport 8081 -j MARK --set-mark 1
# Pentru web02
iptables -t mangle -A PREROUTING -p TCP -s 1.2.3.4 --dport 8082 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -p TCP -s 1.2.3.5 --dport 8082 -j MARK --set-mark 1
# Pentru web03
iptables -t mangle -A PREROUTING -p TCP -s 0/0 --dport 8083 -j MARK --set-mark 1
# Pentru web04
iptables -t mangle -A PREROUTING -p TCP -s 1.2.3.4 --dport 8084 -j MARK --set-mark 1

# Permiteți tot traficul marcat în PREROUTING
# Blocați restul traficului
iptables -A DOCKER-USER -m mark --mark 1 -j ACCEPT
iptables -A DOCKER-USER -p TCP --dport 8082 -j DROP
iptables -A DOCKER-USER -p TCP --dport 8084 -j DROP

Văd că traficul de intrare atinge regulile PREROUTING, deoarece contoarele cresc și pare ok.

Cu toate acestea, blocurile nu funcționează. Acest lucru se datorează faptului că s-au făcut în lanțul DOCKER-USER și în acel stadiu sunt după NAT.

Deci, cum pot configura reguli care să permită IP-uri bazate pe DPORT și apoi să blochez resetarea, de asemenea, pe baza DPORT?

Bănuiți că acest lucru trebuie făcut în lanțul PREROUTING?

Și, de asemenea, trebuie să fie perseverent. Ca și în acest moment, de fiecare dată când mă opresc și pornesc un container, pare să încalce regulile firewall și totul este din nou deschis pentru TOȚI. Acest lucru se face în lanțul DOCKER. Deci, cred că trebuie să-mi pun regulile în PREROUTING sau DOCKER-USER.

Ce îmi lipsește?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.