34. linux中防火墙iptables的使用

阅读: 评论:0

34.  linux中防火墙iptables的使用

34. linux中防火墙iptables的使用

Lesson34 linux中防火墙iptables的使用

文章目录

          • 1. 什么是iptables
          • 2. iptables的基本命令管理
          • 3. iptables的地址伪装(SNAT)和端口转发(DNAT)
            • 3.1 iptables的SNAT和DNAT含义
            • 3.2 iptables的权限策略编写
            • 3.3 iptables的SNAT 源地址转换(POSTROUTING—地址伪装)
            • 3.4 iptables的DNAT 源地址转换(PREROUTING—端口转发)

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.214的22端口
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, 端口转发成功

本文发布于:2024-01-30 13:27:43,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170659246320333.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:防火墙   linux   iptables
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23