Unit8—Linux中的火墙策略优化

Posted S4061222

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unit8—Linux中的火墙策略优化相关的知识,希望对你有一定的参考价值。

实验环境

第一台:双网卡主机:ens3(254网段)和ens9(4网段), 安装iptables
第二台:单网卡主机:ens3(4网段))

在这里插入图片描述

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

一、火墙介绍

netfilter 是火墙的策略文件,当策略中开启某个服务时,才允许访问; iptables 是管理火墙策略的软件;
iptables 和 firewalld 是 iptables 的上层软件,通过这两个软件来管理火墙策略软件。

二、火墙管理工具切换

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

三、iptables 的使用

1.火墙策略保存

火墙策略的永久保存在 /etc/sysconfig/iptables  文件  
 ## iptables 策略记录文件

在这里插入图片描述

永久保存策略的两种方式:
iptales-save > /etc/sysconfig/iptables
service iptables save

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

2.火墙默认策略

默认策略中的5条链

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

默认的3张表

filter     经过本机内核的数据(input output forward)
nat        不经过内核的数据(postrouting,prerouting,input,output)
mangle     当filter和nat表不够用时使用(input output forward postrouting,

3. iptables命令

参数                                 描述
-F                               清空iptables
-t                               指定表名称
-n                               不做解析
-L                               查看
-A                               添加策略
-p                               协议

--dport                          目的地端口
-s                               来源

-j                               动作:
-j            ACCEPT             允许
-j            DROP               丢弃
-j            REJECT             拒绝
-j            SNAT               源地址转换
-j            DNAT               目的地地址转换
            
-N                               新建链
-E                               更改链名称
-X                               删除链
-D                               删除规则
-I                               插入规则
-R                               更改规则
-P                               更改默认规则

关闭firewall服务,开启iptables服务
在这里插入图片描述

iptables -t filter -L
#指定查看filter表

在这里插入图片描述

iptables -t filter -nL
#指定查看filter表,不做解析

在这里插入图片描述

iptables -F 表示对其策略进行刷刷新,刷新之后会将策略中的内容清空,但是并没有清空配置文件中的内容;此时重启服务,策略便会恢复

在这里插入图片描述

iptables -t filter -F
#指定filter表清空

在这里插入图片描述

iptables -t filter -nL
#指定查看filter表,不做解析,不指定默认查看filter表的策略

在这里插入图片描述
添加策略

添加只能一个接一个添加

iptables -A INPUT -j ACCEPT
#默认的 filter 表中的 input 中添加策略,访问时都接受;

在这里插入图片描述

iptables -D INPUT 1
#删除默认 filter 表 INPUT 中的第一条规则

在这里插入图片描述

iptables -A INPUT -j REJECT
#默认的 filter 表中的 input 中添加策略,访问时都拒绝;

在这里插入图片描述

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#默认的 filter 表中的 input 中添加策略,当访问 22 端口时都接受

在这里插入图片描述

iptables -I INPUT 1 -p tcp --dport 22 -j REJECT
#默认的 filter 表中的 input 中插入策略,当访问 22 端口时都拒绝

在这里插入图片描述

iptables -R INPUT 1 -s 172.25.4.0/24 -p tcp --dport 22 -j ACCEPT
#更改策略:来源于 172.25.4.0/24 的访问 22 端口的信息都接受

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

iptables -P INPUT DROP
#更改默认规则为DROP

在这里插入图片描述

iptables -N westos
#添加一个名称为 westos 的链接

在这里插入图片描述

iptables -E westos WESTOS
#将已有的链接名称 westos 更改为 WESTOS

在这里插入图片描述

iptables -X WESTOS
#删除WESTOS链,不能删除默认链

在这里插入图片描述

4.数据包状态

字符含义
RELATED建立过连接的
ESTABLISHED正在连接的
NEW新的

火墙的策略是从上到下依次匹配,当匹配到适合自己的状态时,便不会向下匹配。通过对策略数据包状态的编写来优化火墙。

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#添加一个规则,状态为 ESTABLISHED 和 RELATED 的允许访问;
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
#添加一个规则,状态为新的访问回环接口的允许访问;
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT 
#添加一个规则,状态为新的数据,端口为 22 的协议为 tcp,允许其访问;
iptables -A INPUT -m state --state NEW -j REJECT 
#添加一个规则,状态为新的访问都会被拒绝

在这里插入图片描述

5.nat表中的dnat snat

在这里插入图片描述
SNAT:路由后(postrouting)

在这里插入图片描述

1)在客户机端(b内网主机):
设定网关为172.25.4.104, 主机 ip 为 172.25.254.204

2)在双网卡主机中 (a) :
iptables -t nat -A POSTROUTING -o enp1s0 -j SNAT --to-source 172.25.254.104
##172.25.4.204和172.25.4.104可以通信,从172.25.4.104口把数据接受出来, 在172.25.254.104口作数据转换

##在 nat 表的 POSTROUTING 中添加策略,从 a主机的ens3 网卡出去的所有数据,执行 SNAT 动作,将数据包装成来源于 172.25.254.104 的(把地址都转换为172.25.254.104)

在这里插入图片描述

systemctl -a |grep ip_forward #内核路由功能检测
编写/etc/sysctl.conf #开启内核路由功能
sysctl -p #设定生效

在这里插入图片描述
测试:
在这里插入图片描述
DNAT:路由前(prerouting)
在这里插入图片描述

172.25.254.70------172.25.4.204

##a主机的ens3网卡进来的数据转到172.25.4.204上

在这里插入图片描述测试:
在这里插入图片描述

以上是关于Unit8—Linux中的火墙策略优化的主要内容,如果未能解决你的问题,请参考以下文章

Linux中netfilter火墙访问控制策略优化详解(上)—iptables

Linux中netfilter火墙访问控制策略优化详解(下)—firewalld

防火墙策略配置优化

linux 防火墙 默认策略是DROP 如何让我能随意连接其他人的22端口

iptables的高级应用(网关型防火墙)

华为防火墙查看和调整安全域策略优先级