Networking
星號伺服器的網路問題
我在停機後更換了一個 IVR 機器來接聽電話。它在 ubunutu 10.04 上執行星號 1.4.23 我決定將伺服器放在 iptables 後面,因為我的伺服器受到暴力攻擊。eth0 是我的私人卡,eth1 是公共卡。
這是我的規則:
# only allow PING on PRIVATE NET iptables -A INPUT -p icmp -i eth0 -j ACCEPT # allow all the lo traffic on loopback. iptables -A INPUT -i lo -j ACCEPT # START OPEN PORTS #================= #SSH (22) iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT #iptables -A INPUT -p tcp -i eth1 --dport 22 -j ACCEPT #SAMBA: netbios (139) , microsoft-ds (445) -- only on internal iptables -A INPUT -p tcp -i eth0 --dport 139 -j ACCEPT iptables -A INPUT -p tcp -i eth0 --dport 445 -j ACCEPT #ASTERISK # SIP (UDP 5060) #Port 5060 must be open for SIP. #Ports 1024 - 64000 should be open for Media. #iptables -A INPUT -p tcp -m tcp -i eth1 --dport 5060 -j ACCEPT #iptables -A INPUT -p udp -m udp -i eth1 --dport 1024:64000 -j ACCEPT iptables -A INPUT -p udp -m udp -i eth1 --dport 10000:20000 -j ACCEPT #iptables -A INPUT -p udp -m udp --dport 5060 -j ACCEPT iptables -A INPUT -p udp -m udp -i eth1 -s xxx.xx.xx.xx --dport 5060 -j ACCEPT iptables -A INPUT -p udp -m udp -i eth1 -s xx.xx.xx.xxx --dport 5060 -j ACCEPT iptables -A INPUT -p tcp -m tcp -i eth1 -s xxx.xx.xx.xx --dport 5060 -j ACCEPT iptables -A INPUT -p tcp -m tcp -i eth1 -s xx.xx.xx.xxx --dport 5060 -j ACCEPT #END ASTERISK # END OPEN PORTS #Deny everything else iptables -A INPUT -p all -i eth1 -j DROP
xxx.xx.xx.xx 和 xx.xx.xx.xxx 是我的 SIP 提供商的 IP,我 ping 了 SIP 域
我們的客戶在撥打我們的號碼時遇到忙音,我檢查了日誌並看到了各種警告。以下是我在日誌中註意到的一些問題:
[Jan 24 05:02:00] WARNING[939] chan_sip.c: Maximum retries exceeded on transmission 245102dwdw45f4f51f5df5s3@xx.xx.xx.xxx for seqno 102 (Critical Response) -- See doc/sip-retransmit.txt. [Jan 24 05:02:00] WARNING[939] chan_sip.c: Hanging up call 245102dwdw45f4f51f5df5s3@xx.xx.xx.xxx - no reply to our critical packet (see doc/sip-retransmit.txt). [Jan 24 06:29:37] WARNING[939] chan_sip.c: Got 200 OK on REGISTER, but there isn't a registry entry for 'mpdhbf867' (we probably already got the OK) [Jan 24 06:34:07] WARNING[939] chan_sip.c: Got 200 OK on REGISTER, but there isn't a registry entry for 'mpdhbf867' (we probably already got the OK) [Jan 24 17:00:32] NOTICE[939] chan_sip.c: -- Registration for 'mpdhbf867@provider-domain.com' timed out, trying again (Attempt #1)
當我關閉我的 iptables 時,一切都恢復正常,並且電話永遠不會掉線或響鈴。這是一個艱難的權衡,因為我不想讓我的伺服器對公共網際網路開放。我願意改變
您缺少根據現有流量接受流量的規則(使 iptables 有狀態的規則)。這應該是您的第一條規則:
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
當您使用它時,您還應該檢查以確保您擁有正確的 IP 地址來處理您期望的傳入 SIP 流量。如果上游供應商改變了它們,你就有麻煩了。