eth1 直接端口 5060
Direct port 5060 for eth1
我有两个网络接口,eth0 是 PC 与软电话连接所必需的内部网络,eth1 link 连接到互联网。我在 CentOS 6.5 上使用 iptables 将 Freepbx (Asterisk) 的所有输出定向到 eth1,但我没有成功。
规则
iptables -A PREROUTING -i eth1 -t mangle -p tcp --dport 5060 -j MARK --set-mark 1
如果 public ip 在同一台服务器上,您需要使用 INPUT table 和 ACCEPT 目的地。
如果它在其他主机上,你已经使用了 DNAT。
看看 sip.conf。在 [general] 部分,有一个 bindaddress 或 udpbindaddress。将它设置为 0.0.0.0 以确保 asterisk 监听所有接口。您可以通过以下方式查看:
netstat -lnap | grep 5060
udp 0 0 0.0.0.0:5060 0.0.0.0:* 30822/asterisk
然后使用iptables限制访问不必要的接口,比如(注意顺序):
iptables -A INPUT -i eth1 -p udp --dport 5060 -j ACCEPT
iptables -A INPUT -p udp --dport 5060 -j DROP
iptables -A OUTPUT -o eth1 -p udp --sport 5060 -j ACCEPT
iptables -A OUTPUT -p udp --sport 5060 -j DROP
我有两个网络接口,eth0 是 PC 与软电话连接所必需的内部网络,eth1 link 连接到互联网。我在 CentOS 6.5 上使用 iptables 将 Freepbx (Asterisk) 的所有输出定向到 eth1,但我没有成功。
规则
iptables -A PREROUTING -i eth1 -t mangle -p tcp --dport 5060 -j MARK --set-mark 1
如果 public ip 在同一台服务器上,您需要使用 INPUT table 和 ACCEPT 目的地。
如果它在其他主机上,你已经使用了 DNAT。
看看 sip.conf。在 [general] 部分,有一个 bindaddress 或 udpbindaddress。将它设置为 0.0.0.0 以确保 asterisk 监听所有接口。您可以通过以下方式查看:
netstat -lnap | grep 5060
udp 0 0 0.0.0.0:5060 0.0.0.0:* 30822/asterisk
然后使用iptables限制访问不必要的接口,比如(注意顺序):
iptables -A INPUT -i eth1 -p udp --dport 5060 -j ACCEPT
iptables -A INPUT -p udp --dport 5060 -j DROP
iptables -A OUTPUT -o eth1 -p udp --sport 5060 -j ACCEPT
iptables -A OUTPUT -p udp --sport 5060 -j DROP