成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

防止惡意掃描 用PortSentry保護Linux服務器

原創
運維 系統運維
在遭遇Linux服務器被外部IP惡意掃描端口的時候,一般系統管理員會部署一些防入侵的環境,比如snort,不過snort部署起來比較復雜,而有時候我們只是需要防止惡意掃描而已。這個時候,可以用PortSentry這個工具來進行非常簡單的實現。雖然PortSentry被Cisco收購后不再開發,但絲毫不影響此軟件的強大功能。

【51CTO獨家特稿】我在檢查一臺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所示

portsentry.c文件
圖1-1 文字有白線標記的那行代碼應調整為一行

調整后我們再執行make linux&& make install后,PortSentry順利安裝成功,其安裝路徑為/usr/local/psionic/portsentry,如下所示表示成功安裝此軟件:

Edit /usr/local/psionic/portsentry/portsentry.conf and change
your settings if you haven't already. (route, etc)
WARNING: This version and above now use a new
directory structure for storing the program
and config files (/usr/local/psionic/portsentry).
Please make sure you delete the old files when
the testing of this install is complete.

#p#

二、PortSentry的配置

 1.修改配置文件portsentry.conf

通過PortSentry進行入侵檢測,首先需要為它定制一份需要監視的端口清單,以及相應的阻止對策。然后啟動后臺進程對這些端口進行檢測,一旦發現有人掃描這些端口,就啟動相應的對策進行阻攔。

(1)設置端口清單

下面給出portsentry.conf中關于端口的默認配置情況:

#Un-comment these if you are really anal;
#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,[..]
#Use these if you just want to be aware:
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"
#Use these for juse bare-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"

可以有選擇地去掉前面的注釋來啟用默認配置,也可以根據自己的實際情況定制一份新的清單,格式和原來的一樣即可。端口列表要根據具體情況而定,假如服務器為Web服務器,那么Web端口就不需要監視。反之,如果是FTP服務器,那么監視Web端口也是有必要的。

(2)portsentry.conf里的相關文件

在portsentry.conf中自動配置了許多文件,我們看下它們有哪些用途:

#此文件記錄允許合法掃描服務器的主機地址
IGNORE_FILE="/usr/local/psionic/portsentry/portsentry.ignore"
#此文件中保留了以往所有入侵主機的IP歷史記錄
HISTROY_FILE="/usr/lcal/psionic/portsentry/portsentry.history"
#此文件中是已經被阻止連接的主機IP記錄
BLOCKED_FILE="/usr/local/psionic/portsentry/portsentry.blocked"

(3)設置路由重定向

通過配置portsentry.conf文件,可以設置一條虛擬路由記錄,把數據包重定向到一個未知的主機.使之無法獲取信息。相應配置代碼如下:

#Generic
#KILL_ROUTE="/sbin/route add $TARGET$ 333.444.555.666"
#Generic Linux
KILL_ROUTE="/sbin/route add -host $TARGET$ gw 333.444.555.666

針對不同的平臺有不同的路由命令,在配置文件中選擇適臺自己平臺的命令即可。我的服務器是CentOS 5.5 x86_64,以上語法適合Linux平臺的機器;PortSentry非常人性化,下面都有系統對應的配置文件,我們只需要依樣操作即可。

(4)我們還可以利用Linux中的iptables命令,可以切斷攻擊主機的連接:

KILL_ROUTE="/usr/local/sbin/iptables -I INPUT -s $TARGET$ -j DROP"

也可以直接把攻擊者的IP記錄到/etc/hosts.deny文件中,利用TCP_Wrappers保護機制來防止攻擊:

KILL_HOSTS_DENY="ALL:$TARGET$ # Portsentry blocked"

系統默認是利用TCP_Wrappers來切斷與主機之間的連接

(5)定制警告信息

我們也可以定制一條警告信息,警告攻擊者。不過,手冊上建議不要使用該選項,因為這樣做可能會暴露主機的IDS系統。

PORT_BANNER="** UNAUTHORIZED ACCESS PROHIBITED *** YOUR CONNECTION ATTEMPT HAS BEEN LOGGED. GO AWAY."

修改完畢后,改變文件的權限.以保證其安全性:

chmod 600 /usr/local/psionic/portsentry/portsentry.conf

2.配置portsentry.ignore文件

/usr/psionic/portsentry/portsentry.ignore文件中設置了希望PortSentry忽略的主機IP,即允許合法掃描的主機地址下面是配置情況:

#Put hosts in here you never want blocked,This includes the IP addresses
#of all local interfaces on the protected host(i.e virtual host,mult-home)
#keep 127.0.0.1 and 0.0.0.0 to keep people from playing games.
127.0.0.1/32
0.0.0.0
#Exclude all local interfaces   
192.168.1.103
192.168.1.102
127.0.0.1

記得帶上本機地址,以防萬一。

修改完成后同樣需要改變文件默認的權限:

chmod 600 /usr/local/psionic/portsentry/portsentry.ignore

#p#

三、啟動檢測模式

最后介紹一下PortSentry的啟動檢測模式。對應TCP和UDF兩種協議方式,PortSentry分別有三種啟動模式,即基本、秘密和高級秘密掃描檢測模式,合計6個模式。

◆ portsentry-tcp,TCP的基本端口綁定模式;

◆ portsentry-udp,UDP的基本端口綁定模式;

◆ portsentry-stcp,TCP的秘密掃描檢測模式;

◆ portsentry-sudp,UDP的秘密掃描檢測模式;

◆ portsentry-atcp,TCP的高級秘密掃描檢測模式;

◆ portsentry-audp,UDP的高級秘密掃描檢測模式。

一般情況下,建議使用秘密掃描檢測模式或高級秘密掃描檢測模式

使用高級秘密掃描檢測模式(Advanced Stealth Scan Detection Mode),PortSentry會自動檢查服務器上正在運行的端口, 然后把這些端口從配置文件中移去, 只監控其它的端口。這樣會加快對端口掃描的反應速度,并且只占用很少的CPU時間,這種模式非常智能,我比較喜歡用

啟動PortSentry的命令如下:

#/usr/psionic/portsentry/portsentry -atcp

可以把啟動命令加到“/etc/rc.d/rc.local”腳本文件中,果想讓它和其它后臺進程一樣可以隨時啟動、停止并查看進程狀態, 可以去這樣當重新啟動計算機的時候PortSentry就會自動運行。

四、測試

我們在192.168.1.102上啟動PortSentry后,先暫時清掉portsentry.ignore里的文件,然后在另一臺192.168.1.104的機器上啟動掃描命令nmap -sS 192.168.1.102。稍等片刻,就會發現/etc/hosts.deny里會出現ALL:192.168.1.104的字樣,證明此軟件配置都是生效的。

為了證明其有效性,我拿自己的線上的一臺LVS機器布署了portsentry1.2,查看日志發現

[root@localhost portsentry_beta]# tail /var/log/messages
Jun 6 13:11:07 localhost portsentry[2555]: attackalert: TCP SYN/Normal scan from host: adsl-65-9-251-89.mia.bellsouth.net/65.9.251.89 to TCP port: 80
Jun 6 13:11:07 localhost portsentry[2555]: attackalert: Host 65.9.251.89 has been blocked via wrappers with string: "ALL: 65.9.251.89"
Jun 6 13:11:07 localhost portsentry[2555]: attackalert: TCP SYN/Normal scan from host: adsl-65-9-251-89.mia.bellsouth.net/65.9.251.89 to TCP port: 80
Jun 6 13:11:07 localhost portsentry[2555]: attackalert: Host: adsl-65-9-251-89.mia.bellsouth.net/65.9.251.89 is already blocked Ignoring
Jun 6 13:11:08 localhost portsentry[2555]: attackalert: TCP SYN/Normal scan from host: adsl-65-9-251-89.mia.bellsouth.net/65.9.251.89 to TCP port: 80
Jun 6 13:11:08 localhost portsentry[2555]: attackalert: Host: adsl-65-9-251-89.mia.bellsouth.net/65.9.251.89 is already blocked Ignoring
Jun 6 13:19:57 localhost portsentry[2555]: attackalert: TCP SYN/Normal scan from host: ns38534.ovh.net/91.121.14.153 to TCP port: 80
Jun 6 13:19:57 localhost portsentry[2555]: attackalert: Host 91.121.14.153 has been blocked via wrappers with string: "ALL: 91.121.14.153"
Jun 6 13:35:44 localhost portsentry[2555]: attackalert: TCP SYN/Normal scan from host: 61.156.31.43/61.156.31.43 to TCP port: 80
Jun 6 13:35:44 localhost portsentry[2555]: attackalert: Host 61.156.31.43 has been blocked via wrappers with string: "ALL: 61.156.31.43"

檢查了下/etc/hosts.deny,發現如下惡意IP:

ALL: 113.57.224.3
ALL: 124.238.249.246
ALL: 65.9.251.89
ALL: 91.121.14.153
ALL: 61.156.31.43

感覺現在的無聊人士也是非常多的,一天到晚開著掃描器在公網上,難道欲捕肉雞乎?

作者簡介:余洪春(博客),網名撫琴煮酒,英文名Andrew.Yu,武漢某外企高級Linux/Unix系統管理員、項目實施工程師,紅帽RHCE講師,擅長負載均衡高可用和中小型證券類和商務網站架構,目前關注網站架構研究及網絡安全。

【編輯推薦】

  1. VNC遠程管理Linux服務器安全指導
  2. Linux下的NFS快速配置教程與安全策略
  3. 運維人員應該時刻謹記的十條安全法則
  4. 明明白白你的Linux服務器——安全篇
  5. Linux用戶管理安全寶典:密碼防破解與帳號文件保護
責任編輯:yangsai 來源: 51CTO.com
相關推薦

2011-07-13 10:12:44

2011-07-04 17:55:09

2018-08-16 09:00:00

2009-07-04 14:37:12

2014-08-18 09:25:54

2020-11-20 13:00:10

微軟Linux服務器

2019-10-12 10:00:17

Linux服務器網絡

2011-11-07 20:36:29

2011-03-15 16:57:15

2021-11-14 11:53:05

Linux 系統攻防Linux 系統

2015-09-01 10:33:53

2022-03-06 10:05:23

檢測工具Linux操作系統

2011-03-18 13:41:50

2011-11-21 16:32:19

2023-06-26 14:19:35

2010-12-17 09:22:01

Linux服務器性能監控Munin

2011-03-21 15:45:55

ClusterSSH管Linux服務器

2017-09-13 07:23:03

2015-05-05 11:27:01

2012-11-01 09:31:54

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 蜜桃视频在线观看www社区 | 性色av网站 | 91精品国产91久久久久久 | 黄网免费 | 99精品久久久久久 | 欧美精品一二三区 | 国产欧美一区二区久久性色99 | 91福利影院| 国产欧美在线一区二区 | 亚洲久久在线 | 日本不卡一区二区三区 | 国产成人亚洲精品 | 国产精品一区二区三区在线 | 亚洲乱码一区二区 | 国产精品揄拍一区二区久久国内亚洲精 | 欧美福利 | 91在线精品视频 | 91久久视频 | 国产福利二区 | 国产精品国产成人国产三级 | 欧美精品久久 | 高清久久 | 国产午夜精品一区二区三区四区 | 欧美高清视频一区 | 免费播放一级片 | 精品国产一级 | 精品三区 | 成人久久久久久久久 | 国产精品久久久久婷婷二区次 | 国产在线一区二区三区 | 中文一区二区 | 激情五月激情综合网 | 亚洲一区二区三区在线播放 | 黑人粗黑大躁护士 | 欧美一级网站 | 91免费视频 | 秋霞a级毛片在线看 | 免费激情av | 成人a免费 | 日本在线中文 | 日韩1区2区 |