La segmentazione non consiste nel creare molte VLAN: consiste nel decidere chi può parlare con chi, su quali porte e perché. In questa guida costruiamo una topologia concreta con OpenWrt e firewall4/nftables.
Topologia
Ufficio 192.168.1.0/24
DMZ 172.16.0.0/24
SIP 10.0.10.0/24
Gestione 10.0.20.0/24
CCTV 10.0.30.0/24 # esempio
La policy di base è INPUT e FORWARD in DROP per le reti normali; Gestione è la zona privilegiata da cui amministrare le altre.
Fotografare la configurazione
uci export network
uci export firewall
fw4 print
nft list ruleset
fw4 print mostra ciò che OpenWrt genererà; nft list ruleset mostra ciò che è realmente caricato nel kernel.
Creare le zone
uci add firewall zone
uci set firewall.@zone[-1].name='Ufficio'
uci add_list firewall.@zone[-1].network='Ufficio'
uci set firewall.@zone[-1].input='DROP'
uci set firewall.@zone[-1].output='ACCEPT'
uci set firewall.@zone[-1].forward='DROP'
uci add firewall zone
uci set firewall.@zone[-1].name='Gestione'
uci add_list firewall.@zone[-1].network='Gestione'
uci set firewall.@zone[-1].input='ACCEPT'
uci set firewall.@zone[-1].output='ACCEPT'
uci set firewall.@zone[-1].forward='ACCEPT'
uci commit firewall
fw4 check
/etc/init.d/firewall restart
Regola puntuale invece di forwarding globale
config rule
option name 'Ufficio-to-PBX-SIP-TLS'
option src 'Ufficio'
option dest 'Sip'
option dest_ip '10.0.10.100'
option proto 'tcp'
option dest_port '5061'
option target 'ACCEPT'
Non impostiamo src_port: la porta sorgente del client è normalmente effimera.
Servizi specifici in DMZ
config rule
option name 'SIP-to-DNS'
option src 'Sip'
option dest 'Dmz'
option dest_ip '172.16.0.100'
option proto 'tcp udp'
option dest_port '53'
option target 'ACCEPT'
config rule
option name 'SIP-to-Web'
option src 'Sip'
option dest 'Dmz'
option dest_ip '172.16.0.200'
option proto 'tcp'
option dest_port '80 443'
option target 'ACCEPT'
Telecamere
Le telecamere devono raggiungere il server di videosorveglianza e, se serve, DNS/NTP. Non hanno motivo di aprire sessioni verso PC e server della LAN.
Caso reale: telefono SIP e 504
Un telefono spostato dalla rete SIP alla rete Ufficio attraversava correttamente OpenWrt. Il REGISTER arrivava al PBX, ma il servizio rispondeva con errore. La causa era la policy INPUT del PBX, che non autorizzava la nuova sorgente.
# Sul router
tcpdump -ni any host 10.0.10.100 and port 5060
# Sul PBX
tcpdump -ni any 'port 5060 or port 5061'
uci show firewall | grep -E 'Ufficio|Sip|5060|5061'
fw4 print | grep -n -E '5060|5061'
Debug sistematico
uci export network
uci export firewall
fw4 check
fw4 print
nft list ruleset
tcpdump -ni any host 192.168.1.50
tcpdump -ni any host 10.0.10.100
Per ogni apertura dovrebbe esistere una frase comprensibile: “Ufficio può raggiungere il PBX su 5061 perché…”. Se non riusciamo più a spiegare la regola, è il momento di rivederla.
