34. linux中防火墙iptables的使用

Lesson34 linux中防火墙iptables的使用

1. 什么是iptables

iptables(网络过滤器)是一个工作于用户空间的防火墙应用软件,是与3.5版本Linux内核集成的IP信息包过滤系统。如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,则该系统有利于在Linux系统上更好地控制IP信息包过滤和防火墙配置。
Iptables是用来设置、维护和检查Linux内核的IP包过滤规则的。它可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对对应的包进行匹配,每条规则指定应当如何处理与之相匹配的包。这被称作"target"(目标),也可以跳向同一个表内的用户定义的链。

2. iptables的基本命令管理

实验准备:
1. desktop作为服务器端,配置为双网卡主机:
eth0:172.25.254.114
eth1: 192.168.0.114
2. server测试端:eth0: 192.168.0.214
3. 真机测试端:ip:172.25.254.14
在desktop服务器端配置好yum源

实验步骤:
在desktop服务器端
安装iptables服务
在这里插入图片描述
发现这个服务已经安装好,开启iptables服务, 并且设置为开机启动
在这里插入图片描述
-nL # 表示不做解析列出防火墙策略
在这里插入图片描述
-L # 表示做解析列出防火墙策略
在这里插入图片描述

-t # 表示列出指定表的策略信息,不加-t默认为filter
在这里插入图片描述

保存策略方法一在这里插入图片描述
保存策略方法二
在这里插入图片描述
-A #将策略追加在已经存在的表后面,按顺序执行(第一个符合行为后便不会读取第二个)
在这里插入图片描述
添加策略允许ip为172.25.254.15的主机通过ssh服务连接进服务器
在这里插入图片描述
-I #插入 加数字表示添加的位置 默认为1,表示插入到最前边
在这里插入图片描述
-R #替换规则要加数字(将172.25.54.250的规则修改为丢弃)
在这里插入图片描述
-D #删除第二条规则
在这里插入图片描述
-N # 添加新链名称为redhat
在这里插入图片描述
-E #重命名链(将名称为redhat的链重命名为WESTOS)
在这里插入图片描述
-X #删除WESTOS链
在这里插入图片描述
-P # 修改policy DROP ACCEPT 不能修改为REJECT 链的默认属性
在这里插入图片描述
清除策略(刷新iptable服务后,原策略会恢复)
在这里插入图片描述
-j #行为动作
-S #查看策略详细信息,包括操作
在这里插入图片描述
-Z # 清除数据包

3. iptables的地址伪装(SNAT)和端口转发(DNAT)
3.1 iptables的SNAT和DNAT含义

SNAT和DNAT(由连接的发起者是谁来区分)

源地址转换:SNAT
内部地址要访问公网上的服务时(如web访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换称为SNAT,主要用于内部共享IP访问外部。
目的地址转换:DNAT
当内部需要提供对外服务时(如对外发布web网站),外部地址发起主动连接,由路由器或者防火墙上的网关接收这个连接,然后将连接转换到内部,此过程是由带有公网IP的网关替代内部服务来接收外部的连接,然后在内部做地址转换,此转换称为DNAT,主要用于内部服务对外发布。
3.2 iptables的权限策略编写

实验题目要求:新建火墙策略:squid+sshd+dns

举一个生活中的例子:去电影院看电影的时候,第一次用户需要检票入场,若中途有事离开了观影厅,在电影结束前还可以凭票根再次入场,无需重新再次检票

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  #建立过状态和建立完成中途断开重新连接的都允许

iptables -A INPUT -m state --state NEW -i lo -j ACCEPT    #通过回环接口的所有数据都接收

iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT  #允许ssh服务

iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT   #允许dns服务

iptables -A INPUT -m state --state NEW -p tcp --dport 3128 -j ACCEPT    ##允许squid服务

iptables -A INPUT -j REJECT    #拒绝其他主机通过任何服务连接
iptables -nL    #查看新建的火墙策略

在这里插入图片描述
查看iptables火墙策略
在这里插入图片描述不做解析查看策略

在这里插入图片描述
可以看到,已经成功添加ssh, squid和dns服务进策略信息
将新建的策略保存
iptables-save > /etc/sysconfig/iptables
刷新
iptables -F
重启iptables服务
在这里插入图片描述
再次查看策略信息依然存在
在这里插入图片描述

3.3 iptables的SNAT 源地址转换(POSTROUTING—地址伪装)
 >  /etc/sysconfig/iptables  #清空策略信息
 iptables -nL  #查看策略信息已经不存在
  `这个实验必须开启路由功能 `

在这里插入图片描述
iptables -t nat -nL #查看nat表的策略
在这里插入图片描述

iptables -t nat -A POSTROUTING  -o eth0 -j SNAT --to-source 172.25.254.114  #把要从eth0出去的数据的源地址改为172.25.254.114
iptables -t nat -nL

将192.168.0.214测试机网关设为192.168.0.114
route -n #查看网关
在这里插入图片描述
把要从eth0出去的数据的源地址改为172.25.254.114
iptables -t nat -nL #查看是否添加策略(必不可少)
在这里插入图片描述
在server虚拟机进行测试
ping 172.25.254.14,发现可以ping通(如果不添加网关,则无法ping通)
在这里插入图片描述

3.4 iptables的DNAT 源地址转换(PREROUTING—端口转发)
iptables -t nat -A PREROUTING  -i eth0 -p tcp --dport 22 -j DNAT --to-dest 192.168.0.214:22 #从eth0的22端口进来的数据,目的地转为 192.168.0.21422端口
iptables -t nat -nL

将从eth0的22端口进来的数据,目的地转为 192.168.0.214的22端口
iptables -t nat -nL #查看是否添加策略(必不可少)
在这里插入图片描述
在真机端进行测试
ssh root@172.25.254.114 输入的密码是转到的ip的主机密码

在这里插入图片描述
查看登陆服务器的ip为192.168.0.214, 端口转发成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值