firewalld 只允许国内ip访问

997 阅读1分钟

firewalld 只允许国内ip访问

firewall-cmd --zone=public --list-all 查看public区域大致情况

[root@desh install]# firewall-cmd --zone=public --list-all
public (active)
  target: default #firewalld 默认动作,接受 icmp 包并拒绝其它的一切
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: ssh dhcpv6-client
  ports: 80/tcp 12345/tcp 40002-40010/udp
  protocols: 
  masquerade: yes
  forward-ports: port=12345:proto=tcp:toport=80:toaddr=192.168.207.72
  source-ports: 
  icmp-blocks: 
  rich rules: 
        rule family="ipv4" source ipset="china" port port="40001" protocol="tcp" accept
        rule family="ipv4" source ipset="china" port port="40001" protocol="udp" accept

sip端口拒绝国外IP访问

1、获取china ip源

wget --no-check-certificate -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /etc/china.txt

2、firewalld 加载 ipset

firewall-cmd --permanent --new-ipset=china --type=hash:net
firewall-cmd --permanent --ipset=china --add-entries-from-file=/etc/china.txt
firewall-cmd --permanent --ipset=china --add-entry='192.168.0.0/16'
firewall-cmd --permanent --ipset=china --add-entry='172.16.0.0/12'
firewall-cmd --permanent --ipset=china --add-entry='10.0.0.0/8'
firewall-cmd --permanent --ipset=china --add-entry='127.0.0.0/24'

3、放行udp和tcp的sip端口(40001)

firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source ipset="china"  port port=40001 protocol=tcp accept'

firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source ipset="china"  port port=40001 protocol=udp accept'

4、放行rtp范围udp端口(目前暂时定在40002-40010)

firewall-cmd --zone=public --add-port=40002-40010/udp --permanent

5、设置生效

firewall-cmd --reload