如何防止搬瓦工VPS被黑及滥发垃圾邮件的有效解决方案

sudo grep "Failed password for root" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | more

想要提升SSH连接的安全性吗?这里提供了一套切实可行的措施,这些方法能够显著减少遭受攻击的可能性。接下来,我将逐一为您详细阐述。

sudo grep "Failed password for invalid user" /var/log/auth.log | awk '{print $13}' | sort | uniq -c | sort -nr | more

修改默认端口

通常SSH的默认端口是22,这个端口很容易遭受攻击。您可以对/etc/ssh/sshd_config文件进行修改,将Port 22改为其他端口,例如Port 47832。端口号的取值范围是从0到65535,但0到1024是知名端口,通常用于系统服务,所以不建议使用这些端口。修改完保存,重启SSH服务就可以使用新端口。

这种方式使得攻击者难以找到目标,提升了他们探测端口的不便。由于全面扫描所有端口费用昂贵,更改端口能够更好地保障服务器的安全。

密码管理要点

系统自动设定的管理员密码是随机的。切记不要将其修改为有规律的密码,例如生日或是简单的数字组合,这样很容易被破解。您可以将密码保存在手机里,这样既方便查阅又较为安全。

# vi /etc/ssh/sshd_config
RSAAuthentication yes #RSA认证
PubkeyAuthentication yes #开启公钥验证
AuthorizedKeysFile .ssh/authorized_keys #验证文件路径
PasswordAuthentication no #禁止密码认证
PermitEmptyPasswords no #禁止空密码
# 最后保存,重启sshd服务
sudo service sshd restart

若密码不慎外泄,需马上进行更换。在服务器端,执行相应指令以更改密码,并记下新的密码。采用复杂的密码可以有效增强服务器防护。

PermitRootLogin no

创建授权文件

在服务器用户目录中,首先创建一个名为.ssh的文件夹。然后,通过执行chmod 700.ssh命令,将此文件夹的权限设置为700。之后,再创建一个authorized_keys文件,该文件是专门用来存放允许登录的密钥的。

建立的文件权限必须设定妥当,否则SSH服务可能无法识别。文件一旦创建成功,应将可登录的公钥加入其中,这样就可以实现基于密钥的验证,进而增强安全性。

新建管理用户

不建议直接用root身份来管理服务器,最好创建一个新的用户来进行操作。考虑到root权限很高,若密码被破解,服务器可能会面临风险。

[DEFAULT]
# 以空格分隔的列表,可以是 IP 地址、CIDR 前缀或者 DNS 主机名
# 用于指定哪些地址可以忽略 fail2ban 防御
ignoreip = 127.0.0.1 172.31.0.0/24 10.10.0.0/24 192.168.0.0/24
# 客户端主机被禁止的时长(秒)
bantime = 86400
# 客户端主机被禁止前允许失败的次数 
maxretry = 5
# 查找失败次数的时长(秒)
findtime = 600

服务器安全

mta = sendmail [ssh-iptables] enabled = true filter = sshd action = iptables[name=SSH, port=ssh, protocol=tcp] sendmail-whois[name=SSH, dest=your@email.com, sender=fail2ban@email.com] # Debian 系的发行版 logpath = /var/log/auth.log # Red Hat 系的发行版 logpath = /var/log/secure # ssh 服务的最大尝试次数 maxretry = 3

新用户应参考系统内的说明进行操作。操作完成后,应赋予相应的权限。之后,便可以利用该用户来管理服务器。即便密码出现泄露,也能有效减少损失。

配置fail2ban

$ sudo service fail2ban restart

安装fail2ban可提升SSH服务器的安全性。需在配置文件中的[DEFAULT]部分设定通用参数,同时针对不同服务在相应配置区域进行个别设置。

$ sudo systemctl restart fail2ban

监狱区内需设立 [ssh-iptables] 区域,并在此区域中特别设置与SSH相关的监禁策略。按照既定规则,fail2ban 系统将对过去10分钟内连续三次访问失败的IP地址实施禁止。即便系统重启,仍在禁止期限内的IP地址也将继续被禁止。

服务启动与权限

$ sudo fail2ban-client pingServer replied: pong

测试完毕fail2ban后,需确保其能在系统启动时自动运行。在多数Linux系统中,iptables通过/usr/sbin/iptables进行操作,相关文档可在手册页中找到,通过man iptables命令即可查阅。

$ sudo fail2ban-client status

iptables依赖内核模块支持,必须以超级用户身份进行操作。启用并维护这些服务,有助于确保服务器安全防护功能持续有效。

使用SSH连接时,你是否遇到过安全上的困扰?对于这些解决方法,你感觉如何?若觉得有帮助,请不要忘记点赞并转发这篇文章!

$ sudo fail2ban-client status ssh-iptables

$ sudo fail2ban-client set ssh-iptables unbanip 192.168.1.8

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部