防止恶意扫描 用PortSentry保护Linux服务器

发表于:2011-6-10 10:00

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:抚琴煮酒    来源:51Testing软件测试网采编

  我在检查一台CentOS 5.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用户执行如下命令进行安装:

#tar zxvf portsentry-1.2.tar.gz
#cd portsentry-1.2_beta
#make
#make install

  进行到这步时发现报错,系统生成不了protsentry执行文件,我们查看Makefile文件时发现,make后面根据操作系统的不同有许多选项。

  所以我们重新执行此步操作,将目录删除重新解压缩

  然后我们执行make linux,发现系统仍然报错,如下:

SYSTYPE=linux
Making
cc -O -Wall -DLINUX -DSUPPORT_STEALTH -o ./portsentry ./portsentry.c \
              ./portsentry_io.c ./portsentry_util.c
./portsentry.c: In function ?.ortSentryModeTCP?.
./portsentry.c:1187: warning: pointer targets in passing argument 3 of ?.ccept?.differ in signedness
./portsentry.c: In function ?.ortSentryModeUDP?.
./portsentry.c:1384: warning: pointer targets in passing argument 6 of ?.ecvfrom?.differ in signedness
./portsentry.c: In function ?.sage?.
./portsentry.c:1584: error: missing terminating " character
./portsentry.c:1585: error: ?.ourceforget?.undeclared (first use in this function)
./portsentry.c:1585: error: (Each undeclared identifier is reported only once
./portsentry.c:1585: error: for each function it appears in.)
./portsentry.c:1585: error: expected ?.?.before ?.ot?
./portsentry.c:1585: error: stray ?.?.in program
./portsentry.c:1585: error: missing terminating " character
./portsentry.c:1595: error: expected ?.?.before ?.?.token
make: *** [linux] Error 1

  解决方法:

  我们打开portsentry.c文件,在1590行左右,我们将带有Copyright 1997-2003字样的那行调整为一行即可,如图1-1所示

图1-1 文字有白线标记的那行代码应调整为一行

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号