centos7的防火墙分两种,一种是firewall,另一种是iptables,这两种的配置方式不同。iptables可以配置的规则过于精细,功能十分强大,这里不细说。
1.firewall
1.1基本操作
启动防火墙 systemctl start firewalld
关闭防火墙 systemctl stop firewalld
查看防火墙运行状态 systemctl status firewalld
查看防火墙当前规则 firewall-cmd --list-all
重载防护墙 firewall-cmd –reload
1.2期望的防火墙效果
-
对所有IP开放所有端口
只需要关闭防火墙即可。
-
对所有IP开放指定端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
把上面命令的80替换成你想要开放的端口即可。
参数 | 解释 |
---|---|
--zone=public | 指定该规则的作用域为public,除非配置多个自定义zone,否则此项不需要更改。 |
--add-port=80/tcp | 表示添加一个端口,该端口仅限tcp的连接方式,udp的方式则写80/udp。 |
--permanent | 将此配置写入配置文件,重启后不失效,否则防火墙重启后该规则会失效。 |
-
对指定IP开放所有端口
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.163.130" accept'
参数 | 解释 |
---|---|
--add-rich-rule | 添加自定义规则,如果要移除一个规则要替换为--remove-rich-rule |
family | 允许访问的IP模式 |
source address | 来源IP |
accept | 允许访问 |
-
对指定IP开放指定端口
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.163.130" port protocol="tcp" port="9090" accept'
-
对指定IP段开放指定端口
只需要在上面命令中的IP部分后面添加子网掩码的位数,同时将最后IP最后一部分改成0即可。如:source address="192.168.163.0/24"
子网掩码中
255.255.255.0对应24
255.255.0.0对应16
具体的转换机制可以直接百度搜子网掩码转换器
-
开放指定范围的端口
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.163.130" port protocol="tcp" port="9090-10000" accept'
-
移除规则
--add-port
添加的规则使用--remove-port
来移除
--add-rich-rule
添加的规则使用--remove-rich-rule
来移除
如:
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --permanent --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.163.130" port protocol="tcp" port="9090" accept'