满足反Nmap:PSAD(EnGarde Secure Linux)
(来自Linuxsecurity.com的Eckie S.)
端口扫描攻击检测器(psad)是用于检测各种类型的可疑流量的出色工具,包括来自诸如Nmap,DDoS攻击等流行工具的端口扫描,以及其他对您系统上的某些协议的强制执行。 通过分析防火墙日志,psad不仅可以接收某些攻击模式,还可以操纵防火墙规则,以正确响应可疑活动。
本文将介绍读者通过从最初的iptables规则设置到在服务器端部署psad的psad的EnGarde Secure Linux实现。 在文章结尾,用户将能够检测某些Nmap扫描,并通过阻止源代码对这些扫描进行psad响应。
先决条件
你会需要:
- 安装EnGarde Secure Community 3.0.18或更高版本的机器来完成您的开发工作。 这些命令不应该在生产服务器上运行,因为psad最终会拒绝远程扫描机的任何类型的访问!
- 与其上安装的Nmap相同的网络上的独立机器。 您将从该机器在服务器上运行某些扫描。
一旦您拥有以上所有内容,您可以以root身份登录,转换到sysadm_r,并禁用SELinux:
newrole -r sysadm_r
[psad_server]#newrole -r sysadm_r
验证根。
密码:
[psad_server]#setenforce 0
在整个HowTo中,服务器将被称为psad_server和Nmap扫描机,如nmap_scanner。
安装psad
由于其Guardian数字安全网络(GDSN),EnGarde Secure Linux使psad的安装变得轻而易举。 您可以通过命令行安装软件包:
apt-get install psad
...或登录到WebTool,并从包管理器界面下载包。
在psad_server上配置防火墙以记录数据包后,我们将介绍psad的设置:
iptables规则设置
由于iptables安装在EnGarde Secure Linux上,您只需运行两个简单的命令即可使用iptables开始记录数据包:
iptables -A INPUT -j LOG
iptables -A FORWARD -j LOG
从这里开始,传入的数据包(特别是Nmap扫描的数据包)将被记录。 看看我们是否可以通过设置psad来开始检测这样的扫描。
psad配置
在psad_server上,使用您喜欢的编辑器修改/etc/psad/psad.conf
文件。 我们对以下可调参数感兴趣:
电子邮件地址
主机名
SYSLOG_DAEMON
ETC_SYSLOGNG_CONF
EMAIL_ADDRESSES应该是希望让psad发送反馈的电子邮件地址。 此反馈包括错误消息和潜在的危险扫描警报,这取决于危险等级,可以根据您的需要进行微调。
- HOSTNAME可调参数将是psad_server机器的主机名。
- SYSLOG_DAEMON是指机器的日志守护进程。 对于EnGarde Secure Linux,应将其设置为“syslog-ng”。
- ETC_SYSLOGNG_CONF是指syslog-ng守护程序的配置文件的直接路径。 对于EnGarde Secure Linux,应将此设置为'/etc/syslog-ng.conf'。
- 一旦你正确地配置了这些可调参数,你可以启动psad守护进程:
/etc/init.d/psad start
[psad_server]#/etc/init.d/psad开始
[成功] psad守护进程
注意:
就危险级别而言,这些范围从1到5 <br />,并分配给检测到攻击或扫描的IP地址。 它们根据发送的数据包数量,端口范围,扫描的时间间隔,分组的签名是否与psad签名攻击相匹配,以及分组来自的IP地址进行分配。 根据这些数据包的数量,根据配置文件分配一个级别。 有关危险等级和想法的更多信息,请参阅文章末尾的资源。
psad - 主动检测
我们现在将使用psad来检测某些Nmap扫描。 在Nmap扫描机上,通过执行以下操作来运行TCP connect()扫描:
nmap -sT 1.2.3.4
用您的psad_server的IP地址替换1.2.3.4。
如果我们检查psad_server上的/ var / log / psad / fwdata文件,您将找到以下内容:
2月2日11:58:11 psad_server内核:IN = eth0 OUT =
MAC = 00:0c:29:78:22:73:00:0c:76:4b:f6:3e:08:00 SRC = 5.6.7.8
DST = 1.2.3.4 LEN = 60 TOS = 0x00 PREC = 0x00 TTL = 64 ID = 23609 DF PROTO = TCP
SPT = 49021 DPT = 113 WINDOW = 5840 RES = 0x00 SYN URGP = 0
我们可以看到SRC将具有nmap_scanner机器的IP地址,DST将具有psad_server的地址。 另请注意PROTO = TCP,显示攻击是TCP连接()扫描。
如果您以前配置了psad发送电子邮件警报,您将开始收到有关此扫描的电子邮件,显示出比这些日志消息可以产生的更多的数据。 /etc/psad/psad.conf文件中有配置可调参数限制甚至禁用电子邮件:
EMAIL_LIMIT
ALERTING_METHODS
EMAIL_ALERT_DANGER_LEVEL
EMAIL_LIMIT定义配置的用户将为给定的IP地址接收的最大电子邮件数。
ALERTING_METHODS可以设置为noemail,nosyslog和ALL,具体取决于您是否只需要syslog-ng消息,电子邮件警报或两者兼容。
EMAIL_ALERT_DANGER_LEVEL是为了使psad发送关于检测的电子邮件警报必须被击中的最低危险等级。 默认设置是一个,所以你可以期待大量的电子邮件本教程的目的。
这是一个示例电子邮件,显示以前的Nmap扫描的psad输出:
Subject: [psad-alert] DL2 src: nmap_scanner.yournetwork.com dst:
psad_server.yournetwork.com
Danger level: [2] (out of 5)
Scanned UDP ports: [32772: 1 packets, Nmap: -sU]
iptables chain: INPUT, 1 packets
Source: 5.6.7.8
DNS: nmap_scanner.yournetwork.com
OS guess: Linux (2.4.x kernel)
Destination: 1.2.3.4
DNS: psad_server.yournetwork.com
Overall scan start: Mon Feb 2 11:57:19 2008
Total email alerts: 2
Complete TCP range: [64-49400]
Complete UDP range: [32772]
Syslog hostname: unknown
Global stats: chain: interface: TCP: UDP: ICMP:
INPUT eth0 40 1 0
[+] TCP scan signatures:
"P2P Napster Client Data communication attempt"
dst port: 5555 (no server bound to local port)
flags: SYN
sid: 564
chain: INPUT
packets: 1
classtype: policy-violation
正如你所看到的,psad做了一个很好的工作,从日志中分组数据,分析它,并产生有关使用的扫描类型的有用信息。
psad - 主动防御
psad的更突出的功能之一是其主动防御实现 - 能够检测Nmap扫描是好的,但是如何回应? 让我们配置psad,以便在检测到时自动阻止这种扫描的来源。
在实施此功能之前,对于阅读本文的某些安全退伍军人来说,显然有一个明确的权衡来执行积极的应对策略。 虽然恶意流量将被阻止,但是总是存在阻止有效流量的风险。 某些攻击者可以通过尝试欺骗有效的地址来利用主动防御并将其与目标对抗,从而阻止其他无害的流量。
这仅在活动响应系统配置为响应几乎所有类型的潜在有害流量(包括端口扫描或端口扫描)的情况下才会发生。 这也适用于不需要与目标进行双向通信的流量。 一个更好的策略是仅应对需要双向通信的流量,即TCP连接。 即使这样,人们也必须小心地对某些类型的TCP连接进行定制,例如尝试的SQL注入攻击等。请确保在部署主动防御之前,您对检测方案的工作方式是绝对肯定的。
使用您喜欢的编辑器,修改/etc/psad/psad.conf文件。 我们对以下可调参数感兴趣:
ENABLE_AUTO_IDS
AUTO_IDS_DANGER_LEVEL
ENABLE_AUTO_IDS应设置为“Y”以启用自动IDS响应。
AUTO_IDS_DANGER_LEVEL,为了这个方法,将被设置为'3'。 这个危险等级是可定制的,我们在此HowTo中使用的设置仅用于演示目的。
重新启动psad_server上的psad:
/etc/init.d/psad restart
[psad_server]#/etc/init.d/psad重新启动
[SUCCESSFUL] psadwatchd守护进程
[成功] psad守护进程
[SUCCESSFUL] kmsgsd守护进程
[成功] psad守护进程
从nmap_scanner机器,我们将运行一个Nmap SYN扫描连同'-P0'开关 - 这种类型的扫描不使用ping,并没有完全完成TCP连接,导致快速扫描。 这通常需要root权限,并且被认为是更危险的扫描 - 只是psad在较高危险级别检测到的扫描类型。
nmap -sS -P0 -n 1.2.3.4
将“1.2.3.4”替换为您的psad_server机器的IP地址。
psad将检测到SYN扫描,并且由于此扫描的危险级别为3,因此它会操作iptables规则来阻止扫描的来源。 这可以通过运行以下命令在psad_server上进行验证:
psad --fw-list
[psad_server]#psad --fw-list
[+]来自IPT_AUTO_CHAIN关键字的列表链
链PSAD_BLOCK_INPUT(1参考)
pkts字节目标保留选择输出源目的地
820 36080 DROP全部 - * * 5.6.7.8 0.0.0.0/0
链PSAD_BLOCK_OUTPUT(1参考)
pkts字节目标保留选择输出源目的地
0 0 DROP all - * * 0.0.0.0/0 5.6.7.8
链PSAD_BLOCK_FORWARD(1参考)
pkts字节目标保留选择输出源目的地
0 0 DROP all - * * 0.0.0.0/0 5.6.7.8
0 0 DROP全部 - * * 5.6.7.8 0.0.0.0/0
您甚至会收到一封电子邮件提醒,通知您扫描检测,以及一封电子邮件通知您已添加iptables规则以自动阻止nmap_scanner!
把它全部包起来
恭喜,您已成功实施psad,以主动检测和响应签名的Nmap扫描!
请记住,这是psad更为基本的设置之一。 您可以进一步调整危险等级,以适应偏执狂程度,将psad放入取证模式,将软件与DShield合并,甚至手动使用psad来操纵iptables规则。 psad研究的一个很好的资源是Michael Rash的“Linux防火墙”。 皮疹包括psad的几个章节,不仅涵盖了理论,而且从头到尾完成了psad的高级执行。 如果您希望通过psad获得高级,微调的主动防御设置的建议,请务必查看此书!
有乐趣为那些试图扫描您的系统的人实施主动防御!
资源
http://www.linuxsecurity.comhttp://www.guardiandigital.com
“Michael Rash的”Linux防火墙“