网络安全 · Network security

服务器阻止恶意扫描

小编 · 3月4日 · 2021年

前言

之前在微博上看到亚二程转发的一个帖子:

服务器阻止恶意扫描-字节智造

原po用了一掉小伎俩将恶意扫描的人带沟里,让人很解气。

由这个贴,顺道想到了自己对付恶意扫描的一些做法。例如本站点公开IP是47.90.50.176,恶意扫描的人一般会直接访问: http://47.90.50.176,只能得到一个恶搞的页面。达到这个效果只需两步:

  1. 新建一个站点配置文件,将其设置为默认站点,并将所有的请求都交给/usr/share/nginx/html/index.html处理。本人利用Nginx的default.conf来做,其内容如下:
server {
listen       80 default_server;
listen       [::]:80 default_server;
server_name  _;
root         /usr/share/nginx/html;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

location / {
    index index.html;
    try_files /index.html /index.html?q=tttt;
  }
}

2.修改index.html,内容改为你想要的。例如我的是: 

El psy congroo!

最开始的内容设置为“I’m Your Father!”,后来觉得太暴力太直接,就改成了中二的“El Psy Congroo!”。点击: http://47.90.50.176 可查看效果。

说完以上两个事,再谈谈为什么要阻止恶意扫描。恶意扫描是不法分子利用一些已知或公开的漏洞,批量的寻找目标主机并尝试攻击的行为。扫描基本上是撒网式、无目的性的进行,能搞定一个是一个,成本也不大。例如Flash、Struts2,SMB等漏洞,公布后就会被黑客利用,引起网络上腥风血雨。黑客利用各种PoC扫描并尝试获取权限,控制服务器后便可用作肉鸡、挖矿甚至敲诈勒索等目的。

本人是有轻微洁癖的,不喜欢在log中看到乱七八糟的东西,更不想由于未知的0day漏洞导致服务器被搞定,所以才有上述一番恶搞。

恶意扫描不可避免,我们能做的就是预防和阻止,让扫描者拿不到想要的东西,更进一步的目的是保障服务器的安全。一般而言我会采取以下措施防止恶意扫描:

  1. 无用的端口尽量关闭,设置严格的网络访问策略。使用iptables和网络安全组,仅开放必要的服务端口或者限定IP访问,其他的包一律丢弃。为了安全,本人管理的服务器都是禁ping,仅必须的端口才开放。
  2. 尽量使用非默认端口和默认用户名密码。SSH、Zabbix、RDP等端口,全部改成非默认的;使用自定义的用户名和设置复杂的强密码。80/443这类公开访问不宜修改的,采用上述恶搞的手段能缓解旁站攻击。更改默认项对批量扫描杀伤力最大,黑客批量操作的模板总是有限的,避开默认项就让脚本化攻击的代价急剧上升。
  3. 使用前端代理服务器,隐藏真实服务器IP。对外暴露的服务,在用户和真实服务器之间加LSB或者代理服务器,尽可能加大黑客寻找真实服务器IP的难度。

通过以上手段,应该能避开许多烦人的扫描,同时让你的服务器在类似“WannaCry”的攻击中幸免于难。

0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!