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 #永久生效,没有此参数重启后失效