欢迎访问技术宅的技术博客!

自购VPS服务器建站如何避免扫描攻击变成肉鸡?

VPS jhxt1989@126.com 1年前 (2023-07-26) 951次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]
VPS 建站

VPS 建站

背景提要

最近新搭建的 WordPress 站点,刚好是在搬瓦工自己买的VPS来建站的。这两天就发现我的VPS服务器上有多密码暴力破解登录记录。

# 这个查询 Ubuntu 服务器上尝试 root 密码暴力破解登录失败记录
root@demo-server:/var/log# sudo grep "Failed password for root" /var/log/auth.log.1 | awk '{print $11}' | sort | uniq -c | sort -nr | more
  33857 180.101.88.218  # 这个公网地址尝试 33857 输入错入 root 用户密码,就是抓肉鸡
  22335 180.101.88.237
   8572 61.220.127.240
   4569 Failed
    864 106.38.105.12
    503 218.92.0.24
    448 218.92.0.29
    448 218.92.0.107
    431 218.92.0.27
    426 218.92.0.113
    422 61.177.172.160
    417 61.177.172.185
    406 218.92.0.76
    396 218.92.0.56
    390 218.92.0.34
    387 218.92.0.118
    372 218.92.0.25
    359 180.101.88.247
    356 61.177.172.140
    350 61.177.172.179
    347 218.92.0.108
    340 218.92.0.31
    330 218.92.0.112
    290 218.92.0.22
    274 61.177.172.136
    117 200.111.136.214
     90 185.220.103.114
     82 92.222.108.86

有没有感受到公网上都是扫肉鸡的?

分析缘由

正常我们暴露公网上的服务器,每天每时每刻都是经受着互联网上大量的扫描攻击,包括漏洞扫描、密码暴力破解、各种类型漏洞破解等等。因为有很多黑客或是骇客,需要抓肉鸡,然后使用肉鸡来做非法的事情。我们自己的服务器是用来正常对外提供服务的,而不是来沦为这些骇客的肉鸡的。那么又如何避免让自己的服务器变成别人的肉鸡呢?

我的经历和安全加固操作

让我来分享一下我近期的经历,那是关于我自己的公网 VPS 服务器被黑客攻击,沦为他们的肉鸡的故事。我这台公网 VPS 服务器的主要用途是作为 ChatGPT 官网 API 的代理,服务器位于美国。在服务器上运行的只有 Nginx 服务(80/443 端口)和 SSH 服务(22 端口),并没有运行其他多余的服务。

然而,就在昨天,我接到了一通来自英国的电话,对方是一位英语口音的工程师。由于我已经多年没有实际使用过英语口语,这突如其来的英文交流让我有些手足无措。幸运的是,由于我常年阅读英文资料,我还是能理解他的意思。他告诉我,他们发现我的 VPS 服务器近期出现了被攻击的迹象,CPU 资源负载过高,他建议我立即检查服务器,否则可能会面临服务被停止的风险。

听到这个消息,我立刻意识到事情的严重性,我的服务器很可能已经被黑客控制,成为他们的肉鸡。更糟糕的是,这台服务器还在为外部提供服务。我不能坐视他们肆意妄为,破坏我的服务器。

这种感觉就像你家里有宝贝,而有一群强盗一直在觊觎你的财物,甚至有的已经悄悄潜入你的家中进行抢劫。看着自己的宝贝被这些强盗肆意糟蹋,而自己却只能无奈地看着,无法做出有效的反抗,这种感觉,你能理解吗?

我要自卫,要把这些强盗拒之门外。开始搜索加固自己 VPS 的方案。具体有以下两点:

  1. 加固 SSH 服务
# SSH 服务加固操作包括: 修改 SSH 服务默认端口号、禁用空密码登录、使用公钥认证登录、禁用 root 用户 SSH 登录
# 修改 SSH 服务配置文件
vim  /etc/ssh/sshd_config
PermitRootLogin no
MaxAuthTries 6
Port 23697
PasswordAuthentication yes
PermitEmptyPasswords no
PubkeyAuthentication yes

# 重启 SSH 服务
systemctl restart sshd
  1. 禁止 root 用户远程登录,日常使用普通用户操作
# 创建普通用户用于日常维护远程登录使用
# 创建一个 ops 用户
root@proud-pod-1:~# adduser ops
Adding user `ops' ...
Adding new group `ops' (1000) ...
Adding new user `ops' (1000) with group `ops' ...
Creating home directory `/home/ops' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for ops
Enter the new value, or press ENTER for the default
        Full Name []: 
        Room Number []: 
        Work Phone []: 
        Home Phone []: 
        Other []: 
Is the information correct? [Y/n] 

# 为 ops 用户配置 sudo 免密操作权限
export EDITOR=vi  # 使用 vi 编辑器来修改 sudo 配置
visudo
ops  ALL=(ALL) NOPASSWD: ALL

经过上面的 SSH 服务加固和使用普通用户替代 root 用户来远程登录维护,可以避免网络上 85%以上的肉鸡扫描和密码暴力破解攻击。切记在公网服务器使用弱口令,密码必须满足一定的复杂性要求,长度、字符类别、组合复杂度等等,尽量用复杂的口令。

进一步加固,部署 fail2ban 服务将暴力破解破解的攻击源拒之门外

先来简单介绍一下我们下面的主角 Fail2Ban 项目,Fail2Ban 是一个入侵检测系统框架,主要用于保护电脑服务器免受蛮力攻击。就是我前面遭遇的就是网络上每时每刻都在发生的蛮力攻击。

Fail2ban 和 DenyHosts 是类似的工具,可以阻止有人恶意以字典暴力破解密码,通常应用于有开启 sshd、telnetd 和 ftpd 的主机上。Fail2ban 的做法是将超过多次失败连接的 IP 列用 iptables(给 IPv4 使用)或 ip6tables(给 IPv6 使用)禁止该 IP 之后的连接。至于要多久之后可以再允许该 IP 再次连接可以在 Fail2ban 的配置文件内设置。

下面是 Fail2ban 在 Ubuntu 服务器上的部署和配置。

# 安装 fail2ban 软件包
cd /opt
git clone https://github.com/fail2ban/fail2ban.git
cd fail2ban
python setup.py install

# 修改配置文件
vim /etc/fail2ban/jail.conf 
## 新增如下配置行
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=jhxt1989@126.com, sender=fail2ban@email.com]
logpath = /var/log/auth.log
# logpath = /var/log/secure
maxretry = 6

## 配置行结束
# 配置服务启动脚本
cp files/debian-initd /etc/init.d/fail2ban
update-rc.d fail2ban defaults
service fail2ban start

# 测试服务是否正常
root@demo-server:/opt/fail2ban# sudo fail2ban-client ping
Server replied: pong

总结

经过以上的安全加固操作,我的公网 VPS 服务器可以抵挡绝大多数的蛮力攻击,对网上的大多数的端口扫描,密码暴力破解攻击都能置之不理,这正是我们要做的,我们的服务器是用来提供服务,而不是给强盗强行拿去当犯罪工具的。这是我们有公网 VPS 服务器的小伙伴必须要有的安全意识,希望上面的总结能对你有帮助。


文章[自购VPS服务器建站如何避免扫描攻击变成肉鸡?]原创,转载请注明出处https://blog.happydayhappylife.com/2023/07/26/how-to-prevent-a-self-purchased-vps-server-from-being-scanned-attacked-and-turned-into-a-botnet/。
喜欢 (2)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址