网络安全实验之《防火墙》实验报告

您所在的位置:网站首页 kali安装防火墙 网络安全实验之《防火墙》实验报告

网络安全实验之《防火墙》实验报告

#网络安全实验之《防火墙》实验报告| 来源: 网络整理| 查看: 265

一、实验目的

(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