Networking

星號伺服器的網路問題

  • January 25, 2013

我在停機後更換了一個 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 流量。如果上游供應商改變了它們,你就有麻煩了。

引用自:https://serverfault.com/questions/472222