注意本文目的是建设网站。。。
首先看看vps的提供商都有哪些?
如果选择了vultr,参考:使用 Vultr 搭建 XX
vps的安全很重要,一定要重视:
新建的VPS 服务器 ,不到一分钟,就被SSH暴力扫描,求原因!
作者列出了常见办法:
- 更换22端口
- 现在密码出错次数
- 禁止root登陆
- 改用密钥和公钥配对登陆SSH
- DenyHosts 屏蔽暴力IP
检查是否被入侵
查看登录失败的用户信息命令: lastb
[root@vultr ~]# lastb | less
时间是格林威治时间 (GMT):
root tty1 Thu Nov 30 06:05 - 06:05 (00:00)
root ssh:notty 218.65.30.126 Thu Nov 30 05:57 - 05:57 (00:00)
root ssh:notty 218.65.30.126 Thu Nov 30 05:57 - 05:57 (00:00)
root ssh:notty 218.65.30.126 Thu Nov 30 05:57 - 05:57 (00:00)
root ssh:notty 218.65.30.126 Thu Nov 30 05:57 - 05:57 (00:00)
随时随地有这么多暴力破解,可怕。
Linux查看/var/log/wtmp文件查看可疑IP登陆
last -f /var/log/wtmp
查看/var/log/secure文件寻找可疑IP登陆次数
[root@vultr ~]# cat /var/log/secure | grep 182.37.95.248
结果:
Nov 30 05:57:33 vultr sshd[3285]: reverse mapping checking getaddrinfo for 126.30.65.218.broad.xy.jx.dynamic.163data.com.cn [218.65.30.126] failed - POSSIBLE BREAK-IN ATTEMPT!
Nov 30 05:57:34 vultr sshd[3285]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.65.30.126 user=root
Nov 30 05:57:35 vultr sshd[3285]: Failed password for root from 218.65.30.126 port 11376 ssh2
Nov 30 05:57:38 vultr sshd[3285]: Failed password for root from 218.65.30.126 port 11376 ssh2
Nov 30 05:57:40 vultr sshd[3285]: Failed password for root from 218.65.30.126 port 11376 ssh2
Nov 30 05:57:43 vultr sshd[3285]: Failed password for root from 218.65.30.126 port 11376 ssh2
Nov 30 05:57:46 vultr sshd[3285]: Failed password for root from 218.65.30.126 port 11376 ssh2
Nov 30 05:57:48 vultr sshd[3285]: Failed password for root from 218.65.30.126 port 11376 ssh2
Nov 30 05:57:48 vultr sshd[3285]: PAM 5 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.65.30.126 user=root
CentOS7增加或修改SSH端口号
1.修改SSH配置文件(注意是sshd_config而不是ssh_config,多了个d)
[root@vultr ~]# vi /etc/ssh/sshd_config
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
#Port 22
Port xxxxx # 改这里
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
2.查看开放给ssh使用的端口
Centos 7和 Centos 6开放查看端口 防火墙关闭打开
centos7和6是有区别的,firewall是7,iptables 是6.
查看已经开放的端口:
firewall-cmd --list-ports
centos7 firewall-cmd查看端口是否开放及开放端口
3.查看防火墙是否开启了端口:
[root@vultr ~]# firewall-cmd --permanent --query-port=xxxxx/tcp # xxxxx是端口号
# yes | no
# no表示没有开放端口,那么添加端口:
[root@vultr ~]# firewall-cmd --permanent --add-port=xxxxx/tcp
重新加载防火墙策略:
[root@vultr ~]# firewall-cmd --reload
执行成功后,查看端口是否被开启:
[root@vultr ~]# firewall-cmd --permanent --query-port=xxxxx/tcp # xxxxx是端口号
重启SSH服务和防火墙
[root@vultr ~]# systemctl restart sshd
[root@vultr ~]# systemctl restart firewalld.service
不要支持闲置会话。当客户端连上服务器端后,若没有任何操作则,服务器端默认会每隔一定时间发送一个alive消息给客户端寻求客户端应答,默认一共发三次.若都没有回应,则断开。
[root@vultr ~]# vi /etc/ssh/sshd_config
更改:
ClientAliveInterval 600 # 每隔多少秒发送一次alive消息
ClientAliveCountMax 3 # 设置一共发多少次
PrintMotd no
xshell上传公钥至服务器中:参考,使用rz
Xshell设置密钥登录确保Linux VPS及服务器更加安全
弄好了,可是还是能用密码登陆?
注意
两个命令是等效的
[root@vultr ~]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service
Xshell 的用户私钥存放位置:D:DocumentsNetSarangSECSHUserKeys
关于安全
参考:换 ssh 端口, root 密码强度高, fail2ban 基本就没什么事了。
如何使用 fail2ban 防御 SSH 服务器的暴力破解攻击
fail2ban是在密码登录的情况下才用的吗?秘钥登录需不需要?