有时候我们成功登录到Linux服务器时,会看到控制台会有类似于这样的打印
Last failed login: Fri Nov 11 12:59:55 CST 2022 from xxx.xxx.xxx.xxx on ssh:xxx
There was 99999 failed login attempt since the last successful login.
这种情况很有可能是有人在通过字典暴力破解等手段来尝试登录服务器,特别是很多服务器密码简单并且没有禁用拥有高级权限的root默认账号
其他人一旦使用某种组合登录成功后便可以对服务器为所欲为
下面通过简单的方法来尽可能避免这些情况发生,还控制台一个清静
1、不响应其他服务器的Ping请求
因为一般系统默认都会响应其他服务器的ping
请求,所以ping
命令通常是用来检查服务器与服务器之间的连通性的,这样意味着有心人可以通过轮询IP地址段等方式来找到想要攻破的服务器靶机
所以禁止响应其他服务器的ping
请求可以一定程度上提高自己的服务器隐蔽性,服务器禁用ping
响应并不会影响客户端与服务的http等协议的接口请求,禁用后只是服务器不响应ping
命令而已,接口还是可以正常请求的
一、临时生效
允许ping
echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
禁止ping
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
二、永久生效
修改文件:/etc/sysctl.conf
允许ping
增加一行:
vi /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all=0
禁止ping
增加一行:
vi /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all=1
修改后使用以下命令使之生效:
sysctl -p
2、使用密钥而不是密码登录服务器
Windows用户可以使用MobaXterm等等工具来生成密钥
1、使用ssh-keygen
生成密钥文件,可以指定生成的密钥格式为pem
,如果不是pem
格式,可以使用下面的命令将其转为pem
格式
ssh-keygen -p -m PEM -f /Users/test/keys/id_rsa.pem
2、第一步执行完成后会生成id_rsa
和id_rsa.pub
两个文件,其中.pub
结尾的是公钥,放置在远程服务器端
可以使用命令将生成的密钥文件追加到authorized_keys
后
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3、编辑sshd_config
文件
vi /etc/ssh/sshd_config
#设置认证端口为22
Port 22
#设置为密钥登陆
PubkeyAuthentication yes
#设置禁用密码登陆(这个看自己需求,也可以保留密码登录,最好是只用密钥登录)
PasswordAuthentication no
配置完后需要重启sshd服务才可以生效:
service sshd restart
可以尝试使用终端登录远程服务器
如在Mac下登陆提示
WARNING: UNPROTECTED PRIVATE KEY FILE!
说明文件访问权限过高,将导致系统自动忽略此密钥文件
It is required that your private key files are NOT accessible by others.
This private key will be ignored
设置权限为700后可以正常使用
chmod 700 /Users/test/keys/id_rsa.pem
可以Mac命令控制台使用以下命令测试是否可以正常登录远程服务器
ssh -i /Users/test/keys/id_rsa.pem root@IP地址
标签:登录,Ping,ping,echo,密钥,Linux,服务器,服务端,ssh
From: https://www.cnblogs.com/yourxiong/p/16882261.html