SeedLab10: Linux Firewall Exploration Lab

本文详细介绍了如何使用iptables和Netfilter进行防火墙设置,包括禁止telnet、限制HTTP访问、搭建SSH隧道以绕过规则,并探讨了反向隧道和动态转发的技术。通过实例演示,读者将掌握网络流量控制和安全策略的实施技巧。

防火墙的第一个Lab~
工具:
iptables
Netfilter
ssh隧道


Task 1

学会用iptables就行,全部防回去就行(狗头
要注意都是在主机A上配置

先在A上禁止A telnet B,-d指定目的IP
在这里插入图片描述

此时A的telnet请求会被丢弃
在这里插入图片描述

再在A上禁止B telnet A,-s指定源IP
在这里插入图片描述
B的telnet请求被拒绝
在这里插入图片描述

禁止A访问www.baidu.com
在这里插入图片描述

百度有好多IP呢,所以iptables加了两个条目(应该还有更多,但只加了两个
在这里插入图片描述

打开火狐,防出去了
在这里插入图片描述

Task 2

要用netfilter啦!
其实就是内核的hook,内核收发数据包的时候会去调用,然后做过滤
(啊这熟悉的名词,梦回上学期…

先来实现一下上一个task的俩规则
在这里插入图片描述
在这里插入图片描述
注册一下模块
在这里插入图片描述

看看就懂了!不会就先抄个框架(注意数据包方向: hooknum
然后对A的telnet请求会被拒绝
在这里插入图片描述
因为数据包过滤后被丢弃了
查看log的命令:dmesg | tail
在这里插入图片描述

第二条规则!过滤一下HTTP,禁止访问我院网站
在这里插入图片描述
在这里插入图片描述
注意改方向

然后发出向这个IP发出的HTTP请求会被丢弃
在这里插入图片描述
网站打不开啦
在这里插入图片描述

要实现5条规则,所以之后都是自己胡乱编的…
来个简单的,不许ping A主机
在这里插入图片描述
在这里插入图片描述
其他主机ping 这台主机就收不到回应
在这里插入图片描述

因为ICMP数据包被丢弃
在这里插入图片描述

然后搞个白名单康康,只允许10.0.2.8的ssh请求
在这里插入图片描述

10.0.2.8的ssh请求能通过
在这里插入图片描述
在这里插入图片描述

其他主机的ssh请求就被丢弃了
在这里插入图片描述
在这里插入图片描述

最后改个包叭(说实话,比scapy简单很多
在这里插入图片描述
哦吼,所有的源IP都改成了1.2.3.4
在这里插入图片描述

在这里插入图片描述

此处感谢大佬们
https://blog.csdn.net/specialsun/article/details/84695519
https://blog.csdn.net/sinat_38816924/article/details/107649007

Task 3

要建ssh隧道了,先给A加个防火墙,不允许对10.0.2.7的telnet请求
在这里插入图片描述
okk连不上了
在这里插入图片描述

再禁止访问某个域名
在这里插入图片描述

okk打不开了
在这里插入图片描述

然后建隧道~
发向本地8000端口的数据包都会进入ssh隧道发到10.0.2.7,出来后转发到10.0.2.7的23号端口
在这里插入图片描述
然后就能绕过上面的第一条防火墙规则
在这里插入图片描述
成功telnet 10.0.2.7
在这里插入图片描述
抓包康康,就是通过ssh隧道转发了呀

在这里插入图片描述

再建一个!这次是动态转发了,本地9000端口的所有数据包都转发到10.0.2.7
在这里插入图片描述

先清一下浏览器缓存~
在这里插入图片描述
再配一下浏览器的SOCKS代理
在这里插入图片描述

啊然后就绕过了第二条防火墙规则,能打开网站了
在这里插入图片描述

抓包康康,浏览器的请求通过SOCKS代理发到了本地的9000端口,然后进ssh隧道发向10.0.2.7,由它发到域名对应的IP去
在这里插入图片描述

实验还要求你断开ssh连接…那代理就没了呀
在这里插入图片描述

Task 4

反向隧道~
先在A搞防火墙,禁止外界访问80和22端口
在这里插入图片描述

然后A搞个反向隧道!发向10.0.2.7 8080端口的数据包从ssh隧道出来后就发向本地的80端口(web server
在这里插入图片描述
啊然后10.0.2.7做个正向隧道,8888端口的数据包转发到8080端口
在这里插入图片描述
(现在觉得有点傻了…为啥要搞俩端口啊…
好像是一个不行我才搞俩的…随意了

然后访问10.0.2.7的8888端口,它转发数据包到本地8080端口,然后进隧道发向A,出隧道转发到A的80端口,能访问啦~
在这里插入图片描述
(这种测试web server的方式是有点傻…有木有大佬知道怎么验证登录了80端口…

抓包康!10.0.2.7的数据包流向:8888->8080->ssh tunnel
回应ssh tunnel->8080->8888
在这里插入图片描述
A的数据包流向:ssh tunnel->80
回应80->ssh tunnel
在这里插入图片描述

ssh一样的流向
10.0.2.7:8888->8080->ssh tunnel

在这里插入图片描述
A:ssh tunnel->80
在这里插入图片描述


做完啦!做的很快啊!(狗头

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值