前言:写本文的前因是本人的阿里云服务器经常被黑客暴力破解ssh的22端口号。再网络上搜索解决都是说使用root权限进行修改,但本人在root下也无法成功进行修改sshd_config文件。所以在大量搜索下终于找到了解决方案,现在分享出来给有需要的人使用。
普通解决方案:
- root权限远程进入Linux
- sshd_config是在/etc/ssh目录下
- 修改文件操作vim /etc/ssh/sshd_config(正常情况或许可以打开修改,但如果被黑客黑过后可能导致无法修改)
如果修改操作失败尝试关闭selinux系统:
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
关闭后再重复上步操作,如果还失败你大概率可能是被黑后权限锁定问题。
那么被黑后如何处理呢?
- 使用lsattr命令查看sshd_config文件是否被+i权限锁定了。
- 尝试使用chattr命令解锁,但报Permission denied错误,提示没权限,尝试使用chmod命令修改权限但报错:chmod: changing permissions of chattr': Operation not permitted错误。
查阅资料找到解决方案:
原因:chattr命令权限被修改且被锁定。
解决方案:
分别执行如下命令即可恢复chattr命令的权限,权限恢复后可以使用该命令做操作了。
cp /usr/bin/chattr /usr/bin/chattr2
chmod 755 /usr/bin/chattr2
chattr2 -i /usr/bin/chattr
chmod 755 /usr/bin/chattr
ls -la /usr/bin/chattr
lsattr /usr/bin/chattr
恢复chattr命令的权限后对sshd_config文件进行解锁。
修改端口号:
1.修改sshd_config文件
vim打开sshd_config文件输入e进入后shift+i进入底行模式找到#Port(如果新端口确认可以使用后删除原始22端口的Port),另新写一行Port。
对Port的端口进行修改,修改10000-65535之间的端口号,大大减少被暴力破解的概率,因为大部分黑客都是直接对22端口进行破解,并且你要避免与其他服务协议端口号冲突。
修改完毕后:wq!保存即可。
2.重启sshd服务
systemctl restart sshd.service
3.查看开放端口
netstat -tupln
4.把端口添加到防火墙开放端口列表
添加端口:firewall-cmd --zone=public --add-port="修改的Port"/tcp --permanent
5.重新加载防火墙
firewall-cmd --reload
6.查看端口防火墙放行状态
firewall-cmd --permanent --query-port="端口号"/tcp
7.查看防火墙已放行的端口号列表
firewall-cmd --zone=public --list-ports
如果以上步骤都没问题,防火墙也已放行,在云服务器官网添加ssh协议的端口号,最后使用Xshell连接服务器即可。