防火墙的第一个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

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

5948

被折叠的 条评论
为什么被折叠?



