rhel7中用firewalld替代了iptables,但iptables依然可以用
规则表是容纳规则链的,如果规则表是允许状态,那规则链就设置被禁止的规则,如果规则表是禁止状态,那规则链就设置允许的规则,个人感觉像是黑名单白名单
iptables中常见的控制类型有:ACCEPT允许通过;LOG:记录日志,然后传给下一条规则继续匹配;REJECT:拒绝通过,必要时给提示;DROP:直接丢弃,不给任何回应。
-
规则链
-
规则表
规则表的先后顺序:raw--mangle--nat--filter
-
注意事项
没有指定规则表就默认fifter表
不指定规则链则指表内所有的规则链
在规则链中匹配规则时会依次检查,匹配即停止,若没柳丁项则按链的默认状态处理
-
firewalld服务
拥有运行时配置和永久配置,使用图形化工具firewall-config或者文本工具 firewall-cmd。
-
firewalld区域配置
就是防火墙的安全级别了,默认是public,常用的有
trusted 允许所有的数据包
home 拒绝注入的数据包除了与输出相关或是ssh,mdns,ipp-client等
internal 同上
public 拒绝流入的数据包除了与输出相关或是ssh,dncpv6-client等
dmz 拒绝流入的数据包除了与输出相关或是ssh服务
drop 拒绝注入的数据包,除了与输出流量相关
格式: firewall-cmd --set-default-zone=<规则名>
-
关于配置防火墙的一些命令参数
格式 firewall-cmd
-
firewalld服务有两种规则纪录,临时有效(Runtime)和永久有效(Permanent),如果你想永久有效的话,就需要执行
firewall-cmd --reload
例子:
firewall-cmd --set-default-zone public #设置默认规则为public
firewall-cmd --reload #永久保存
[root@localhost ~]# firewall-cmd --get-default-zone #查看当前默认规则
public[root@localhost ~]# firewall-cmd --zone=public --query-service=ssh
yes
[root@localhost ~]# firewall-cmd --zone=public --query-service=http
no
#查看public规则中ssh与http是否被允许[root@localhost ~]# firewall-cmd --get-zone-of-interface=eno16777736
public
#查看网卡eno16777736的区域[root@localhost ~]# firewall-cmd --get-zone-of-interface=eno16777736
public
#开启/断开所有网络连接[root@localhost ~]# firewall-cmd --panic-on
[root@localhost ~]# firewall-cmd --panic-off
图形界面模式中开启防火墙配置
[root@localhost ~]# firewall-config
-
服务访问控制列表
Tcp-wrappers,基于IP层的流量访问控制。可以对控制列表进行添加允许/拒绝名单(IP,域名,指定网段等),控制列表修改保存后会立即生效
允许名单:vi /etc/hosts.allow
拒绝名单:vi /etc/hosts.deny