1、明都更新版网络安全实验二网络安全课程实验报告书实验2:Linux系统iptables防火墙专 业 网络工程 班 级 14-2 学 号 14034460248 姓 名 黄焕波 指导教师 李 家 兰 完成时间 2016.11.29 成 绩 一、实验目的1、熟悉和掌握TCP/IP协议的基础概念和方法;2、掌握防火墙的概念、功能分类及实现方法;3、掌握Linux系统防火墙和iptables防火墙的配置方法。二、实验原理 1、防火墙的任务防火墙在实施安全的过程中是至关重要的。一个防火墙策略要符合四个目标,而每个目标通常都不是一个单独的设备或软件来实现的。大多数情况下防火墙的组件放在一起使用以满足公司安全
2、目的需求。防火墙要能满足以下四个目标:1 实现一个公司的安全策略防火墙的主要意图是强制执行你的安全策略,比如你的安全策略需要对MAIL服务器的SMTP流量做限制,那么你要在防火墙上强制这些策略。2 创建一个阻塞点防火墙在一个公司的私有网络和分网间建立一个检查点。这种实现要求所有的流量都要经过这个检查点。一旦检查点被建立,防火墙就可以监视,过滤和检查所有进出的流量。网络安全中称为阻塞点。通过强制所有进出的流量都通过这些检查点,管理员可以集中在较少的地方来实现安全目的。3 记录internet活动防火墙还能强制记录日志,并且提供警报功能。通过在防火墙上实现日志服务,管理员可以监视所有从外部网或互联
3、网的访问。好的日志是适当网络安全的有效工具之一。4 限制网络暴露防火墙在你的网络周围创建了一个保护的边界。并且对于公网隐藏了内部系统的一些信息以增加保密性。当远程节点侦测你的网络时,他们仅仅能看到防火墙。远程设备将不会知道你内部网络的布局以及都有些什么。防火墙提高认证功能和对网络加密来限制网络信息的暴露。通过对所能进入的流量进行检查,以限制从外部发动的攻击。 2、iptables及其命令格式iptables是Linux 2.4.X 的内核防火墙,其工作原理为对经过网络模块的数据包的处理,各数据包按流经位置进入相应的规则链,iptables逐条对比链内的规则,如果满足条件,则进行相应的动作。其配
4、置文件为/etc/sysconfig/iptables。命令格式: iptables 指令+规则链+条件+动作 iptables指令(对规则链的操作)A chain -append 添加到规则链中D chain -delete 从规则链中删除匹配的规则Lchain -list 列出在一条链或所有链上的规则 (-line-numbers)F chain -flush 清除一条链或所有链上的规则-P chain target -policy 把一个规则链上的策略改变为目标iptables内置有三个表filter、nat、mangle,缺省为filter表,可使用-t参数来选择操作的表,用户可自定义
5、表 iptables规则链(chain) Iptables条件-s IP地址 源地址-d IP地址 目的地址-i 接口名 接收的接口-o 接口名 发送的接口-p tcp/udp/icmp/47 协议-dport 目的端口-sport 源端口-syn 建立连接请求-m state ESTABLISHED / RELATED / NEW / INVALID 状态包过滤 iptables动作(policy)(对数据包的操作) -j ACCEPT -j DROP -j REJECT( tcp-reset/icmp-port-unreachable )三、实验步骤1、 准备工作 同一局域网内的2台PCa
6、) A的操作系统为Linux,在A安装网络服务及配置iptables;b) B对A的配置进行验证,主要使用基于icmp协议的ping命令和基于tcp协议的ftp相关命令或软件,假定其ip为10.10.96.123;c) 为避免与机房其他主机发生IP冲突,最好重设A、B地址为静态地址,A、B在同一网段,且不使用192.168.1.x等机房常用网段;测试A、B可互ping通。以下IP地址设置:Linux为PCA,Windows为PCB PCA与PCB互Ping通: 在PCA:1) 启动vsftpd2) 增加1个一般用户abc3) 添加新增用户为ftp用户在vsftpd.conf中添加以下代码: 在
7、ulis中添加FTP用户abc: 4) 验证系统已启动iptables (默认)2、 配置Linux的系统防火墙1) A: start - system setting - security level - enable ftp(only),允许系统建立ftp连接2) B: ftp测试之 (使用user psw ls lcd get等命令)PCA中新建ftptest.txt文件,供FTP测试下载:PCB使用FTP远程访问PCA:从PCA下载的测试文件:3) A: start - system setting - security level - disable ftp,禁止系统建立ftp连接4
8、) B测试之ftp失连接到主机失败,然而忘记截图s3、 使用iptables命令配置防火墙,熟悉几类基本过滤原则的配置方法(有关ftp的操作,必须确认系统防火墙允许建立ftp连接,因其优先级高于iptables配置)0 备份 /etc/sysconfig/iptables由于时间关系,就直接做了1 阻塞某IP的连接A: 阻塞# iptables -A INPUT -s 10.10.96.123 -j DROPB: ping,测试之A: 取消阻塞# iptables -D INPUT -s 10.10.96.123 -j DROPB: ping,测试之2 阻塞某网段的连接A: # iptable
9、s -A INPUT -s 10.10.96.1/24 -j DROP修改PCB地址为该网段的其他地址并测试:设置防火墙并Ping测试:取消阻塞并测试:A: # iptables -D INPUT -s 10.10.96.1/24 -j DROP 3 阻塞某协议的连接,如icmpA:# iptables -A INPUT -p icmp -j DROPB: ping,测试之A:# iptables -D INPUT -p icmp -j DROP4 阻塞某端口的连接,如ftpcmd使用的21端口A:# iptables -A INPUT -p tcp -dport 21 -j DROPB: f
10、tp,测试之A:# iptables -D INPUT -p tcp -dport 21 -j DROP5 选择以上若干实验步骤,使用iptables动作REJECT代替DROP,比较它们的区别,思考使用DROP的优点。REJECT动作会返回一个拒绝(终止)数据包(TCP FIN或UDP-ICMP-PORT-UNREACHABLE),明确的拒绝对方的连接动作。DROP动作只是简单的直接丢弃数据,并不反馈任何回应。需要Client等待超时,Client容易发现自己被防火墙所阻挡。DROP比REJECT好在节省资源,而且延缓黑客攻击的进度(因为不会给黑客返回任何有关服务器的信息)6 结束iptables命令实验,恢复 /etc/sysconfig/iptables通过 /etc/sysconfig/iptables stop命令实现结束iptables服务的功能