Linux防火牆NAT之SIP 網路拓撲講解,natsip
環境:
防火牆 - Ubuntu Server 17.10.
SIP - Yate用戶端,Asterisk伺服器
網路拓撲:
1)防火牆配置IP,開啟轉寄:
ifconfig enp2s0 192.168.1.131 ifconfig enp3s0 192.168.100.1 echo 1 > /proc/sys/net/ipv4/ip_forward
2)載入nf_nat_sip模組建立expectations:
modprobe nf_nat_sip
3)配置FORWARD鏈,僅接收192.168.1.0/24網段的建立資料流和已建立或關聯的資料流:
iptables -t filter -P FORWARD DROP iptables -t filter -A FORWARD -s 192.168.1.0/24 -j ACCEPT iptables -t filter -A FORWARD -p udp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -t filter -A FORWARD -j LOG
4)使能conntrack的SIP helper:
echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper 或者: iptables -t raw -A PREROUTING -p udp -m udp --dport 5060 -j CT --helper sip
5) 配置SNAT:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 192.168.100.1
6)檢查conntrack建立情況:
root@localhost:~# conntrack -Ludp 17 28 src=192.168.1.104 dst=192.168.100.100 sport=20551 dport=15061 src=192.168.100.100 dst=192.168.100.1 sport=15061 dport=20551 mark=0 use=1udp 17 179 src=192.168.1.104 dst=192.168.100.100 sport=20550 dport=15060 src=192.168.100.100 dst=192.168.100.1 sport=15060 dport=20550 [ASSURED] mark=0 use=1udp 17 3596 src=192.168.1.104 dst=192.168.100.100 sport=65309 dport=5060 src=192.168.100.100 dst=192.168.100.1 sport=5060 dport=65309 [ASSURED] mark=0 helper=sip use=3root@localhost:~#
建立了一條dport等於5060的主session和一條RTP(dport等於20550)、一條RTCP的子session。
或者配置DNAT:
iptables -t nat -A PREROUTING -d 192.168.1.131 -i enp2s0 -j DNAT --to-destination 192.168.100.100
再次檢查conntrack建立情況:
root@localhost:~# conntrack -Ludp 17 179 src=192.168.1.104 dst=192.168.1.131 sport=29448 dport=16988 src=192.168.100.100 dst=192.168.1.104 sport=16988 dport=29448 [ASSURED] mark=0 use=1udp 17 3595 src=192.168.1.104 dst=192.168.1.131 sport=53966 dport=5060 src=192.168.100.100 dst=192.168.1.104 sport=5060 dport=53966 [ASSURED] mark=0 helper=sip use=3udp 17 27 src=192.168.1.104 dst=192.168.1.131 sport=29449 dport=16989 src=192.168.100.100 dst=192.168.1.104 sport=16989 dport=29449 mark=0 use=1root@localhost:~#
測試間隔必須清空conntrack -D,以免殘留connection對新串連造成影響。