Iptables实验
内容
本文源自课程实验,实验内容如下:
在进行IP-Table设置前需要搭建实验环境,实验所需的环境配置如下图所示:
其中,1号机、4号机为内网计算机,2号机为网关,3号机为外网计算机。实验环境搭建成功之后,需要完成下面的实验步骤:
Part A
1、在2号机上用NAT表的POSTROUTING链配置NAT
1)伪装(MASQUERADE)包使内网的IP地址对外网隐藏
2)1号机和4号机,只允许通过SSH连接到外网
2、此步骤的NAT配置在整个实验过程中持续有效
Part B
为来自或者到达2号机(网关)的包编写规则,到达以下目的:
1、允许来自或者到达2号机的SSH连接
2、阻断来自或者到达2号机的其他所有通信
3、提示:Part B需要INPUT和OUTPUT链,但不需要FORWARD链
Part C
1、清除Part B中filter表设置的规则
2、仅允许1号机(不允许4号机)向外网中的3号主机发起SSH通信
3、阻断其他所有通信
4、提示:Part C需要FORWARD,INPUT和OUTPUT链
说明
- 这里是关于iptables的详细说明https://wangchujiang.com/linux-command/c/iptables.html
- 参考了这篇报告,但里面也有些许错误https://wenku.baidu.com/view/f493fa40ddccda38376bafd4.html
- ubuntu下载https://cn.ubuntu.com/download
- winsshd的安装参考https://www.linuxidc.com/Linux/2017-07/145984.htm
- ubuntu开启ssh服务https://www.cnblogs.com/jiarenanhao/p/9938280.html
- 在进行ssh连接时出现了错误nomatching host host key type found. Their offer:ssh-dss,按照这个方法解决https://www.cnblogs.com/VkeLixt/p/9978997.html
环境配置
网络拓扑如下
实验中m1 m2 m4都为虚拟机中装的ubuntu系统,m1,m4作为内网计算机,m2作为网关,m3为自己的本机作为外网主机
对m2的配置
M4配置同m1,只是ip不同
新增网卡
对新增的网卡进行配置
查看详细配置情况
对m1配置
查看配置情况
验证配置情况
1和2 能相互Ping通
2号能和外网相互Ping通
1号不能和外网Ping通
Part a
现在本机用winssd打开ssh服务,并建立一个虚拟账户guoguo
开启ssh服务
接下来操作需要高权限,换为root用户
清空filter表的所有链
清空nat表的所有链
修改filter表的默认规则,这里图中最后一行配置错误,之后进行了修改
修改如下
配置postrouting链,并保存
配置转发
验证
进行ssh连接
查看连接Ip不是内网ip10.0.0.2,实现了ip隐藏
Part b
修改filter表,禁止转发链,允许2号Ping和ssh
验证
2ping外网
外网ping2
2号连接ssh
2号进行其它连接失败
Part c
清空filter表的设置
只允许1号向外网ssh连接
验证
1号连接
4号连接
4号ip是10.0.0.3
不能连接