20211921 李楚涵 第五次
基础知识
** iptable**
iptables命令介绍
iptables:administration tool for IPv4/IPv6 packet filtering and NAT
1)简介:Linux的2.4版内核引入了一种全新的包处理引擎Netfilter,同时还有一个管理它的命令行工具iptables。iptables用于建立、维护和检查Linux内核中IPv4包过滤规则的表。
2)结构层次:iptables - 表table - 链chain(内建或自定义) - 规则(目标target子句等)。
iptables对网络上的数据包有次序地施加规则“链”。链的集合就构成了表,用于处理特定类型的流量。
默认的iptables表为filter(过滤器)。它包含3个默认链:FORWARD、INPUT和OUTPUT,内核处理的每个包都要经过3个链中的某一个。FORWARD链里的规则用于在一个网络接口收到的、而且需要转发到另一个网络接口的所有包。INPUT和OUTPUT链里的规则分别用于目的是本地主机,或者从本地主机发出的流量。
nat表包含的规则链控制着NAT(网络地址转换)。另外,还有mangle、raw和security表,这里不详述。
构成一条链的每条规则都有一个“target(目标)”子句,它决定了如何处理匹配的包。一旦某个包匹配了一条规则,那么它的结局就确定了,不再用其他规则来检查它。虽然iptables内部定义了许多target,但还是可以指定另一条链作为规则的target。在filter表中的规则可以使用的target子句有ACCEPT(包可以继续通过)、DROP(默默地丢弃包)和REJECT(把包丢弃并返回一则ICMP错误消息)等。
iptable命令参数详解:
查看状态:iptables -L
iptables 参数选项:
-t<表>:指定要操纵的表;
-A:向规则链中添加条目;
-D:从规则链中删除条目;
-i:向规则链中插入条目;
-R:替换规则链中的条目;
-L:显示规则链中已有的条目;
-F:清楚规则链中已有的条目;
-Z:清空规则链中的数据包计算器和字节计数器;
-N:创建新的用户自定义规则链;
-P:定义规则链中的默认目标;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型;
-s:指定要匹配的数据包源ip地址;
-j<目标>:指定要跳转的目标;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。
snort
简介:Snort是一个强大的网络入侵检测系统。它具有实时数据流量分析和记录IP网络数据包的能力,能够进行协议分析,对网络数据包内容进行搜索/匹配,可以检测各种不同的攻击方式,对攻击进行实时报警等。
四大模块:数据包嗅探模块、预处理模块(用相应的插件来检查原始数据包)、检测模块(检测引擎依据预先设置的规则检查数据包)、报警/日志模块(经检测引擎检查后的Snort数据输出)。
三种工作模式:嗅探模式(从网络上读取数据包,常用命令snort -dev)、数据包记录模式(把数据包记录到硬盘上,常用命令snort -b)、网络入侵检测模式(载入规则库才能工作,Snort并不记录所有捕获的包,而是将包与规则对比,仅当包与某个规则匹配的时候,才会记录日志或产生报警)。
一、防火墙配置
任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问
*实验环境
kali(A)(IP:192.168.200.4)、Unbuntu(B)(IP:192.168.200.3)、WinXPattacker(C)(IP:192.168.200.2)
1.用linux配置
在主机B上,首先使用命令iptables -V
,如果显示出版本号表示已经安装,如果没有,运行apt-get install iptables
。
使用命令sudo iptables -L
查看当前防火墙配置信息,对iptables的操作都必须有root权限。
使用命令iptables -A INPUT -p icmp -j DROP
添加规则,然后查看当前防火墙配置信息,添加成功。
在主机A上,使用命令ping 192.168.200.3
,发现没办法ping通。
在主机B上,使用命令iptables -F
删除自定义规则,在主机A上,再次使用命令ping 192.168.200.3
,发现ping通了。
接下来开始第二问。首先通过命令iptables -P INPUT DROP
禁止所有的input数据包
接下来通过iptables -A INPUT -p tcp -s 192.168.200.4 -j ACCEPT
允许tcp数据包连接
2.用windows配置
打开Kali ping WinXP,测试可以ping通
打开WinXP,点击开始--控制面板--Windows安全中心--Windows防火墙--还原为默认值(还原为默认值后ICMP的设置里允许传入回显请求会被自动取消勾选)
打开Kali ping WinXP,发现ping不通了
只允许特定IP地址(如局域网中的Linux攻击机,访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问。
首先确保kali和Ubuntu可以正常telnet WinXP,但是输入之后发现不能正常telnet WinXP
为了使得kali可以正常telnet WinXP,在WinXP点击开始--运行打开cmd,输入services.msc
,跳出服务界面,找到Telnet,发现目前状态是已禁止,我们需要右键--属性,修改启动类型为自动或者手动
然后,再回到列表的Telnet,右键--启动
在cmd输入net start telnet
,也显示已启动,表明启动成功
开始--控制面板--Windows防火墙--高级--网络连接设置--勾选Telnet服务器
再回到kali和Ubuntu就可以正常telnet WinXP
下面再WinXP设置IP安全策略来限制固定IP(kali的IP)访问。
创建安全策略:控制面板--管理工具--本地安全策略--IP安全策略右键--创建IP安全策略,进入设置向导,设置IP安全策略名称为“限制固定IP远程访问”,在警告提示框选择“是”,其他均保持默认点击下一步
结果如下,创建了一个IP筛选器
添加阻止特定IP访问的筛选器。
点击添加--进入安全规则向导--一直保持默认设置点击下一步--遇到警告点击“是”
点击添加--自定义IP筛选器名称为“阻止特定IP远程访问”--添加--进入安全规则向导。点击下一步--源地址选择“一个特定的IP地址(Kali:192.168.200.4)”--下一步--目标地址选择“我的IP地址”--选择协议类型“TCP”--下一步--设置IP协议端口“从任意端口”“到此端口(输入23)”--下一步--完成。完成后,会在IP筛选列表看到添加的信息。
配置IP筛选器阻止的动作:在点确定后--选择配置的“阻止所有IP远程访问”,点击下一步
点击添加--选择阻止--确定,得到下图“限制固定IP远程访问”
添加允许特定IP访问的筛选器(跟添加阻止特定IP访问的筛选器步骤一样)
继续点击添加--点击添加--进入安全规则向导--一直保持默认设置点击下一步--遇到警告点击“是”
点击添加--自定义IP筛选器名称为“允许特定IP远程访问”--添加--进入安全规则向导。点击下一步--源地址选择“一个特定的IP地址(Ubuntu:192.168.200.3)”--下一步--目标地址选择“我的IP地址”--选择协议类型“TCP”--下一步--设置IP协议端口“从任意端口”“到此端口(输入23)”--下一步--完成。完成后,会在IP筛选列表看到添加的信息
配置IP筛选器允许的动作:在点确定后--选择配置的“允许所有IP远程访问”
点击添加--选择允许--确定,得到下图“新筛选操作”,代表的是允许
然后选中“新筛选操作”,点击下一步--完成
应用我们刚刚配置的两个IP安全规则(允许特定IP远程访问和阻止特定IP远程访问)
指派此安全规则:右键“限制固定IP远程访问”——选择“指派”
这样被阻止访问WinXP的Kali去telnet靶机WinXP,发现一直处于trying状态,而被允许访问WinXP的Ubuntu去telnet靶机WinXP发现可以连通
二、动手实践:Snort
使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在云班课中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)
在kali中运行snort -r /home/kali/Desktop/listen.pcap -c /etc/snort/snort.conf -K ascii
,可以看到检测到的数据包信息,有TCP,ARP,主要是TCP
运行命令vim /var/log/snort/snort.alert.fast
打开文件,可以发现这个攻击是nmap发起的,当然还有很多其他的信息:源地址、目的地址等。可以从中找到SCAN nmap XMAS的关于nmap的报警信息。
三、分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
vim /etc/init.d/rc.firewall
查看防火墙文件
发现蜜罐系统识别的协议:TCP、UDP、ICMP、其他。在对数据控制时,要对各协议设置单位时间内发送包的上限,对于超出发送上限包的方式处理有三种:Drop、Reject和Replace。
获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数。
使用命令iptables -t filter -L
来查看规则列表,-t是指定规则表,-L表示列表。(其实,我们可以省略-t filter,当没有使用-t选项指定表时,默认为操作filter表,即iptables -L表示列出filter表中的所有规则)
防火墙、NIDS、NIPS启动:运行命令chkconfig --list|grep [服务]
。这里我们通过查找相关的服务,可以看到防火墙和NIDS是开机启动的,并通过上述分析的相关脚本的自动运行试试配置。
snort规则是如何自动升级的?
默认是不自动更新的,但其有自动更新的软件Oinkmaster。使用vim /etc/honeywall.conf
,打开honeywall配置文件,找到update variables,可以看到其值为no,即不自动更新。还可以看到Oinkmaster,这是个自动更新的软件,利用Oinkmaster进行升级。
四、学习中遇到的问题及解决
问题1:在centos 中输入【iptables -t filter -L】后显示 command not found
问题1解决方案:在百度搜索问题,找到相关解决方案。https://blog.csdn.net/cateatapple/article/details/51849106?>
五、实践总结
此次实验好难,相关的步骤也很多。累爆……不过好在都解决了