阻止中国IP地址

信息安全 SSH 蛮力 密码破解
2021-08-30 10:51:14

我最近检查了我的一个服务器auth.log文件,发现了一些非常可疑的活动。我最近关闭了我服务器的 ssh 守护进程,所以日志在 1 月 22 日结束,但我在查看日志文件后发现所有 IP 地址都是中文的。

以下是最后 10 行失败的登录尝试:

$ cat auth.log | grep Failed | tail -n10
Jan 22 13:42:14 servername sshd[10306]: Failed password for root from 183.3.202.104 port 10894 ssh2
Jan 22 13:42:18 servername sshd[10306]: message repeated 2 times: [ Failed password for root from 183.3.202.104 port 10894 ssh2]
Jan 22 13:42:28 servername sshd[10365]: Failed password for root from 183.3.202.104 port 34140 ssh2
Jan 22 13:42:32 servername sshd[10365]: message repeated 2 times: [ Failed password for root from 183.3.202.104 port 34140 ssh2]
Jan 22 13:42:44 servername sshd[10423]: Failed password for root from 183.3.202.104 port 56290 ssh2
Jan 22 13:42:48 servername sshd[10423]: message repeated 2 times: [ Failed password for root from 183.3.202.104 port 56290 ssh2]
Jan 22 13:43:03 servername sshd[10511]: Failed password for root from 183.3.202.104 port 64153 ssh2
Jan 22 13:43:08 servername sshd[10511]: message repeated 2 times: [ Failed password for root from 183.3.202.104 port 64153 ssh2]
Jan 22 13:43:18 servername sshd[10569]: Failed password for root from 183.3.202.104 port 33472 ssh2
Jan 22 13:43:23 servername sshd[10569]: message repeated 2 times: [ Failed password for root from 183.3.202.104 port 33472 ssh2]

搜索非 183.3.202.104 IP 地址时,这些行变为:

$ cat auth.log | grep Failed | grep -v 183.3.202.104 | tail -n10
Jan 22 02:36:41 servername sshd[31074]: message repeated 5 times: [ Failed password for root from 221.203.142.71 port 33746 ssh2]
Jan 22 02:36:54 servername sshd[31388]: Failed password for root from 221.203.142.71 port 57792 ssh2
Jan 22 02:37:13 servername sshd[31388]: message repeated 5 times: [ Failed password for root from 221.203.142.71 port 57792 ssh2]
Jan 22 02:37:25 servername sshd[31698]: Failed password for root from 221.203.142.71 port 55440 ssh2
Jan 22 02:37:41 servername sshd[31698]: message repeated 5 times: [ Failed password for root from 221.203.142.71 port 55440 ssh2]
Jan 22 02:37:58 servername sshd[31918]: Failed password for root from 221.203.142.71 port 50225 ssh2
Jan 22 02:38:13 servername sshd[31918]: message repeated 5 times: [ Failed password for root from 221.203.142.71 port 50225 ssh2]
Jan 22 04:55:23 servername sshd[22179]: Failed password for invalid user support from 113.160.158.43 port 61614 ssh2
Jan 22 09:36:40 servername sshd[4160]: Failed password for invalid user a from 115.182.249.11 port 53046 ssh2
Jan 22 09:36:52 servername sshd[4204]: Failed password for invalid user oracle from 115.182.249.11 port 56673 ssh2

所以首先,我想确认这确实是一次攻击;我对管理系统安全性非常陌生。其次,我想知道有没有什么办法可以屏蔽所有中国IP地址;我的服务器目前只在美国使用,与中国无关。

2个回答

您可以尝试Wizcraft 的阻止列表,并相应地对其进行格式化。在我发帖时,此阻止列表最后一次更新是在 2015 年 12 月 24 日星期四 11:01:52 MST。请记住,台湾不是中国大陆的一部分,但香港现在属于并由北京控制。

如果您只在美国专门使用您的服务器,您可以使用所有这些规则来阻止攻击者。如果没有,编辑掉你不想要的,保留你想要的。

另请记住,这不会阻止攻击者连接到他们选择的国家/地区的 VPN,并再次尝试以 root 身份登录。这只是一个创可贴。

编辑- BadSkillzJenny D推荐了fail2ban总体而言,这可能是一个更好的解决方案,但同时使用这两种方法可能不会有什么坏处。

我还发现看到这些低俗的蛮力登录尝试令人不安,遗憾的是,它们大多来自中国(“吸尘器”间谍活动)——好消息是解决方案很简单——只允许使用 SSH 密钥登录到您的服务器,然后启用您禁用密码作为登录方法

首先创建您的安全 SSH 密钥:

请参阅 linux/OSX/Windows 的文档 https://help.github.com/articles/generating-a-new-gpg-key/

在本地盒子问题的终端中

ssh-keygen -t rsa -b 4096 -C "youremailaddr@example.com"

这将提示您输入密码(记住它)...它将创建一个私钥和公钥文件对

private file  /home/mylogin/.ssh/id_rsa_supermoon
public file   /home/mylogin/.ssh/id_rsa_supermoon.pub

这些文件现在在您的机器上......只需将公共文件复制到您的远程服务器并放入文件中(或附加到)

/home/mylogin/.ssh/authorized_keys

确保它在远程主机上具有适当的文件权限

chmod 700 /home/mylogin/.ssh
chmod 600 /home/mylogin/.ssh/authorized_keys

现在回到您的本地主机上,发出这个以 ssh 登录到您的远程框

# only need to issue this set of 3 cmds once on same terminal
export REMOTE_IP=1.2.3.4 # your remote host IP
eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa_supermoon  # enter same password as above

ssh mylogin@${REMOTE_IP}

* 可选的开始------------ *

PS - 厌倦了每个 ssh 上的密码提示,然后将其放入本地 ~/.bashrc

if [ ! -S ~/.ssh/ssh_auth_sock ]; then
  eval $(ssh-agent)
  ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
fi
export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock
ssh-add -l | grep "The agent has no identities" && ssh-add ~/.ssh/id_rsa_supermoon

------------ 可选结束

重要 - 确认您可以使用 ssh 正确登录...只有在您的远程主机上编辑 ssh 配置文件

sudo vi /etc/ssh/sshd_config  
# PasswordAuthentication yes   # we do NOT want yes if ssh keys work
PasswordAuthentication no

在远程主机上进行上述配置文件更改只需反弹 ssh 服务器:

sudo service sshd restart  # (systemd ONLY) this does not kill your login session

完成 - 您将立即不再看到此类暴力登录尝试,因为您的远程主机现在会立即忽略密码尝试,并且那些 guttersnipes 将爬走以纠缠其他人未受保护的服务器