Linux系统中防火墙管理-iptables

一.iptables概述

iptables(网络过滤器)是一个工作于用户空间的防火墙应用软件。iptable是Linux下的数据包过滤软件 。
iptables有三张表五条链:
1.Filter:数据包流通是否访问Linux内核的表
Filter包含三条链input、 forward 、output

INPUT:主要与想要进入Linux主机的数据包有关,访问内核上的服务,经过内核。
OUTPUT :主要与Linux本机所要送出的数据包有关,访问内核上的服务,经过内核。
FORWARD :与Linux本机没有关系,它可以传递数据包到后端的计算机中,与表NAT有关

理解Filter包含的三条链:
图中1.1.1.1 与2.2.2.2通信要经过路由。路由有两块网卡,分别设置IP:1.1.1.2 、 2.2.2.1。
内核开启服务http和ftp。
在这里插入图片描述
1.1.1.1访问路由内核开启的ftp服务,经过1.1.1.2端口进来。input由filter表里input设定。
相反出去。ouput由filter表里output设定
在这里插入图片描述
1.1.1.1与2.2.2.2通信,要经过路由。路由两块网卡网段不同,不可以通信。两块网卡通过内核做数据的连接 forward
在这里插入图片描述
2.nat::用来进行来目的地地址转换和源地址转换

INPUT:与进入Linux的数据包有关,但没有去访问内核上的服务,不经过内核。
PREROUTING:在进行路由判断之前目的地地址转换过程中所要进行的规则(DNAT目的地地址转换)。
POSTROUTING:在进行路由判断之后地址转换的过程中所有进行的规则(SNAT:源地址伪装。
OUTPUT:与发送出去的数据包有关,同样没有访问内核上的服务,不经过内核。

3.mangle:备用表
有五条链:input、 forward、 prerouting 、postouting 、output

二.目的地址转换和源地址转换

1.环境配置
1)服务端设置
添加两张网卡
172.25.254.110
1.1.1.110
在这里插入图片描述
打开地址伪装

firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
firewall-cmd --list-all	

在这里插入图片描述
2)客户端设置
1.1.1.10
GATEWAY=1.1.1.110
在这里插入图片描述
2.源地址转换SNAT
客户端(IP:1.1.1.10)ssh [email protected]
w -i ##可以发现看到172.25.254.110
主机172.25.254.77上显示的是172.25.254.110连接的它。但是实际上是1.1.1.10连接的172.25.254.77。这就是源地址转换
在这里插入图片描述
3.目的地地址转换

firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=1.1.1.10
firewall-cmd --list-all

在这里插入图片描述
主机(IP:172.25.254.110)ssh [email protected]
但是它实际连接的时候1.1.1.10
在这里插入图片描述
删除目的地地址转换
在这里插入图片描述

三.iptable的管理

1.关闭firewalld的管理,打开iptables的管理方式

systemctl stop firewalld.service 
systemctl mask firewalld
systemctl disable firewalld
yum install iptables-services
systemctl start iptables
systemctl enable iptables

在这里插入图片描述在这里插入图片描述
2.显示iptables中的所有策略

iptables -L 		##默认看的是filter,看到的是不是真实的ip,显示的是anywhere 

在这里插入图片描述

iptables -nL		##-L列出表,-n解析

在这里插入图片描述

iptables -t nat -nL	##列出nat表的内容

在这里插入图片描述

iptables -t mangle -nL  ##列出mangle表的内容

在这里插入图片描述
3.刷新火墙的信息,清空之前策略

iptables -F		##删除表的内容
iptables -nL		##表的内容被删除了

在这里插入图片描述

systemctl restart iptables ##重启iptables
iptables -nL		##表的内容重新回来了

在这里插入图片描述
4.保存iptables的策略

vim /etc/sysconfig/iptables
iptables -F
service iptables save  ##保存之后配置文件被修改
cat /etc/sysconfig/iptables

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

四.iptables的管理

1.添加新的链westos

iptables -N westos

在这里插入图片描述
2.修改westos链的名称成WESTOS

iptables -E westos WESTOS

在这里插入图片描述
3.删除WESTOS链

iptables -X WESTOS

在这里插入图片描述

4.添加策略:表filter中INPUT设置拒绝172.25.254.77连接访问本机(IP:172.25.254.110)

iptables -t filter -A INPUT -s 172.25.254.77 -p tcp --dport 22 -j REJECT

在这里插入图片描述
主机(IP:172.25.254.77)ssh [email protected] 无法连接
在这里插入图片描述
5.添加策略1:拒绝所有人连接访问本机(IP:172.25.254.110)
添加策略2:允许172.25.254.77连接本机

iptable -A INPUT -j REJECT ##拒绝所有人连接
iptables -A INPUT -s 172.25.254.77 -p tcp --dport 22 -j ACCEPT   ## -A表示把该策略从末端插入
iptables -I INPUT -s 172.25.254.77 -p tcp --dport 22 -j ACCEPT    ## -I表示把该策略从开头插入

在这里插入图片描述主机(IP:172.25.254.77)ssh [email protected] 可以连接
而其他主机不可以连接
在这里插入图片描述
6.添加策略:除了IP为172.25.254.77的主机,所有人都无法连接本机

iptable -A INPUT ! -s 172.25.254.10 -p tcp --dport 22 -j REJECT 

在这里插入图片描述

五.iptables管理地址伪装

1.源地址转换

sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.110

在这里插入图片描述
主机(IP:1.1.1.10 ) ssh [email protected]
主机172.25.254.77上显示的是172.25.254.110连接的它。但是实际上是1.1.1.10连接的172.25.254.77
在这里插入图片描述
2.目的地地址转换

iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 1.1.1.10

在这里插入图片描述
172.25.254.77主机ssh [email protected]
实际连接的是1.1.1.10
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/chaos_oper/article/details/84962156