20199103 2019-2020-2 《网络攻防实践》第六周作业
1.实践内容
防火墙
防火墙指的是在不同网络之间,对流量和访问进行控制的安全组件和设备。
防火墙的功能
-
检查控制进出网络的网络流量:这是防火墙的一个最基本的功能。检查数据包的包头、协议,然后根据管理员设定的要求,来放行流量或者直接拒绝。
-
防止脆弱或不安全的协议和服务:防火墙可以通过禁止一些不安全的协议通过,来保护内部网络。管理员也可以在服务器上关闭不安全的服务和禁止不安全的协议的报文来达到相同的目的。
-
防止内部信息泄露:防火墙可以屏蔽某些内部细节,来防止有关安全的线索被攻击者获取。
-
对网络存取和访问进行监控审计:防火墙可以记录下所有通过它的访问,并形成日志以供查阅。如果有可以的访问,防火墙也可以报警。
-
强化网络安全策略并集成其他安全防御机制:可以将很多安全机制配置在防火墙上。
防火墙的先天不足
-
无法防护来自内部的危险:防火墙只能对内、外部之间的通信进行防护。内部的危险防火墙无能为力。
-
通过非法外联的网络攻击:如果内部人员私自接入外部网络,防火墙无法阻止,也无法监视。
-
非网络形式的病毒传播:网络形式的病毒,防火墙可以检测和防范,但是通过磁盘、u盘等方式传播的病毒,防火墙无能为力。
防火墙技术不足
-
针对开放服务的漏洞的攻击:内部网络总是需要对外部开放一些服务,而这些服务上的安全漏洞,番防火墙通常无法区分。
-
基于隐蔽通道进行通信的木马或僵尸网络:防火墙很难从大量的网络流量中对其进行识别。
防火墙技术
-
包过滤:通过对每个数据包的包头信息检查来确定是否应该接受数据包。
-
动态包过滤:通过防火墙的网络连接的记录,了确定某个数据包是属于一个新建连接,还是一个某个已经连里的连接的一部分。不仅会检查数据包,还会检查数据包再网络连接中的上下文。
-
代理技术:让主机和另一个网络进行间接的连接。首先先和一个代理服务器建立连接,然后向代理服务器发出一个其他服务器的连接请求,代理服务器就会和该服务器建立连接、去的资源,然后发送给主机。具体有:应用层代理技术,针对某一个具体的网络服务而提供的代理技术;电路级代理技术,同时对多个不同的网络服务提供服务的代理技术;NET代理技术,允许多个用户共同使用一个IP地址。
防火墙产品
-
集成包过滤功能的路由器
-
基于操作系统的软件
-
基于安全操作系统的防火墙:防火墙厂商会自行研发一些安全专用的操作系统。
防火墙部署方法
-
包过滤路由器:将带有包过滤防火墙功能的路由器安装在内部网络和外部网络的唯一连接点上。
-
双宿主堡垒主机:与包过滤路由器的部署方法类似,但是用堡垒主机来代替包过滤路由器。
-
屏蔽主机:相当于包过滤路由器和堡垒主机的集成,所有的访问数据都要经过两者。
-
屏蔽子网:在屏蔽主机模式的基础上,在内部主机之前又加了第二个包过滤防火墙。
netfilter/iptables
-
工作原理iptables中有三个基本规则表:处理包过滤的filter、网络地址转换nat、特殊目的包修改的mangle。filter包含INPUT、OUTPUT、FORWARD三条规则链。分别是发往本地、本地发出、经过本主机的转发的数据包处理的规则。nat表有PREROUTING、POSTROUTING、OUTPUT三条规则链。分别是:对未经路由选择的数据包转换IP地址和目标端口、对已经经过陆幽轩的数据包进行转换IP地址和目标端口,OUTPUT规则链的本地数据包的IP地址和端口转换。
-
iptables的命令的语法为:
iptables -t [table] command [match] [target]
。-t指定规则所在的表,缺省表包括gilter、nat、mangle、raw(在我网上找的例子之中都没有填,直接使用缺省)。cammand就是告诉iptables要做什么,比如-A
就是在链表之后插入规则。match则是规则,满足规则的数据包才会被采取措施。target是满足规则之后要做什么,比如放行数据包ACCEPT
。具体详细命令用法就不赘述了,有点多。
netfilter/iptables的NAT机制
-
IP伪装:在内部网络使用私有IP,而通过防火墙可以绑定一个外部IP,对数据包进行源IP伪装。
-
SNAT机制:SNAT记住可以按照用户制定的规则,将源IP灵活的变成各种IP,IP伪装是一种SNAT机制。值得注意,SNAT机制需要在POSTOUTING链中完成,这样才能让路由、包过滤在源IP改变之前做完。
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.254.2
的意思是将发出的源IP改为192.168.254.2。 -
DNAT机制:DNAT在PREROUTING链中完成,需要用到
-i
.iptables -t nat -A PEROUTING -i eth1 -j DNAT --to 192.168.254.128
将目的地址转换为192.168.254.128.
入侵检测
2.实践过程
过滤ICMP数据包,使主机不接受ping包
-
首先先尝试一下正常状态可以不可以ping通
-
可以看到,能ping通。
-
然后执行
iptables -A INPUT -p icmp -j DROP
,意思是在INPUT链条中添加规则,所有icmp的数据报全部丢弃。 -
然后再执行ping
-
现在已经ping不通了。
-
保险起见,我又把添加的规则删除了
iptables -D INPUT -p icmp -j DROP
-
现在可以看到,又能ping了
只允许特定IP地址访问服务,其他的不行。
-
首先先测试一下最初能不能使用telnet
-
一开始是可以的。
-
然后在被访问的机器运行命令
iptables -P INPUT DROP
意思是满足指定规则的数据报全部丢掉
-
这时telnet已经连接不上了
-
然后添加一条规则
iptables -A INPUT -p tcp -s 192.168.254.128 -j ACCEPT
.接受来自192.168.254.128(kali)的数据包。
-
然后再次telnet连接
-
现在kali是可以的
-
然后再切换winxp试一试
-
xp是不行的。
-
依旧保险起见,先
iptables -D INPUT -p tcp -s 192.168.254.128 -j ACCEPT
删除命令,然后iptables -P INPUT ACCEPT
把没有规定的数据包都接收(这一条不是新加命令无法删除,我也不知道最初是不是所有的没规定的都接受)
3.学习中遇到的问题及解决
- 问题1:XXXXXX
- 问题1解决方案:XXXXXX
- 问题2:XXXXXX
- 问题2解决方案:XXXXXX - ...
4.实践总结
xxx xxx