admin管理员组

文章数量:1642342

Firewalld是Linux下的新一代系统防火墙管理工具,相比于旧有的iptables工具,提供了更多的管理功能,像基于zones管理访问授权,动态加载规则等。不过很多高级功能我们日常并不会有机会使用到。所以,在这里我们并不讨论firewalld原理上的东西。工作中经常遇到的情况是配置基于端口、服务的各种访问授权与放行规则。本文提供一些这些方面的常用配置方法,以供参考。

常规配置方法

端口放行限制

1)放开UDP 161/162端口

firewall-cmd --permanent --zone=public --add-port=161/udp
firewall-cmd --permanent --zone=public --add-port=162/udp
firewall-cmd --reload //更新防火墙规则

2)禁用UDP 161/162端口

firewall-cmd --permanent --zone=public --remove-port=161/udp
firewall-cmd --permanent --zone=public --remove-port=162/udp
firewall-cmd --reload

3)放行连续的端口(1000-2000)

firewall-cmd --permanent --zone=public --add-port=1000-2000/tcp
firewall-cmd --reload

4)放行不连续的端口(9000,9001)

firewall-cmd --permanent --zone=public --add-port=9000/tcp --add-port=9001/tcp
firewall-cmd --reload

服务放行限制

1)放行ssh服务

firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --reload

2)禁用ssh服务

firewall-cmd --permanent --zone=public --remove-service=ssh
firewall-cmd --reload

带源地址的端口放行限制

1)放行IP地址及端口

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.110/32" port protocol="tcp" port="12345" accept"
firewall-cmd --reload

2)禁用放行IP地址及端口

firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.110/32" port port="12345" protocol="tcp" accept"
firewall-cmd --reload

3)放行IP地址及连续的端口

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.110/32" port port="8080-8081" protocol="tcp" accept"
firewall-cmd --reload

4)禁用放行IP地址及连续的端口

firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.110/32" port port="8080-8081" protocol="tcp" accept"
firewall-cmd --reload

查看开启的端口和服务

1)查看当前放行的服务

firewall-cmd --permanent --zone=public --list-services

2)查看当前放行的端口

firewall-cmd --permanent --zone=public --list-ports

3)查看服务是否生效(例:添加的端口为8080)

firewall-cmd --zone=public --query-port=8080/tcp

4)查看所有富规则(rich rules)

firewall-cmd --list-rich-rules

5)查看默认域下的所有规则

firewall-cmd --list-all

6)从配置文件中加载配置

firewall-cmd --reload

ipset集合配置方法

ipset本身是Linux系统中配置防火墙规则的一个工具,擅长于批量管理需要进行访问控制的IP地址,且相对于常规配置方法,ipset不会明显降低过滤效率。
使用ipset方法配置规则时需要安装ipset工具包。

yum -y install ipset 

获取指定ipset信息

firewall-cmd --get-ipsets
firewall-cmd --info-ipset=[ipset_name]

新增ipset

firewall-cmd --permanent --new-ipset=[ipset_name] --type=[type] --option
例如:

firewall-cmd --permanent --new-ipset=ssh_22 --type=hash:net
firewall-cmd --reload

将ipset应用到firewalld域策略中

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

向ipset集合中新增/删除需要放行的IP地址记录

增加:

firewall-cmd --permanent --ipset=ssh_22 --add-entry="192.168.1.110"
firewall-cmd --reload

删除:

firewall-cmd --permanent --ipset=ssh_22 --remove-entry="192.168.1.110"
firewall-cmd --reload

查看ipset集合中的地址

firewall-cmd --permanent --ipset=ssh_22 --get-entries

删除ipset

删除firewalld中的域放行策略

firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source ipset="ssh_22" port protocol="tcp" port="22" accept"
firewall-cmd --reload

清除ipset集合

firewall-cmd --permanent --delete-ipset=ssh_22
firewall-cmd --reload

本文标签: 防火墙常用方法系统CENTOS