计算机安全Linux防火墙实验SEED
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux Firewall Exploration Lab Machine A IP: 192.168.121.131
Machine B IP: 192.168.121.132
Machine C IP: 192.168.121.133
任务1: 使用防火墙
- sudo ufw enable
- sudo ufw disable
- sudo ufw status
任务a) Prevent A from doing telnet to Machine B.
任务b) Prevent B from doing telnet to Machine A.
1、Machine A - sudo ufw enable
Machine B result:
2、Machine A - sudo ufw disable
Machine B result:
任务c) Prevent A from visiting an external web site.
Machine A - sudo ufw deny out to 10.0.6.30
--- 10.0.6.30
任务2: 防火墙内部怎样工作
在过去,实现防火墙功能需要去重新编译Linux的内核,也就是需要编辑内核代码并且重建整个内核映像。这样做费时费力。但是,现在的Linux操作系统提供了一些新的机制减轻我们的负担,即不需要重新编译整个内核即可实现防火墙功能。下面将介绍的两种机制就是Loadable Kernel Module(LKM) and Netfilter.
⏹LKM可加载内核模块
LKM允许外部在内核仍处于运行状态时向内核添加一个新的模块。这个新加入的内核可以实现内核功能的定向扩展,并且不需要重新编译内核或者重新启动计算机。
其内部必须包含两个函数:init_module()和clean()函数。
⏹Netfilter
Netfilter的架构就是在整个网络流程的若干位置放置了一些检测点HOOK,而在每个检测点上登记了一些处理函数进行处理(如包过滤,NAT等,甚至可以是用户自定义的功能)。
IP层的五个HOOK点的位置如下图所示:
问题1: Netfilter支持哪些类型的检测点,我们利用监测点可以实现什么?答:netfilter支持以下五个监测点:
1) NF_IP_PRE_ROUTING:刚刚进入网络层的数据包通过此点(刚刚进行完版本号,校验和等检测),目的地址转换在此点进行;
2) NF_IP_LOCAL_IN:经路由查找后,送往本机的通过此检查点,INPUT包过滤在此点进行;
3) NF_IP_FORWARD:要转发的包通过此检测点,FORWARD包过滤在此点进行;
4) NF_IP_POST_ROUTING:所有马上便要通过网络设备出去的包通过此检测点,内置的源地址转换功能(包括地址伪装)在此点进行;
5) NF_IP_LOCAL_OUT:本机进程发出的包通过此检测点,OUTPUT包过滤在此点进行。
问题2: 进入过滤在哪里放置监测点,外出过滤呢?
答:进入过滤在NF_IP_PRE_ROUTING、NF_IP_LOCAL_IN、NF_IP_FORWARD放置监测点。外出过滤在NF_IP_POST_ROUTING、NF_IP_LOCAL_OUT放置监测点。
任务:利用LKM和Netfilter实现防火墙规则
1、编写代码模块
目标:阻止来自Machine C的一切访问
监测点设置:NF_INET_PRE_ROUTING
2、加载编写好的模块
3、结果
任务3: 规避外出过滤
Machine A 运行在防火墙后(阻止所有的外出telnet访问,即23端口)Machine B 不设定防火墙,在防火墙之外
Machine C 运行telnet服务器
三个虚拟机的状态图如下所示:
SSH通道技术
它建立一条安全通道在源主机与目标主机之间,有时还可以涉及多台机器。SSH通道使用22号端口。通过SSH通道可以实现禁用telnet服务,仍能远程访问目标主机的功能。
任务a) Machine A 穿过防火墙telnet Machine C
- ssh -L 8000:Machine_C_IP:23 seed@Machine_B_IP
- telnet localhost 8000
结果:
任务b) 使用SSH隧道连接BIT首页
1、禁止访问BIT首页:
2、- ssh -D 9000 -C seed@B_IP
3、结果
Machine B相当于一个中介,事实上是B去访问BIT,然后BIT返回一些TCP 数据包,B再返回一些SSH数据给A,最后实现了A虽然被禁止访问BIT,却通过SSH安全通道访问到了BIT。
问题3:如果禁用22号端口,是否可以建立规避外出过滤的SSH通道?
答:不可以,因为SSH服务默认使用的就是22号端口,如果禁用22号端口,则无法使用SSH服务。
任务4: Web代理
还有一种类型的防火墙,是专门针对应用存在的。这类防火墙不再关注传输层、IP层的协议等,而是专注于应用层的数据流动。一种普遍被使用的应用层防火墙策略就是Web代理,用于控制允许被保护的浏览器实现哪些连接。
任务a) 建立 Squid
1、Machine C- sudo apt-get install squid
2、Machine A :Firefox 浏览器配置
使用Machine C 作为代理服务器
3、Machine A访问一些网站
结论:发现代理服务拒绝连接