网络安全实验之《防火墙》实验报告 |
您所在的位置:网站首页 › kali安装防火墙 › 网络安全实验之《防火墙》实验报告 |
一、实验目的 (1)课上实验: 1.学习iptables防火墙基本操作。 2.设置iptables防火墙的包过滤规则,分别实现以下功能:禁止所有主机ping本地主机;仅允许某特定IP主机ping本地主机;允许每10秒钟通过1个ping包;阻断来自某个mac地址的数据包。 3.设置iptables规则,实现特定远端主机SSH连接本地主机。 (2)课后实验: 实现内网服务的发布: 1.配置网络环境,测试网络连通情况。 2.开启防火墙路由转发,设置iptables规则。 3.验证公网主机能否通过访问防火墙获得内网服务。 通过进行上述的课上实验和课后实验,能够进一步掌握防火墙功能实现的原理。 二、实验环境 (1)课上实验 1.防火墙:Kali-linux。 2.其他主机:Ubuntu。 3.软件:iptables、Xshell。 (2)课后实验 1.防火墙:Ubuntu。 2.内网主机PC1:Windows 7虚拟机。 3.公网主机PC2:Windows 7虚拟机。 4.软件:iptables、nginx。 三、实验过程与结果 一、课上实验 (1)使用ifconfig查看两虚拟机的地址信息: (2)可以看到此时两虚拟机之间能够相互ping通: (3)在kali的命令行输入sudo iptables -A INPUT -p icmp -j DROP,以实现禁止所有主机ping本地主机的目的: 此时在ubuntu输入ping 192.168.161.130,可以看到已经不能ping通: (4)在kali的命令行输入sudo iptables -I INPUT -p icmp -s 192.168.161.129 -j ACCEPT,以实现仅允许ip地址为192.168.161.129的主机ping通本地主机: 输入 sudo iptables -L确认上述功能的实现: 此时在ubuntu输入ping 192.168.161.130,可以看到能够重新ping通: (5)在kali的命令行依次输入sudo iptables -I INPUT -p icmp -m limit --limit 6/min --limit-burst 1 -j ACCEPT 和sudo iptables -A INPUT -p icmp -j DROP,以实现允许每10s通过一个ping包: 输入 sudo iptables -L确认上述功能的实现: 此时在ubuntu输入ping 192.168.161.130,通过观察和结束ping后的提示语句:“61 packets transmitted, 7 received, 88.5246% packet loss, time 61324ms rtt min/avg/max/mdev = 0.443/1.343/2.215/0.624 ms”可以确认是每10s通过一个ping包: (6)由于ubuntu主机的MAC地址为00:0c:29:98:55:54,因此在kali的命令行输入sudo iptables -A INPUT -m mac --mac-source 00:0c:29:98:55:54 -j DROP,以实现阻断来自该MAC地址的数据包的目的: 输入 sudo iptables -L确认上述功能的实现: 此时在ubuntu输入ping 192.168.161.130,可以看到已经不能ping通: (7)配置iptables,允许特定的远端客户机器SSH连接本地主机: 首先在kali启动ssh服务,使得客户端可以通过22端口远程连接: 查看ssh服务器的状态: 使用ubuntu和Xshell分别作为客户端1和客户端2,进行ssh远程连接服务器,可以看到均成功连接: 在kali的命令行依次输入sudo iptables -I INPUT -p tcp --dport 22 -s 192.168.161.129 -j ACCEPT和sudo iptables -A INPUT -p tcp --dport 22 -j DROP,以实现只允许客户端1进行ssh连接的目的: 验证防火墙效果,可以看到此时客户端1仍然可以远程ssh连接: 而客户端2已经无法连接到kali: 二、课后实验 (1)首先了解一下实验场景: 如上图所示,假设PC2不能直接访问局域网内的电脑PC1上的服务,但PC2可以与firewall上的公网IP:192.168.2.254相互通讯,由此可以进行NAT的设置,让PC2访问firewall的公网地址上的服务,再由firewall对数据进行处理,将访问请求发送到内网PC1上。 (2)配置网络环境 首先,给作为firewall的ubuntu增设网卡,并设置两张网卡处在不同的网络中(网卡1使用自定义的VMnet0,网卡2使用自定义的VMnet1),ifconfig查看ip: 由上图可知,网关的配置如下: 内网ip:192.168.43.57 子网掩码:255.255.255.0 公网ip:192.168.241.128 子网掩码:255.255.255.0 设置PC1的网络适配器,与firewall网络适配器ens33处于一个网段(VMnet0);PC2使用另一台虚拟机,网络设置同firewall的网络适配器ens38(VMnet1)。 设置PC1的网关为firewall,并测试网络连通性。应实现:PC1可以与firewall互相ping通;PC2可以与firewall互相ping通;PC1与PC2无法互ping。 下图是设置PC1的网关: 测试网络连通性: 1.PC1可以与firewall互相ping通: 2.PC2可以与firewall互相ping通: 3.PC1与PC2无法互ping: (3)开启防火墙的路由转发 在firewall的命令行以管理员的身份输入echo 1 > /proc/sys/net/ipv4/ip_forward: (4)设置NAT规则 对公网来的访问数据设置DNAT规则,将其访问目标地址通过NAT修改为提供服务的ip,以便将请求转发到内网对应IP上: iptables -t nat -A PREROUTING -i ens38 -p tcp -d 192.168.241.128 --dport 80 -j DNAT --to-destination 192.168.43.23 设置一条SNAT的规则,以便内网对公网数据访问的回应信息能够到达请求的客户: iptables -t nat -A POSTROUTING -o ens38 -p tcp -j SNAT --to-source 192.168.241.128 在FORWARD链上设置允许访问内网的规则: iptables -A FORWARD -i ens38 -p tcp -d 192.168.43.23 --dport 80 -j ACCEPT iptables -A FORWARD -p tcp -m state --state established,related -j ACCEPT (5)启动PC1的nginx开启http服务: 在PC2上输入192.168.241.128,即firewall的ip: 可以看到启动PC1的http服务后,PC2可以通过使用防火墙公网IP访问内网服务。 (6)上面涉及到的SNAT、DNAT和iptables的原理分析 SNAT:开通内网机器的外网访问权限,是指在数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP,这样,接收方就认为数据包的来源是被替换的那个IP的主机,MASQUERADE是用发送数据的网卡上的IP来替换源IP,因此,对于那些IP不固定的场合,比如拨号网络或者通过dhcp分配IP的情况下,就得用MASQUERADE。 DNAT:发布内网服务,让外网能访问到,就是指数据包从网卡发送出去的时候,修改数据包中的目的IP,表现为如果你想访问A,可是因为网关做了DNAT,把所有访问A的数据包的目的IP全部修改为B,那么,你实际上访问的是B,因为路由是按照目的地址来选择的。因此,DNAT是在PREROUTING链上来进行的,而SNAT是在数据包发送出去的时候才进行,因此是在POSTROUTING链上进行的。 iptables:基于内核netfilter实现的,可以制定一些规则(rules)来对主机收到的数据包进行处理,规则其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的主要工作就是添加、修改和删除这些规则。 四、实验总结 通过本次实验,我学习了iptables防火墙的基本操作,熟悉了iptables防火墙的包过滤规则,并实现了一些实用的功能。另外,我动手配置了网络环境,开启防火墙路由转发并设置相应的iptables规则,以此实现内网服务的发布。这些体验都是在书本知识上感受不到的,正所谓“纸上得来终觉浅,绝知此事要躬行”。 同时,在进行实验的过程中,我也遇到了许多问题,在解决这些问题的过程中,我也收获了许多,学习到了很多。 有两个让我印象深刻的问题: 1.Win7虚拟机能够ping通ubuntu,但是ubuntu却ping不通Win7。通过查阅相关资料,我找到了解决方法:在Win7虚拟机的控制面板中点击“网络与Internet”,并进入“网络和共享中心”: 进入“更改高级共享设置”,启用网络发现、启用公用文件夹共享即可: 2.在给作为firewall的ubuntu增设网卡后,输入ifconfig查看ip时,ens33处不出现ip,如下所示: 解决方法:此时我的主机连接的是wifi,我把wifi关掉,然后主机连接手机的移动热点,再重启ubuntu,输入ifconfig,ens33处便能正常显示ip了。 最后,通过这次实验,我对网络安全这门技术有了更进一步的了解,也意识到维护网络安全任重而道远,需要我们持之以恒地学习和实践。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |