(2015-2016 第一学期)
题目:用iptables构建Linux防火墙
专 业
分评 评分项 遵守机房规章制度 实验原理分析与设计 优秀 良好 中等 差 课题功能实现情况 设计验收与答辩 课程设计报告书写 简短评语 教师签名: 年 月 日 评分等级备注
用iptables构建Linux防火墙
一、 实验目的
1) 掌握防火墙的基础架构。
2)掌握利用iptables构建Linux防火墙的基本方法。
3)掌握利用iptables实现NAT代理、IP伪装等高级设置。 4)掌握简单的Shell脚本语言编程。 。
二、 实验环境
(1) 准备普通PC一台。
(2) 在该PC上安装Red Hat Linux操作系统虚拟机。 在装有linux2.6的PC上,可以直接利用iptables实现防火墙功能,利用命令service iptables start或者在启动菜单中启动该服务,并根据下面的参数说明,设置规则,然后利用本机的网络访问进行测试。 三、实验原理
静态报过滤器是最老的防火墙,静态数据包过滤发生在网络层上,也就是OSI模型的第三层上。对于静态报过滤防火墙来说,决定接受还是拒绝一个数据包取决于对数据包中IP头和协议头的特定区域的检查,这些特定的区域包括: 1、 数据源地址 2、 目的地址 3、 应用或者协议 4、 源端口号 5、 目的端口号
Iptables软件是netfilter框架下定义的一个包过滤子系统。Netfilter作为中间件在协议栈中提供了一些钩子函数(Hooks),用户可以利用钩子函数插入自己的程序,扩展所需的功能。
图1中IPv4共有5个钩子函数: 1、NF_IP_PRE_ROUTING 2、NF_IP_LOCAL_IN 3、NF_IP_FORWARD
4、NF_IP_POST_ROUTING 5、NF_IP_LOCAL_OUT
数据包从左边进入系统进行IP校验后,经过第一个钩子函数NF_IP_PRE_ROUTING进行处理;然后进入路由代码,它决定改数据包是转发还是发给本机;
- 3 -
若是发给本机,则该数据包经过钩子函数NF_IP_LOCAL_IN处理后传给上层协议; 若该数据包需转发则被NF_IP_FORWARD处理;然后,经过最后一个钩子函数NF_IP_POST_ROUTING处理后传到网络上;
本地产生的数据经钩子函数NF_IP_LOCAL_OUT处理后,进行路由选择处理,然后经NF_IP_POST_ROUTING处理发送到网络上。
四、实验步骤
(1) 在linux环境下进行系统初始化操作。
a) 清除预设表filter中所有的规则链中的规则 b) 添加规则 c) 删除规则 d) 查看规则
(2) 设定filter table的预设政策,将所有侦测预设为拒绝,并进行网络检验。 (3) 进行ping命令限制,分别完成以下操作。
a) 本机可以ping他机,而阻止他机
b) 他机可以ping本机,而阻止本机ping他机。 c) 本机可以ping他机,同时允许他机ping主机。
并掌握其检验方法
(4) 进行端口命令的设置,并分别完成以下的操作。
a) 开放或者禁止局域网访问外部网站
b) 利用vsftpd为远程提供FTP服务通过防火墙进行读取限制 c) 提供Telnet服务,但禁止某些外部IP访问 d) 禁止Telnet服务的端口 并掌握其检验方法
(5) 进行地址伪装命令设置。将本地地址伪装为其他地址,例如163.26.197.X,并进行
检验。
五、实验结果
查找主机ip:
- 4 -
在虚拟机中ping自己的主机:
清除预设表filter中所有的规则链中的规则,并查看:
添加规则,删除以及查看规则:
- 5 -