linux–使用portsentry保护你的电脑(2)

技术分享 Story 121浏览 0评论
摘要

linux–使用portsentry保护你的电脑

3,配置portsentry

可以通过更改/etc/portsentry/portsentry.conf来改变portsentry的运行的方式.可以选择监视

哪个端口,用哪个模式监视,以及检测到扫描后的响应方式,这些响应包括:
@阻塞远程主机的访问
@将从远程主机发来的信息重新路由到没响应的主机
@添加防火墙规则来拒绝远程主机发来的包
/etc/protsentry/portsentry.modes这个文件只包括能运行的模式
更改这些文件,必须作为根用户编辑
1) 选择端口
文件protsentry.conf定义了在basic和stealth模式下哪些端口被监视.默认条件下,只有基本的TCP和UDP模式是被激活遏,所以,只有这些端口被监视,TCP_PORTS和UDP_PORTS选项定义了一些被监视的端口:
grep -E '^TCP_PORTS|^UDP_PORTS' portsentry.conf
用grep来察看
linux中的网络服务从/etc/services中得到分配的端口号.因此,通常我们可以检查/etc/services来找到指定给被扫描端口的大多数服务
选择要监视的端口基于两个不同的标准,选择低端口号来捕获在端口1开始的以及对几百个端口扫描的扫描器,如果扫描器在访问完端口1后被阻塞,那么它就不可能得到本地主机上可能开着的其它端口信息.
另外一个标准是包括被入侵者特殊的检查端口,因为那些服务最容易被攻击,它们包括ststat和netstat服务如果担心被攻击,想要覆盖更多的端口,会希望增加端口到portsentry.conf的列表中.如果从basic到stealth扫描,被监视的端口是被ADVANCED_PORTS_TCP和ADVANCED_PORTS_UDP选项定义的那些.见默认状态设置:
ADVANCED_PORTS_TCP="1023"
ADVANCED_PORTS_UDP="1023"
这表明,1~1023的所有端口将被监视.
监视高端口号会引起更多的误报,可以通过
ADVANCED_EXCLUDE_TCP="111,113,139"
ADVABCED_EXCLUDE_UDP="520,138,137,67"
排除出错的端口
默认情况,使用TCP(111,113,139)的ident和NetBIOS服务以及UDP(520,138,137,67)的route,NetBIOS和Bootp服务将被排除在高级扫描之外

2)确定配制文件

除了protsentry.conf,portsentry还提供了一些其它的配置文件,我们可以在portsentry.conf中找到这些文件的位置:
#
# Hosts to ignore
IGNORE_FILE="/etc/portsentry/portsentry.ignore"
# Hosts that have been denied (running history)
HISTORY_FILE="/etc/portsentry/portsentry.history"
# Hosts that have been denied this session only (temporary until next restart)
BLOCKED_FILE="/etc/portsentry/portsentry.blocked"
#
/etc/portsentry/portsentry.ignore:包括了不想阻塞的所有IP地址的列表,默认是分配给本地主机的所有IP地址都被添加到此文件
/etc/portsentry/portsentry.history:此文件曾经访问你的主机而被阻塞的所有IP地址的列表
/etc/portsentry/portsentry.blocked.*:此文件包括当前访问你的主机而被阻塞的所有主机IP的列表
portsentry.blocked.tcp:文件包括不恰当扫描TCP端口的主机IP地址
portsentry.blocked.udp:文件包括不恰当扫描UDP端口的主机的IP地址
访问本地主机的端口只会在当前会话中被阻塞,也就是说,知道系统reboot或者portsentryRELOAD,因此,要永久的排斥这些远程主机,就需要引入一些其它的限制措施,例如,使用/etc/hosts.deny文件,防火墙规则或者重路由等

3)选择响应方式
扫描端口,就象敲房子的门,检查是否上锁一样,大多数情况下,这表明有人在寻找你的系统的弱点,这就是为什么当另外一个主机扫描你的端口,portsentry的反应是阻塞他进一步的访问的原因!不过,没有永久阻塞访问的行为.在portsetnry.conf文件中,BLOCK_UDP和BLOCK_TCP选项设置端口被扫描时采取的自动响应方式:
BLOCK_UDP="2"
BLOCK_TCP="2"
引号里的数字绝顶了另外的主机扫描你的端口时portsentry的反应!
@"0"表示扫描端口会被记录日志,但是并不阻塞
@"1"表示触发KILL_ROUTE和KILL_HOSTS_DENY的运行.
@"2"表示对扫描协议服务(TCP或UDP)的访问被临时阻塞并被记录,而且,如果KILL_RUN_CMD选项运行任何命令,则该命令被执行(2是默认选项)
@KILL_ROUTE:这个选项运行/sbin/route命令对远程主机到一个无响应的主机的请求重路由:
KILL_ROUTE="/sbin/route add -host $TARGET$ gw 333.444.555.666"
也可以用iptables规则拒绝访问
@HILL_HOSTS_DENY:这个选项用来拒绝对任何TCP包封保护的网络服务的请求:
KILL_HOSTS_DENY="ALL: $TARGETtiny_mce_markerquot;
用入侵者的IP代替$TARGET$变量,并且将所说的行加入到/etc/sysconfig/iptables里
如果远程主机的IP是1.2.3.4,那么在/etc/hots.deny中应该是这样的:
ALL:1.2.3.4

@KILL_RUN_CMD:不是用防火墙,重路由,或者TCP封装拒绝远程主机的访问,而是用你喜欢的命令来响应.将BLOCK_TCP和BLOCK_UDP选项的值设定是2,运行KILL_RUN_CMD的值响应对监视端口的扫描.如:
KILL_RUN_CMD="/path/script $TARGET$ $PORTtiny_mce_markerquot;
记住:不要用KILL_RUN_CMD报复扫描你的主机,因为很有可能扫描你的主机本身自己也被攻击,还有,报复,只能刺激入侵者下一步的攻击!
@PORT_BANNER:可以发送信息给通过设置PORT_BANNER选项关闭portsentry监视的人,默认是没有信息被定义的.然而,可以去掉下面的注释使用该信息(不要滥用信息):
PORT_BANNER="** UNAUTHORIZED ACCESS PROHIBITED ** YOUR CONNECTION ATTEMPT HASBEEN LOGGED. GO AWAY."
在关闭上面描述的响应前,

$False$

可以使用SCAN_TRIGGER选项来设置portsentry将接收的入侵主机的扫描号,默认设置如下:
SCAN_TRIGGER="0"
"0"意味着不接受任何入侵系统的扫描.
continue....

4,更改protsentry.modes文件

/etc/protsentry/portsentry.modes文件定义了在启动时,portsentry命令运行的模式.下面的是默认条件所显示的:
tcp
udp
#stcp
#sudp
#atcp
#audp

tcp和udp分别是protsentry进行TCP和UDP服务的基本模式,其它可选选项包括stcp(stealth TCP),atcp(advanced stealth TCP),sudp(sealth UDP),和audp(advanced stealth UDP).只运行一个TCP和一个UDP服务TCP,因此,要使用stealth或者advancedstelth服务,确保在相应的basic服务前面加上一个#号要激活新的服务,运行:
/etc/init.d/portsentry restart 或者:
service portsentry restart
新的模式立即生效,当系统重启后,新的模式仍然有效.

5,测试portsentry
可以测试端口是否被用不同的方式正确保护.你需要做的是运行潜在的入侵者会运行的一个程序,看是否会引起portsentry的正确的反应例如用端口扫描程序来看端口是否暴露在外面,也可以用命令,像telnet引发一个特殊的端口,看是否portsentry能抓住它常用的端口扫描程序是nmap,它扫描tcp/udp端口,给nmap一个IP或者主机地址,它就会扫描此主机的大约1500个端口,检查哪个端口是打开的,并且推测提供了哪些可以被攻击的服务.
例如:
1),先关闭portsentry
service protsentry stop
2)用nmap扫描
nmap -sS -O 127.0.0.1
nmap -sU -O 127.0.0.1
输出显示了本地主机上哪些端口目前分别提供的TCP和UDP服务
3)如果有你不想打开的服务,可以通过使用chkconfig servicename
off来关闭.通过编辑/etc/xinetd.d目录下的文件,以及将disable=no更改为yes或者改变防火墙规则.
4)如果你想使来自你的主机的服务可用,要使相应的端口不被portsentry监视.从/etc/portsentry/portsentry.conf文件中的TCP_PORT和/或UDP_PORT选项删除该端口号.
5)从新启动:
service protsentry start
6)如前,再次运行nmap,提供合法服务的端口,以及被portsentry监视的端口,全部显示
7)检查/var/log/messages文件以确保portsentry没有试图监视任何正在提供服务的端口.
这样,当确定了portsentry建立了所希望的方式后,在网络的另外一个主机运行nmap来扫描本地主机,如果运行正常的花,远程主机扫描你的主机的第一个端口,将阻塞所有随后的扫描.
> 6,跟踪portsentry入侵
除了对入侵者采取行动之外,portsentry还实用syslog记录他的活动.portsentry启动/关闭/扫描检测等活动都被记录/var/log/messages文件
*****over****
附:protsentry软件包
portsentry-1.1-fr8.i386.rpm

转载请注明:成长的对话 » linux–使用portsentry保护你的电脑(2)