防恶意扫描 PortSentry保护Linux服务器
在遭遇Linux服务器被外部IP恶意扫描端口的时候,一般系统管理员会部署一些防入侵的环境,比如snort,不过snort部署起来比较复杂,而有时候我们只是需要防止恶意扫描而已。这个时候,可以用PortSentry这个工具来进行非常简单的实现。虽然PortSentry被Cisco收购后不再开发,但丝毫不影响此软件的强大功能。
我在检查一台CentOS5.5服务器的安全环境时,发现很多IP在恶意扫描此服务器的端口。本来想部署snort防入侵环境的,后来发现snort环境部署非常复杂,而以上的恶意扫描完全可以用PortSentry来实现。PortSentry是入侵检测工具中配置最简单、效果最直接的工具之一。PortSentry是Abacus工程的一个组成部分。Abacus工程的目标是建立一个基于主机的网络入侵检测系统,可以从http://www.psonic.com得到关于Abacus工程更为详细的信息。虽然PortSentry被Cisco收购后不再开发,但丝毫不影响此软件的强大功能。PortSentry可以实时检测几乎所有类型的网络扫描,并对扫描行为做出反应。一旦发现可疑的行为,PortSentry可以采取如下一些特定措施来加强防范: ◆给出虚假的路由信息,把所有的信息流都重定向到一个不存在的主机; ◆自动将对服务器进行端口扫描的主机加到TCP-Wrappers的/etc/hosts.deny文件中去,我个人比较喜欢这种方式,因为线上许多环境并非都能打开iptables,这个选项也是PortSentry默认的功能; ◆利用Netfilter机制,用包过滤程序,比如iptables和ipchain等,把所有非法数据包(来自对服务器进行端口扫描的主机)都过滤掉; ◆通过syslog()函数给出一个目志消息,甚至可以返回给扫描者一段警告信息。 一、PortSentry的安装 下面详细介绍PortSentry工具的安装和配置方法。 1.从http://sourceforge.net/projects/sentrytools/下载软件的最新版portsentry-1.2.tar.gz,用root用户执行如下命令进行安装: #tarzxvfportsentry-1.2.tar.gz #cdportsentry-1.2_beta #make #makeinstall 进行到这步时发现报错,系统生成不了protsentry执行文件,我们查看Makefile文件时发现,make后面根据操作系统的不同有许多选项。 所以我们重新执行此步操作,将目录删除重新解压缩 然后我们执行makelinux,发现系统仍然报错,如下: SYSTYPE=linux Making./portsentry.c:1585:error:missingterminating"character ./portsentry.c:1595:error:expected?.?.before?.?.token make:***[linux]Error1解决方法: 我们打开portsentry.c文件,在1590行左右,我们将带有Copyright1997-2003字样的那行调整为一行即可,文字有白线标记的那行代码应调整为一行 调整后我们再执行makelinux&&makeinstall后,PortSentry顺利安装成功,其安装路径为/usr/local/psionic/portsentry,如下所示表示成功安装此软件: Edit/usr/local/psionic/portsentry/portsentry.confandchange yoursettingsifyouhaven'talready.(route,etc) WARNING:Thisversionandabovenowuseanew directorystructureforstoringtheprogram andconfigfiles(/usr/local/psionic/portsentry)。 Pleasemakesureyoudeletetheoldfileswhen thetestingofthisinstalliscomplete. cc-O-Wall-DLINUX-DSUPPORT_STEALTH-o./portsentry./portsentry.c\ ./portsentry_io.c./portsentry_util.c ./portsentry.c:Infunction?.ortSentryModeTCP?. ./portsentry.c:1187:warning:pointertargetsinpassingargument3of?.ccept?.differinsignedness ./portsentry.c:Infunction?.ortSentryModeUDP?. ./portsentry.c:1384:warning:pointertargetsinpassingargument6of?.ecvfrom?.differinsignedness ./portsentry.c:Infunction?.sage?. ./portsentry.c:1584:error:missingterminating"character ./portsentry.c:1585:error:?.ourceforget?.undeclared(firstuseinthisfunction) ./portsentry.c:1585:error:(Eachundeclaredidentifierisreportedonlyonce ./portsentry.c:1585:error:foreachfunctionitappearsin.) ./portsentry.c:1585:error:expected?.?.before?.ot? ./portsentry.c:1585:error:stray?.?.inprogram 二、PortSentry的配置 1.修改配置文件portsentry.conf 通过PortSentry进行入侵检测,首先需要为它定制一份需要监视的端口清单,以及相应的阻止对策。然后启动后台进程对这些端口进行检测,一旦发现有人扫描这些端口,就启动相应的对策进行阻拦。 (1)设置端口清单 下面给出portsentry.conf中关于端口的默认配置情况: #Un-commenttheseifyouarereallyanal; #TCP_PORTS="1,7,9,11,15,70,79,80,109,110,111,119,138,139,143,512,513,514,515,540,636,1080,1424,2000,2001,[] #UDP_PORTS="1,7,9,66,67,68,69,111,137,138,161,162,474,513,517,518,635,640,641,666,700,2049,31335,27444,34555,[] #Usetheseifyoujustwanttobeaware: TCP_PORTS="1,11,15,79,111,119,143,540,635,1080,1524,2000,5742,6667,12345,12346,20034,27665,31337,32771,32772,[] UDP_PORTS="1,7,9,69,161,162,513,635,640,641,700,37444,34555,31335,32770,32771,32772,32773,32774,31337,54321" #Usetheseforjusebare-bones #TCP_PORTS="1,11,15,110,111,143,540,635,180,1524,2000,12345,12346,20034,32771,32772,32773,32774,49724,54320" #UDP_PORTS="1,7,9,69,161,162,513,640,700,32770,32771,32772,32773,32774,31337,54321"顶(0)
踩(0)
下一篇:linux基本安全配置设置脚本
- 最新评论
