使用Iptables与firewalld防火墙

一、防火墙工具

Iptables、firewall-cmd、firewall-config

作用:基于流量的源目地址、端口号、协议、应用等信息来定制,然后防火墙使用预先定制的策略规则监控出入的流量,若流量与某一条策略规则相匹配,则执行相应的处理,反之则丢弃。

防火墙的执行顺序:自上而下去执行,匹配到就结束;若全部都没有匹配到,则执行默认策略去执行。

防火墙设置规则:默认为放行策略,规则里面添加阻止策略

                          默认为阻止策略,规则里面添加放行策略

INPUT链和OUTPUT链

   日常运维中常用是INPUT链

防火墙的四个动作:1.ACCEPT(允许流量通过)

                             2.REJECT(拒绝流量通过,又称作反馈式响应):给对方响应流量被拒绝的反馈

                             3.DROP(拒绝流量通过,又称作丢弃、丢包):给对方无任何反馈信息,无法判断终端的当前状态

                             4.LOG(记录日志信息)

特别提醒:

    红帽认证考试中,配置防火墙规则,必须用REJECT动作来配置防火墙规则,如若使用DROP来配置,自动判分脚本不给分值

LinuxProbe第十一天听课笔记_重启

举例:INPUT规则配置默认策略为拒绝 iptables -P INPUT

举例:向INPUT链中添加允许ICMP流量进入的规则:iptables -I INPUT -p icmp -j ACCEPT


举例:将INPUT规则链设置为只允许指定网段的主机访问本机的22端口,拒绝来自其他所有主机的流量。

要对某台主机进行匹配,可直接写出它的IP地址;如需对网段进行匹配,则需要写为子网掩码的形式(比如192.168.10.0/24)。

[root@linuxprobe ~]# iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT
[root@linuxprobe ~]# iptables -A INPUT -p tcp --dport 22 -j REJECT

举例:向INPUT规则链中添加拒绝所有主机访问本机1000~1024端口的策略规则。

前面在添加防火墙策略时,使用的是-I参数,它默认会把规则添加到最上面的位置,因此优先级是最高的。如果工作中需要添加一条最后“兜底”的规则,那就用-A参数吧。这两个参数的效果差别还是很大的:

[root@linuxprobe ~]# iptables -A INPUT -p tcp --dport 1000:1024 -j REJECT
[root@linuxprobe ~]# iptables -A INPUT -p udp --dport 1000:1024 -j REJECT
[root@linuxprobe ~]# iptables -L

iptables端口范围:可用冒号进行间隔

RHEL8:保存iptable命令:iptables-save

RHEL6、7:保存iptable命令:service iptables save

考试时候,配置firewall防火墙的三步骤:1.查询相应的服务是否开启

                                                            2.添加相应的服用 :通过利用命令:grep 关键字 /etc/service查找到相应的服务名称及端口号

                                                           3.重启防火墙服务

LinuxProbe第十一天听课笔记_端口号_02

LinuxProbe第十一天听课笔记_端口转发_03

Runtime:当前立即生效,重启后失效

Permanent:当前不生效,重启后生效

firewall防火墙的端口范围使用“-”作为间隔符

举例:富规则的设置LinuxProbe第十一天听课笔记_端口转发_04

举例:把原本访问本机888端口的流量转发到22端口,要且求当前和长期均有效

SSH远程控制协议是基于TCP/22端口传输控制指令的,如果想让用户通过其他端口号也能访问ssh服务,就可以试试端口转发技术了。通过这项技术,新的端口号在收到用户请求后会自动转发到原本服务的端口上,使得用户能够通过新的端口访问到原本的服务。

使用firewall-cmd命令实现端口转发的格式有点长,这里为大家总结好了:

firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>​

上述命令中的目标IP地址一般是服务器本机的IP地址