Chinaunix首页 | 论坛 | 博客
  • 博客访问: 384192
  • 博文数量: 114
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1219
  • 用 户 组: 普通用户
  • 注册时间: 2015-02-07 21:23
文章分类

全部博文(114)

文章存档

2018年(1)

2017年(5)

2016年(87)

2015年(21)

我的朋友

分类: 网络与安全

2016-03-14 17:58:25


  1. PortSentry是入侵检测工具中配置最简单、效果最直接的工具之一。PortSentry是Abacus工程的一个组成部分。Abacus工程的目标是建立一个基于主机的网络入侵检测系统,可以从得到关于Abacus工程更为详细的信息。虽然PortSentry被Cisco收购后不再开发,
  2. 但丝毫不影响此软件的强大功能。PortSentry可以实时检测几乎所有类型的网络扫描,并对扫描行为做出反应。一旦发现可疑的行为,PortSentry可以采取如下一些特定措施来加强防范:
  3. 可对外界的扫描动作生成详细的日志记录,包括发起扫描的主机名,扫描时间,连接的tcp/udp端口等。
  4. 在linux操作系统下可捕捉SYN/half-open, FIN, NULL, X-MAS等诸多stealth扫描模式。
  5. 可有效捕捉非连续随机扫描,我们知道,很多防扫描软件不能辨别随机端口的扫描,portsentry不然,通过可记忆的内置引擎,即使扫描是随机的,portsentry也可以立刻辨别出来并迅速加以屏蔽。
  6. 可以与经典防火墙软件tcp_wrapper结合,将发起扫描的主机写入tcp_wrapper的hosts.deny文件中。
  7. 可根据设置自动将发起扫描的主机在路由上重指,屏蔽后续连接功能。使发起扫描的主机与系统丧失正常连接。
  8. 1.源码方式安装
  9. [root@Nagios ~]# tar zxf portsentry-1.2.tar.gz
  10. You have new mail in /var/spool/mail/root
  11. [root@Nagios ~]# cd portsentry_beta/
  12. [root@Nagios portsentry_beta]# sed -i '/Craig H. Rowland/N;s/\n//' portsentry.c
  13. [root@Nagios portsentry_beta]# make linux
  14. [root@Nagios portsentry_beta]# make install
  15. [root@Nagios portsentry_beta]# ln -s /usr/local/psionic/portsentry/portsentry /usr/local/sbin/
  16. 2.查看配置文件
  17. /usr/local/psionic/portsentry/portsentry.conf

  18. TCP_PORTS="1,11,15,79,111,119,143,540,635,1080,1524,2000,5742,6667,12345,12346,20034,27665,31337,32771,32772,32773,32774,40421,49724,54320" ####TCP模式监听的端口####
  19. UDP_PORTS="1,7,9,69,161,162,513,635,640,641,700,37444,34555,31335,32770,32771,32772,32773,32774,31337,54321" ####UDP模式监听的端口#####
  20. ADVANCED_PORTS_TCP="1024" ####调整TCP监听范围####
  21. ADVANCED_PORTS_UDP="1024" ####调整UDP监听范围####
  22. ADVANCED_EXCLUDE_TCP="113,139" ####TCP 端口排除范围###
  23. ADVANCED_EXCLUDE_UDP="520,138,137,67" ####UDP 端口排除范围###
  24. IGNORE_FILE="/usr/local/psionic/portsentry/portsentry.ignore" ###可信的扫描IP表吧####
  25. HISTORY_FILE="/usr/local/psionic/portsentry/portsentry.history" ###扫描的入侵主机历史记录###
  26. BLOCKED_FILE="/usr/local/psionic/portsentry/portsentry.blocked" ###被阻止连接的IP记录###
  27. RESOLVE_HOST = "1" ###配置是否解析,0表示不解析,建议0###
  28. BLOCK_UDP="1" ###0表示无动作,1送防火墙,2执行脚本,默认1###
  29. BLOCK_TCP="1" ###0表示无动作,1送防火墙,2执行脚本,默认1###
  30. KILL_HOSTS_DENY="ALL: $TARGET$" ###TCP warppers 阻止的写入方式 ###
  31. SCAN_TRIGGER="0" ###扫描触发几次触发执行操作###
  32. 3.设置路由重定向
  33. 通过配置文件,可以设置一条虚拟路由记录,把数据包重定向到一个未知的主机.使之无法获取信息。相应配置代码如下:

  34. Generic
  35. #KILL_ROUTE="/sbin/route add $TARGET$ 333.444.555.666"
  36. #Generic Linux
  37. KILL_ROUTE="/sbin/route add -host $TARGET$ gw 333.444.555.666
  38. 针对不同的平台有不同的路由命令,在配置文件中选择适台自己平台的命令即可。
  39. 4.我们还可以利用Linux中的iptables命令,可以切断攻击主机的连接:
  40. KILL_ROUTE="/usr/local/sbin/iptables -I INPUT -s $TARGET$ -j DROP"
  41. 也可以直接把攻击者的IP记录到/etc/hosts.deny文件中,利用TCP_Wrappers保护机制来防止攻击:默认就是TCP_wrappers来阻挡的
  42. KILL_HOSTS_DENY="ALL:$TARGET$ # Portsentry blocked

  1. 4.配置portsentry.ignore文件
  2. /usr/psionic/portsentry/portsentry.ignore文件中设置了希望PortSentry忽略的主机IP,即允许合法扫描的主机地址
  3. #Put hosts in here you never want blocked,This includes the IP addresses
  4. #of all local interfaces on the protected host(i.e virtual host,mult-home)
  5. #keep 127.0.0.1 and 0.0.0.0 to keep people from playing games.
  6. 127.0.0.1/32
  7. 0.0.0.0
  8. #Exclude all local interfaces
  9. 192.168.88.151
  10. 192.168.88.102
  11. 127.0.0.1

  12. 记得带上本机地址,以防万一。
  13. 修改完成后同样需要改变文件默认的权限:
  14.   
  15. chmod 600 /usr/local/psionic/portsentry/portsentry.ignore

  16. 5.启动检测模式

  17.   最后介绍一下PortSentry的启动检测模式。对应TCP和UDF两种协议方式,PortSentry分别有三种启动模式,即基本、秘密和高级秘密扫描检测模式,合计6个模式。

  18.   ◆ portsentry-tcp,TCP的基本端口绑定模式;

  19.   ◆ portsentry-udp,UDP的基本端口绑定模式;

  20.   ◆ portsentry-stcp,TCP的秘密扫描检测模式;

  21.   ◆ portsentry-sudp,UDP的秘密扫描检测模式;

  22.   ◆ portsentry-atcp,TCP的高级秘密扫描检测模式;

  23.   ◆ portsentry-audp,UDP的高级秘密扫描检测模式。

  24.   一般情况下,建议使用秘密扫描检测模式或高级秘密扫描检测模式。

  25.   使用高级秘密扫描检测模式(Advanced Stealth Scan Detection Mode),PortSentry会自动检查服务器上正在运行的端口, 然后把这些端口从配置文件中移去, 只监控其它的端口。这样会加快对端口扫描的反应速度,并且只占用很少的CPU时间,这种模式非常智能,我比较喜欢用

  26.   启动PortSentry的命令如下:
  27.  

  28. #/usr/local/psionic/portsentry/portsentry -atcp
  29.   可以把启动命令加到“/etc/rc.d/rc.local”脚本文件中,如果想让它和其它后台进程一样可以随时启动、停止并查看进程状态, 当重新启动计算机的时候PortSentry就会自动运行。

  30.   6.测试

  31.   先暂时清掉portsentry.ignore里的IP,在另一台机器上启动扫描命令nmap -sS 192.168.88.151。稍等片刻,就会发现/etc/hosts.deny里会出现ALL:192.168.88.150,证明此软件配置都是生效的。
  32. 查看日志发现:

  33. Mar 14 14:37:19 Nagios portsentry[22744]: attackalert: TCP SYN/Normal scan from host: 192.168.88.150/192.168.88.150 to TCP port: 1015
  34. Mar 14 14:37:19 Nagios portsentry[22744]: attackalert: Host: 192.168.88.150/192.168.88.150 is already blocked Ignoring
  35. Mar 14 14:37:19 Nagios portsentry[22744]: attackalert: TCP SYN/Normal scan from host: 192.168.88.150/192.168.88.150 to TCP port: 644
  36. Mar 14 14:37:19 Nagios portsentry[22744]: attackalert: Host: 192.168.88.150/192.168.88.150 is already blocked Ignoring
  37. Mar 14 14:37:19 Nagios portsentry[22744]: attackalert: TCP SYN/Normal scan from host: 192.168.88.150/192.168.88.150 to TCP port: 627
  38. Mar 14 14:37:19 Nagios portsentry[22744]: attackalert: Host: 192.168.88.150/192.168.88.150 is already blocked Ignoring





阅读(2628) | 评论(0) | 转发(0) |
0

上一篇:Linux vmstat命令详解

下一篇:tcpdump详细用法

给主人留下些什么吧!~~