前言:
本文是一篇关于Linux系统初学者的实验记录。
参考书籍:《Linux就该这么学》
实验环境:
VmwareWorkStation 17——虚拟机软件
RedHatEnterpriseLinux[RHEL]8——红帽操作系统
备注:
防火墙作为公网与内网的屏障,在保障数据安全性方面起着至关重要的作用。
防火墙有软件和硬件之分,但主要功能都是依据策略对穿越防火墙自身的流量进行过滤。
iptables和firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的工具,是一种服务。
这种服务会把配置好的防火墙策略交由Linux系统的内核层面处理。
目录
前言:
备注:
策略与规则链:
基本的命令参数:
正文:
iptables:
实验1:
实验2:
实验3:
实验4:
实验5:
实验6:
实验7:
实验8:
实验9:
最后,如果想让配置的防火墙策略永久生效,执行保存命令:
策略与规则链:
防火墙会按照从上到下的顺序来读取配置的策略规则,在找到匹配项后就立即结束匹配工作去执行匹配项中定义的行为(放行或阻止)。如果在读取完所有的策略规则之后没有匹配项,就去执行默认的策略。
iptables服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据包处理位置的不同进行分类:
1.在进行路由选择前处理数据包(PREROUTING)
2.处理流入的数据包(INPUT)
3.处理流出的数据包(OUTPUT)
4.处理转发的数据包(FORWARD)
5.在进行路由选择后处理数据包(POSTROUTING)
上面是所谓“四表五链”中的五条规则链。
一般来说,从内网向外网发送的流量一般都是可控且良性的,因此使用最多的就是INPUT规则链,该规则链可以增大黑客人员从外网入侵内网的难度。
ACCEPT(允许流量通过)
REJECT(拒绝流量通过)
LOG(记录日志信息)
DROP(拒绝流量通过,不回复)
基本的命令参数:
参数 | 作用 |
-P | 设置默认策略 |
-F | 清空规则链 |
-L | 查看规则链 |
-A | 在规则链末尾加入新规则 |
-I num | 在规则链头部加入新规则 |
-D num | 删除某一条规则 |
-s | 匹配来源地址IP/MASK,加叹号“!”,表示这个IP除外 |
-d | 匹配目标地址 |
-i网卡名称 | 匹配从这块网卡流入的数据 |
-o网卡名称 | 匹配从这块网卡流出的数据 |
-p | 匹配协议,如TCP、UDP、ICMP |
--dport num | 匹配目标端口号 |
--sport num | 匹配来源端口号 |
正文:
iptables:
实验1:
在iptables命令后面加-L参数查看已有的防火墙规则链
实验2:
在iptables命令后面加-F参数清空已有的防火墙规则链
实验3:
把INPUT规则链的默认策略设置为拒绝
把INPUT链设置为默认拒绝后,所有流入的数据包都会被默认拒绝。
需要往里面写入允许策略。
如图:使用ping命令ping自己
规则链的默认拒绝动作只能是DROP,而不能是REJECT。
实验4:
向INPUT链中添加允许ICMP流量进入的策略规则
此时ping自己就可以ping通,用隔壁CentOS8虚拟机也能ping通。
实验5:
删除INPUT规则链中刚刚加入的那条策略:
这时RHEL8和CentOS8都ping 不通192.168.0.128(RHEL8的IP地址)
现在把默认策略设置为允许:
再次ping测试:连通
实验6:
将INPUT规则链设置为只允许指定网段的主机访问本机的22端口,
拒绝来自其他所有主机的流量。
使用CentOS 8对RHEL进行ssh连接:
现在对防火墙进行设置:
connection refused
实验7:
向INPUT规则链中添加拒绝所有人访问本机的12345端口的策略规则:
实验8:
向INPUT规则链中添加拒绝192.168.10.5主机访问本机80端口的策略规则。
实验9:
向INPUT规则链中添加拒绝所有主机访问本机100~1024端口的策略规则。