CentOS7 firewalld防火墙规则

在CentOS7里有几种防火墙共存:firewalld、iptables、ebtables,默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables等。

firewalld跟iptables比起来至少有两大好处:

1、firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效;
2、firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。

firewalld跟iptables比起来,不好的地方是每个服务都需要去设置才能放行,因为默认是拒绝。而iptables里默认是每个服务是允许,需要拒绝的才去限制。

1.firewalld对指定IP开放指定端口的配置

1.打开firewalld防火墙

systemctl start firewalld.service

2.添加防火墙规则(对指定ip开放指定端口)

(1) memcached 端口设置。允许主机21.20.3.33访问11211端口

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="21.20.3.33" port protocol="tcp" port="11211" accept"

(2) redis端口设置。允许主机21.20.3.33访问6379端口

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="21.20.3.33" port protocol="tcp" port="6379" accept"

3.添加防火墙策略

在firewalld服务中配置一条富规则,使其拒绝192.168.10.0/24网段的所有用户访问本机的ssh服务(22端口):

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject"
//显示
success

firewall-cmd --reload
//显示
success

4.更新防火墙规则

firewall-cmd --reload

5.查看配置结果,验证配置

firewall-cmd --list-all

6.删除规则

firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="21.20.3.33" port protocol="tcp" port="3306" accept"

firewall-cmd --list-all

 常用查看信息命令:

查看版本:$ firewall-cmd --version
查看帮助:$ firewall-cmd --help

查看设置:
显示状态:$ firewall-cmd --state
查看区域信息: $ firewall-cmd --get-active-zones
查看指定接口所属区域:$ firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:# firewall-cmd --panic-on
取消拒绝状态:# firewall-cmd --panic-off
查看是否拒绝:$ firewall-cmd --query-panic

 参数解析:

.参数解释
–add-service #添加的服务
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

 

posted @ 2019-11-15 18:54  梦徒  阅读(6892)  评论(0编辑  收藏  举报