防火墙策略之iptables管理工具

一.防火墙介绍

问:什么是防火墙?

答:防火墙指的是一个由软件和硬件设备组合而成、在内网和外网之间、专用网与公共网之间的界面上构造的保护屏障。
防火墙是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使Internet与Intranet之间建立起一个安全网关(Security Gateway),从而保护内部网免受非法用户的侵入,防火墙主要由服务访问政策、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件(其中硬件防火墙用的很少只有国防部等地才用,因为它价格昂贵)。该计算机流入流出的所有网络通信均要经过此防火墙。软件防火墙单独使用软件系统来完成防火墙功能,将软件部署在系统主机上,其安全性较硬件防火墙差,同时占用系统资源,在一定程度上影响系统性能。其一般用于单机系统或是极少数的个人计算机,很少用于计算机网络中。

1.netfilter(网络过滤器)
netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤、数据包处理、地址伪装、透明代理、动态网络地址转换(Network Address Translation,NAT),以及基于用户及媒体访问控制(Media Access Control,MAC)地址的过滤和基于状态的过滤、包速率限制等。
2.iptables
3.iptables的管理方式:iptables或firewalld

防火墙原理图:
在这里插入图片描述

二.防火墙管理工具切换

在rhel8中默认使用的防火墙管理工具是firewalld
在这里插入图片描述

1.firewalld切换到iptables

dnf install iptables-services -y
systemctl stop firewalld
systemctl disable firewalld 
systemctl mask firewalld 
systemctl enable --now iptables

在这里插入图片描述

在这里插入图片描述

2.iptales切换到fiewalld

systemctl stop iptables
systemctl disable iptables
systemctl mask iptables(冻结服务,无法用start命令打开,可用unmask打开)
systemctl enable --now firewalld

三. iptables 的使用

/etc/sysconfig/iptables 	#iptables 策略记录文件
永久保存策略:
iptales-save > /etc/sysconfig/iptables或service iptables save

在这里插入图片描述

在这里插入图片描述

四.防火墙默认策略

1、默认策略中的5条链

图示:
在这里插入图片描述

input 输入
output 输出
forward 转发
postrouting 路由之后
prerouting 路由之前

2、默认策略中的的3张表

filter 记录经过本机内核的数据(有三条链:input output forward)
nat 记录不经过内核的数据(四条链:postrouting prerouting inputoutput)
mangle 当filter和nat表不够用时使用(五条链:input output forward postrouting prerouting,)

在这里插入图片描述

3、iptables命令的使用

iptables
-t 指定表名称
-n 不做解析,显示主机IP而不是名字
-L 查看
-A 添加策略
-p 协议
- -dport 目的地端口
-s 来源
-j 动作
-j 的动作有以下五种
ACCEPT 允许
DROP 丢弃
REJECT 拒绝
SNAT 源地址转换
DNAT 目的地地址转换
-N 新建链
-E 更改链名称
-X 删除链
-D 删除规则
-I 插入规则
-R 更改规则
-P 更改默认规则
数据包状态
RELATED 建立过连接的
ESTABLISHED 正在连接的
NEW 新的

由于每一个经过或者访问我的主机的数据包都需要经过防火墙策略,企业中的防火墙策略差不多有成千上万条,如果匹配的策略在第一个,那就非常节省时间,但如果恰巧在最后一个,那么每次在传输该数据包时,都会有非常高的延迟,为了减小延迟,我们可以对数据包的状态进行追踪,然后只检测新的数据包,已经建立的数据包和正在建立的数据包直接让其通过即可


不允许别的主机访问我这台主机的其他服务,只允许访问DNS(53)和apache(80 443)服务
规范写法:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#允许已经建立过连接的和正在建立连接的,-m表示动作
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT	
#允许回环接口
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
#允许访问apache服务的端口
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
允许访问dns的主机
service iptables save

注意:一些别的命令写法
iptables -A INPUT -m state --state NEW ! -s 192.168.0.10 -p tcp --dport 22 -j ACCEPT
#除192.168.0.109主机不能进行ssh连接外,别的主机都可以进行ssh连接
ptables -A INPUT -m state --state NEW -j REJECT

nat表中的dnat和snat
snat
iptable -t nat -A POSTROUTING -o ens160 -j SNAT --to-source 192.168.0.20
dnat
iptables -t nat -A PREROUTING -i ens160 -j DNAT --to-dest 172.25.254.30

1、永久保存更改以后即使重启iptables服务也无法改变策略,所以我们每次在改变服务时都记得要永久保存,负责重启iptables服务后编写的策略就会消失

在这里插入图片描述
iptabes命令的使用举例:
默认修改的是filter表(要修改别的表需要使用-t参数)
1、拒绝所有的数据包
在这里插入图片描述
结果:
在这里插入图片描述
删除该策略时使用命令:iptables -D INPUT 1

2、
第一条策略:拒绝所有的主机
第二条策略:允许192.168.0.109主机

在这里插入图片描述
结果:
在这里插入图片描述
第一条策略:允许192.168.0.109主机
第二条策略:拒绝所有的主机
注意:使用-I参数时默认插入第一条,可以在-I后面跟数字表示插入的地方

在这里插入图片描述
结果:
在这里插入图片描述
策略所写的顺序不同,产生的结果不同。
注意:
在防火墙策略执行的过程中,是从上到下依次执行的,当读取到的策略和现在的资源匹配时,就使用该策略,后面即使再有匹配的,也不会继续往下再读取

3、
在这里插入图片描述
在这里插入图片描述
4、
在这里插入图片描述
5、如果策略中没有一条策略和当前情况匹配,那么按默认策略执行,默认策略后面只能跟ACCEPT参数和DROP参数,不能跟REJECT

在这里插入图片描述
6、
在这里插入图片描述
7、
在这里插入图片描述
在这里插入图片描述

结束!!!

猜你喜欢

转载自blog.csdn.net/weixin_46138661/article/details/105276687
今日推荐