linux下iptables的重要性大家都不陌生吧?今天就以实验的形式把iptables的基本配置简要总结一下,还请大家不吝赐教,多多斧正才好!有关iptables的具体语法和格式将在理论部分具体阐述,在这里就不赘述了。
先来回顾一下iptables的语法格式:
iptables [ -t table ] COMMAND chains [ num ] match condition –j Action
table 表示的是一个表名,例如:filter nat mangle 等。
COMMAND 对链规则进行管理,常用参数为:-A -I -R -D等。
若要对链本身进行管理,则常用参数为: -F -P -N -X 等。
match condition 表示匹配规则。
Action 表示要执行的动作。
例如:
iptables –t filter -A OUTPUT –s 192.168.0.83 –d 192.168.0.82 –p tcp –dport 80 –j REJECT
闲话少说,开始做实验吧!
实验一:用iptables链拒绝主机ping
所搭建的实验环境为:两台RehHat linux虚拟机。
IP地址分别为:192.168.0.82 192.168.0.86
在默认情况下,两台虚拟机是可以互相ping通的,现在我们为了模拟真实环境,假定192.168.0.82的主机为服务器,192.168.0.86的主机为客户机,为了保证服务器的安全,我不允许客户机来ping我的服务器。所以呢,我们目的是让这两台虚拟机不能ping通,我们可以用iptables很轻松的来实现。
在进行配置之前,先来测试一下两台主机是否可以ping通。
现在就来设置一下,让PC2不能ping通PC1,那么该如何设置呢?
规则如下:设置好之后要记得查看一下是否生效。
再从PC2上ping 一下PC1,结果显示是没有反应。
上面的iptables链的意思就是说:当来自192.168.0.86主机通过ICMP协议来链接192.168.0.82主机时,PC1所做的动作是DROP(忽略:既不响应,也不拒绝)。打个比方吧:PC2对PC1打招呼(PC2 尝试pingPC1),但是PC1就是不理你,把PC2当空气了(iptables链所定义的规则)。因此,主机PC2当然不能ping通主机PC1了。
当主机PC2来ping主机PC1时,PC1的反应还有可能是立即拒绝PC2,命令为:
iptables –t filter -A INPUT –s 192.168.0.86 –d 192.168.0.82 -p icmp --icmp-type 8
-j REJECT
添加完命令时要养成查看,命令是否添加成功的好习惯。
【注:】与前面一幅图对比,可以发现执行iptables –L –t命令后,显示的结果仍然是一条,因为在写iptables链之前,执行了iptables –F的命令,因此,就可以知道iptables —F 命令的意思就是清除上一次的iptables链。
再次用主机PC2来ping主机PC1时,就可以看到显示的结果与前一条命令的不同之处了。
【思考:】如果允许主机PC2可以ping通主机PC1,该如何设置呢?
对啦!就是把第二条iptables链中的REJECT改为ACCEPT就行了。
【拓展:】上面的实验是对进入PC1的ping数据进行拒绝,如果不想让PC1的ping数据外界发送,那么命令就要改为:
iptables –t filter –A OUTPUT –s 192.168.0.82 –d 192.168.0.86 –p icmp –icmp-type 0
-j REJECT
由于上面的实验中设置的是不允许ping数据进入主机PC1,那么也就谈不上PC1向外界发送数据了。
实验二:基于源地址的NAT转发(将内网地址转换为外网地址)
现在网络需求提高了,我们需要对数据进行端口转发。具体实验环境为三台虚拟机示意图为:
 
【注:】需要说明的是:PC1属于内部局域网,PC2外部网 (我们所处的位置是PC1)
先来搭建实验环境,关于PC1和PC2的设置比较简单,手动配置IP地址就行了,有一点要说明的是PC1的网关指向网卡1 ,同理,PC2的网关要指向网卡2。接下来就是重头戏服务器的配置了。
在设置之前,要保证PC1与服务器可以ping通,PC2与服务器可以ping通。并且在PC1上可以ping通服务器和PC2
为了使PC1能ping通PC2,要打开服务器的路由转发功能。编辑/etc/systcl.conf文件,把net.ipv4.ip_forward=0修改为1。保存退出后,要记得重新读取该文件。命令为:sysctl –p
在PC2 上配置www服务,编辑一个测试页面,并测试配置成功。
测试结果显示,在本地访问PC2的www服务是没有任何问题的。
为了使试验的结果明显,在没有进行iptables配置之前,再来从PC1端来访问一下看是否可以成功访问。结果显示如下:
好了,实验前的所有准备工作都完成了,现在开始实验的重要部分:
1、内网访问外网的nat地址转换。具体配置如下:
使用iptables –t nat –L 来查看一下刚才的配置是否成功。
再次从PC1上访问PC2,测试是否能访问PC2。
结果是可以访问PC2的,从PC1的角度来看,配置地址转发与开启服务器的路由功能得到的结果是相同的。那么这两者究竟有什么区别呢?
这个问题可以到PC2上来解决,由于PC2上www的服务会记录来访者的日志,我们可以通过查看一下日志,看看能不能发现这两者的不同之处。如图所示:在四个日志记录中,前两次是本地测试的记录,第三个记录是PC1通过路由器来访问PC2的。第
四个记录是PC1通过地址转换来访问PC2的。现在该明白了吧?
实验三 基于目标地址的NAT转发(将外网地址转换成内网地址)
【注:】需要说明的是:PC1属于外网,PC2内部局域网 (我们所处的位置是PC2)
千万不可与前面实验二搅合到一起了,这是两个完全独立的实验,借用前面的所搭建的实验环境和示意图,只是为了节省时间,还请见谅!
实验开始前还是测试PC1可以ping通PC2,以及测试PC1可以访问PC2的www服务。在这里就省略测试连通性的步骤。
执行iptables –F命令清除所有已经存在的iptables链。实验环境搭建好了,现在就可以直接进行配置iptables链了。命令如下:
iptables –t nat –A PREROUTING –s 192.168.0.0/24 –d 192.168.8.82 –p tcp –dport 80 –j DNAT –-to-dest 192.168.8.100
使用iptables -t nat –L来查看命令是否执行。
重新登陆PC1,使用elinks 192.168.8.100访问PC2的www服务,结果是可以访问到PC2的www服务。切换到PC2上,查看PC2上的www服务访问日志记录,可以看到最后一行的源地址依然是主机PC1的IP地址,并没有发生改变。
除此之外,还可以指定目标地址的转发端口。在PC2上,把www默认的服务端口80修改为8080。
用vim编辑器打开位于/etc/httpd/conf,找到Listen 80 这一项,把80修改8080,完成后保存退出即可。
重启www服务,命令为:service httpd restart
然后查看8080端口是否打开,命令为:netstat –tunl
清除所有iptables链,然后写一条新的iptables链,命令为:
iptables –t nat –A PREROUTING –s 192.168.0.0/24 -d 192.168.0.82 –p tcp –dport 80 –j DNAT
--to-dset 192.168.8.100:8080
执行完成后,记得查看是否添加成功。
重新登陆PC1,使用elinks 192.168.8.100访问
PC2的www服务,结果是仍然可以正常访问到PC2的www服务。切换到PC2上,查看PC2上的www服务访问日志记录,可以看到最后一行的源地址依然是主机PC1的IP地址,并没有发生改变。

本文转自 linuxtro 51CTO博客,原文链接:http://blog.51cto.com/linuxtro/279334,如需转载请自行联系原作者

网络安全之iptables 实验篇一相关推荐

  1. linux实验磁盘管理,从0到1学习网络安全 【Linux实验篇-LVM 磁盘管理】

    简介 Logical Volume Manager 是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中. LVM 调整管理 ...

  2. 网络安全_密码学实验_非对称加密算法RSA

    网络安全_密码学实验_非对称加密算法RSA 一.实验环境 二.非对称加密RSA 1.理解RSA算法原理 2.加密过程 解密过程 一.实验环境 PyCharm 2019.2.4 (Professiona ...

  3. 「网络安全」安全设备篇(7)——抗DDOS产品

    概述 DDOS攻击随着互联网的快速发展,日益猖獗,从早期的几兆.几十兆,到现在的几十G.几十T的流量攻击,形成了一个很大的利益链.DDOS攻击由于容易实施.难以防范.难以追踪,成为最难解决的网络安全问 ...

  4. 网络安全_密码学实验_对称加密算法DES

    网络安全_密码学实验_对称密码非对称密码_加密算法DES RSA 一.实验环境 二.对称加密DES 1.理解DES算法原理 2.加密过程 3.解密过程 三.运行结果 一.实验环境 PyCharm 20 ...

  5. 「网络安全」安全设备篇(3)——IPS

    什么是IPS? IPS是英文"Intrusion Prevention Systems"的缩写,中文意思是"入侵防御系统",IPS实现实时检查和阻止入侵. 上文 ...

  6. 「网络安全」安全设备篇(1)——防火墙

    什么是防火墙? 防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合.它可以通过监测.限制.更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息.结构 ...

  7. 20155337 《网络安全编程》实验五实验报告

    20155337 <网络安全编程>实验五实验报告 20155303 实验五 网络编程与安全 目录 任务一: 编写MyBC.java实现中缀表达式转后缀表达式的功能 编写MyDC.java实 ...

  8. 《STM32从零开始学习历程》——USART串口通讯实验篇1——中断接收与发送

    <STM32从零开始学习历程>@EnzoReventon USART串口通讯实验篇1--中断接收与发送 最近开始接触了STM32F4xx系列单片机,对于我这个从零开始学习的小白来说,可谓困 ...

  9. 「网络安全」安全设备篇(4)——防火墙、IDS、IPS的区别

    前面三篇文章,针对防火墙.IDS.IPS做了详细介绍,具体内容这里不再赘述,感兴趣的小伙伴可以去看看哦. 概念不同 防火墙和IPS属于访问控制类产品,而IDS属于审计类产品.我们可以用一个简单的比喻, ...

最新文章

  1. golang signal 信号处理
  2. 根据关键字检索相关视频
  3. MSSQLSERVER数据库- SQL交叉表
  4. SmartFoxServer 2X Room的加入與建立
  5. echarts折线图相关
  6. 【qduoj - 142】 多重背包(0-1背包的另类处理,dp)
  7. 【C#编程基础学习笔记】6---变量的命名
  8. [Android]Handler的消息机制
  9. 【BZOJ4956】Secret Chamber at Mount Rushmore
  10. 企业开发基础设施--序
  11. Autodesk HSMWorks Ultimate 2019 Crack 破解版
  12. 音频硬件发展史,以及DSD是如何产生的 一起说一说音频
  13. 通俗易懂的Spatial Transformer Networks(STN)(二)
  14. Unity3D中2D图片动画进行帧动画播放
  15. 微信oauth2的认证
  16. kvm多电脑切换器发展史
  17. Sniffing_Spoofing Report
  18. 分享2个优质牛肉干的挑选方法
  19. react引入d3相关问题
  20. Leetcode 初级算法 - 数学

热门文章

  1. XShell多版本存在后门,避免服务器账号密码被上传
  2. 浏览器报错:DNS_PROBE_FINISHED_BAD_CONFIG
  3. zabbix4.2之网络发现、自动注册
  4. Eclipse 中 工程 引用 其他 工程的 配置方法。
  5. Safe handle has been closed异常的原因及解决思路
  6. springBoot JPA 数据库字段(实体类)带下划线在扩展findBy方法时出错的解决办法
  7. Eclipse alt+/语法不提示的解决方法
  8. 全文搜索引擎的比较-Lucene,Sphinx,Postgresql,MySQL?
  9. CSS显示属性上的过渡
  10. python defaultdict(list)_Python collections.defaultdict() 与 dict的使用和区别