Încerc să implementez un firewall destul de simplu în Fedora, unde internetul public poate accesa SSH, HTTP, HTTPS și Cockpit, dar nimic altceva. Între timp, serverele rulează microservicii prin Docker care pot vorbi între ele pe porturile 8000-8999.
Am configurat acest lucru pe o nouă instalare Fedora Server cu următoarele comenzi:
firewall-cmd --zone=public --add-service=cockpit
firewall-cmd --zone=public --add-service=http
firewall-cmd --zone=public --add-service=https
firewall-cmd --zone=internal --add-source=192.168.1.65
firewall-cmd --zone=internal --add-source=192.168.1.66
firewall-cmd --zone=internal --add-port=8000-8999/tcp
firewall-cmd --runtime-to-permanent
Când îmi verific configurația cu --list-toate
, totul pare corect:
> firewall-cmd --list-all --zone=intern
intern (activ)
target: implicit
icmp-block-inversion: nu
interfete:
surse: 192.168.1.65 192.168.1.66
servicii: dhcpv6-client ssh
porturi: 8000-8999/tcp
protocoale:
înainte: nu
mascarada: nu
porturi înainte:
porturi sursă:
icmp-blocks:
reguli bogate:
> firewall-cmd --list-all --zone=public
public (activ)
target: implicit
icmp-block-inversion: nu
interfețe: enp2s0
surse:
servicii: cockpit dhcpv6-client http https ssh
porturi:
protocoale:
înainte: nu
mascarada: nu
porturi înainte:
porturi sursă:
icmp-blocks:
reguli bogate:
Cu toate acestea, când testez asta, sunt capabil să lovesc http://192.168.1.65:8080. Pot să-l lovesc de la o mașină din aceeași rețea internă (192.168.128.128), precum și o solicitare publică de la o mașină externă. Din moment ce niciunul nu a fost listat în intern
lui surse
, am presupus că firewalld nu va permite cererilor să treacă.
Am un auto-configurat docher
zona cu docker0
interfață, dar eliminarea acesteia nu pare să-mi schimbe capacitatea de a lovi portul intern.
De ce pot solicita cu succes :8080 din surse care nu sunt listate pe intern
?