修改服务器22端口, 以防止暴力破解
目前很多人还是使用密码来登陆服务器,并且服务器都是默认的 22端口,但是这样会有被暴力破解密码的危险
以上是被暴力破解的截图的一部分ip统计
处理方法:
1, 先用命令查询日志
cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2" = "$1;}'
如果发现很多数据, 说明很多软件在登录破解你的服务器, 如果没有错误数据, 那倒问题不大
2,找到22端口,新增新的端口号
首先修改配置文件
vi /etc/ssh/sshd_config #vi打开文件后,按 I键 进入编辑模式,然后按下面的要求添加端口配置,最后按 ESC键 退出编辑模式并输入 :wq 保存并退出vi编辑器
找到#Port 22一段,这里是标识默认使用22端口,修改为如下(新增2666端口):
Port 22 Port 2666
保存退出
然后我们重启SSH。
/etc/init.d/ssh restart #如果提示服务不存在,那就用 /etc/init.d/sshd restart# CentOS7 则用 systemctl restart sshd.service
这样SSH端口将同时工作与22和2666上。
配置防火墙(以下演示为iptable防火墙)
首先我们添加防火墙规则(示例端口为 2666,自己改):
iptables -I INPUT -p tcp --dport 2666 -j ACCEPT
如果不清楚你们是否配置了防火墙开机启动和开机启动读取防火墙配置文件,所以我这里也写上步骤,建议你们都做一下,避免重启VPS后,SSH端口防火墙没有开放导致无法连接服务器。
配置防火墙开机启动
下面的代码是配置防火墙开机启动并且保存防火墙规则,开机启动后会自动读取保存的防火墙规则。
CentOS 系统:
注意:如果是 CentOS7 系统,那么就不是iptables 防火墙了。
service iptables savechkconfig --level 2345 iptables on
以后需要保存防火墙规则只需要执行:
service iptables save
Debian/Ubuntu 系统:
iptables-save > /etc/iptables.up.rulesecho -e '#!/bin/bash\n/sbin/iptables-restore < /etc/iptables.up.rules' > /etc/network/if-pre-up.d/iptableschmod +x /etc/network/if-pre-up.d/iptables
以后需要保存防火墙规则只需要执行:
iptables-save > /etc/iptables.up.rule
测试: 找一台别的服务器ssh下此服务器 ssh -P 2666 root@此服务器ip 能连成功那就ok
取消默认SSH端口 22
vi /etc/ssh/sshd_config
我们再打开SSH配置文件,删除 Port 22
这一行,然后重启SSH即可。
/etc/init.d/ssh restart #如果提示服务不存在,那就用 /etc/init.d/sshd restart# CentOS7 则用 systemctl restart sshd.service
现在请使用ssh工具连接2666端口,来测试是否成功。如果连接成功了,则再次编辑sshd_config的设置,将里边的Port22删除,即可。
之所以先设置成两个端口,测试成功后再关闭一个端口,是为了方式在修改conf的过程中,万一出现掉线、断网、误操作等未知情况时候,还能通过另外一个端口连接上去调试以免发生连接不上必须派人去机房,导致问题更加复杂麻烦。