怎样用 PSAD 摆脱服务器端口被扫描

互联网上有很多无聊的人会全天候的扫描各种端口,本教程将帮助您花 10 分钟用 PSAD 来彻底封杀他们。
本文的运行环境为 Ubuntu 20.04 LTS,其他 Linux 也类似。
在安装之前,需要设置好你的防火墙,只开放必要的端口,比如(网页服务80,ftp21),剩下的端口封闭并记录到系统记录。
安装
先来安装 PSAD
sudo apt-get install psad
安装过程中可能会提示你需要先安装 Postfix,在 Postfix Configuration 中选择第二项“Internet Site”,然后输入主机名,以后发信均会用这个名字。确认后将会继续安装 PSAD。
备份并修改配置文件
sudo cp /etc/psad/psad.conf /etc/psad/psad.conf-orig sudo vi /etc/psad/psad.conf
配置
修改邮箱和主机名
- EMAIL_ADDRESSES 是警报要发送给哪个邮箱 - HOSTNAME 定义本机域名 EMAIL_ADDRESSES username@yourhost.com; HOSTNAME yourhost.com;
定义危险级别
PSAD 根据网络数据包,来定义危险级别,你可以根据需求自定义这些数值。
### Danger levels. These represent the total number of ### packets required for a scan to reach each danger level. ### A scan may also reach a danger level if the scan trips ### a signature or if the scanning ip is listed in ### auto_ips so a danger level is automatically ### assigned. DANGER_LEVEL1 5; ### Number of packets. DANGER_LEVEL2 15; DANGER_LEVEL3 150; DANGER_LEVEL4 1500; DANGER_LEVEL5 10000;
敏感度
报警阀值:黑客会扫描很多端口,当超过 x 个端口时就触发警报。比如超过 1 个端口时报警。
### Set the minimum range of ports that must be scanned before ### psad will send an alert. The default is 1 so that at ### least two port must be scanned (p2-p1 >= 1). This can be set ### to 0 if you want psad to be extra paranoid, or 30000 if not. PORT_RANGE_SCAN_THRESHOLD 1;
自动拦截(Ban IP)
是否开启自动拦截
### If "Y", enable automated IDS response (auto manages ### firewall rulesets). ENABLE_AUTO_IDS Y;
根据危害等级,自动拦截
达到一定的危害等级,才自动拦截,默认是5
### Block all traffic from offending IP if danger ### level >= to this value AUTO_IDS_DANGER_LEVEL 5;
自动拦截解封时间
IP 虽然被关进小黑屋了,但过段时间还是可以出来的。默认关小黑屋 1 小时,你也可以多关一会儿。
### Set the auto-blocked timeout in seconds (the default ### is one hour). AUTO_BLOCK_TIMEOUT 3600;
忽略特定端口
为了配合其他程序使用,你可以设置几个忽略的端口。端口格式:{协议}/{端口名}
### define a set of ports to ignore (this is useful particularly ### for port knocking applications since the knock sequence will ### look to psad like a scan). This variable may be defined as ### a comma-separated list of port numbers or port ranges and ### corresponding protocol, For example, to have psad ignore all ### tcp in the range 61000-61356 and udp ports 53 and 5000, use: ### IGNORE_PORTS tcp/61000-61356, udp/53, udp/5000; IGNORE_PORTS NONE;
例如默认的设置就是,当危险等级达到 5 级时,把此 IP 关小黑屋 3600 秒。
禁用邮件警告
PSAD 每天都会收到很多报警邮件,根据你设置的阈值不同,有时甚至会收到几百份,撑爆你的邮箱,因此你或许会希望关闭邮件报警功能。
找到 ALERTING_METHODS
并设置为 noemail
即可。
### Allow reporting methods to be enabled/restricted. This keyword can ### accept values of "nosyslog" (don't write any messages to syslog), ### "noemail" (don't send any email messages), or "ALL" (to generate both ### syslog and email messages). "ALL" is the default. Both "nosyslog" ### and "noemail" can be combined with a comma to disable all logging ### and alerting. ALERTING_METHODS noemail;
指定日志路径
默认情况下 PSAD 并不会监控 /var/log/syslog
所以需要手工指定。
搜索 IPT_SYSLOG_FILE
,并将其值改为系统日志所在的路径,例如 Ubuntu 的路径为:/var/log/syslog
IPT_SYSLOG_FILE = /var/log/syslog;
添加 IP 白名单
如果你每次登录 shell 的电脑是固定 IP,那么你可以把自己的 IP 放进白名单,永远不会被 PSAD 封禁。
sudo vi /etc/psad/auto_dl
# <IP address> <danger level> <optional protocol>/<optional ports>; # # Examples: # # 10.111.21.23 5; # Very bad IP. # 127.0.0.1 0; # Ignore this IP. # 10.10.1.0/24 0; # Ignore traffic from this entire class C. # 192.168.10.4 3 tcp; # Assign danger level 3 if protocol is tcp. # 10.10.1.0/24 3 tcp/1-1024; # Danger level 3 for tcp port range 8.6.253.50 0;
根据之前设置的级别,对应此处的 5 种等级,白名单是 0,黑名单是 5,你可以把自己 IP 设置成 0.
改好以后保存退出,重启 psad 服务:
$ sudo service psad restart
现在你可以用另外一台电脑扫描端口来测试效果,注意不能跟你一个局域网,最好请外地的朋友帮忙。
欢迎转载,但请勿用于任何商业用途,谢谢你!请标注以下信息『 原文出处:怎样用 PSAD 摆脱服务器端口被扫描 - 张林海博客 http://zhanglinhai.com/archives/416 』