防火墙策略可以基于流量的源目地址、端口号、协议、应用等信息来制定,然后防火墙使用预先定义的策略规则监控出入的流量,若流量与某一条策略规则相匹配,则执行相应的处理,反之则丢弃
iptables和firewalld只是用来定义防火墙策略的防火墙工具,只是一种服务 iptables服务会把配置好的防火墙交由内核层面的netfilter网络过滤器来处理 firewalld服务则是把配置好的防火墙策略交由内核层面的nftables包过滤框架来处理
防火墙策略规则的设置有两种 1.“通”(放行) 2.“堵”(阻止)
规则链依据数据包处理位置的不同进行分类 1.在进行路由选择前处理数据包(Prerouting) 2.处理流入的数据包(input) 3.处理流出的数据包(output) 4.处理转发的数据包(Forward) 5.在进行路由选择后处理数据包(Postrouting)
一般来讲,从内网向外网发送的流量是可控且良性的,因此使用最多的就是INPUT规则链
Accept Reject:会在拒绝流量后再回复一条“你的信息已经收到,但是被扔掉了” Log Drop:直接丢弃而且不响应
iptables常用参数
参数 | 作用 |
---|
-P | 设置默认策略 | -F | 清空规则链 | -L | 查看规则链 | -A | 在规则链末尾加入新规则 | -I num | 在规则链头部加入新规则 | -D num | 删除某一条规则 | -s | 匹配来源地址 IP/MASK,加叹号"!" 表示除这个IP外 | -d | 匹配目标地址 | -i 网卡名称 | 匹配从这块网卡流入的数据 | -o 网卡名称 | 匹配从这块网卡流出的数据 | -p | 匹配协议,如TCP、UDP、ICMP | –dport num | 匹配目标端口号 | –sport num | 匹配来源端口号 |
查看已有防火墙规则链
保存配置: service iptables save
firewalld
区域 | 默认策略规则 |
---|
trusted | 允许所有的数据包 | home | 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量 | internal | 等同于home区域 | work | 拒绝流入的流量,除非与流出的流利数相关,而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量 | public | 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh、dhcpv6-client服务相关,则允许流量 | external | 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh服务相关,则允许流量 | dmz | 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh服务相关,则允许流量 | block | 拒绝流入的流量,除非与流出的流量相关 | drop | 拒绝流入的流量,除非与流出的流量相关 |
firewalld配置的防火墙策略默认是运行时(runtime),又称为当前生效模式 若想让配置一直存在,则需要使用永久模式(permanent) 方法:在用 firewall-cmd命令正常设置防火墙策略时添加 --permanent 参数,但是只有在系统重启之后才能自动生效。 若想立即生效,则需手动执行:firewall-cmd-reload
查看firewalld服务当前所使用的区域 firewall-cmd --get-default-zone
把在firewalld服务中访问8080和8081端口的流量策略设置为允许,但仅限当前生效 firewall-cmd --zone=public --add-port=8080-8081/tcp success
firewall-cmd --zone=public --list-ports 8080-8081/tcp
firewall中的富规则变式更细致、更详细的防火墙策略配置,可以针对系统服务、端口号、源地址和目标地址等信息进行更有针对性的策略配置 优先级在所有的防火墙策略中也是最高的
|