增加VPS账号的安全,有三种简单的方法:修改端口、禁止ROOT,密钥登陆,Denyhosts防暴力攻击
以下方法Centos、Ubuntu应该都支持
修改SSH登陆端口
默认的ssh_config中的 Port 22是注释状态,因此可以先取消注释,再增加一个端口:
1. 进入配置文件:`vi /etc/ssh/sshd_config`
2. 找到port 22,增加一个自己的端口 port2233(自己设定)。
1 | Port 22 |
- 重启ssh服务:
/etc/init.d/ssh restart
Centos
CentOS要麻烦一些
- 如果默认有防火墙,需要先防火墙添加端口(一般防火墙软件是firewalld)
1 | $ firewall-cmd --zone=public --add-port=2233/tcp --permanent |
- 如果开启了SELinux,需要把端口添加到SElinux名单中,此处需要先安装SELinux的管理工具
semanage
1 | # 先看一下安装semanage需要的软件包,用下面的命令 |
使用密钥登陆SSH
SSH登陆方式有账号+密码以及密钥两种,为了防止暴力破解,可以放弃账号+密码的方式,改用密钥文件验证。
执行命令,生成密钥文件:
ssh-keygen -t rsa生成密钥时会询问你密钥保存的位置,默认即可,还有你可以为你的密钥设置一个密码,默认为空,建议设置。
密钥生成后,进入密钥存放目录 .ssh ,执行命令将公钥生成一个新的文件:
cat id_rsa.pub >> authorized_keys使用WinSCP把 id-rsa 这个文件拷贝到本地,打开PuTTYGEN,执行Conversion->Import Key,导入 id-rsa ,然后Save private Key,这时会在本地生成一个 .ppk 文件
PuTTY使用密钥登录SSH方法:在PuTTY左侧 Category 找到 Connection->SSH->Auth->Private key file for authentication: ,Browse 选择刚才的 .ppk 文件。
建议再生成一个
.pem的文件,通用性更好1
2
3$ openssl rsa -in ~/.ssh/id_rsa -outform pem > filename.pem
# 密钥文件需要修改成只读权限,不然会报 Permissions 0644 for 'your private key' are too open.bad permissions的错误
$ chmod 400 filename.pem有了密钥,就可以禁用密码登陆这个方式了,使用名令:
vim /etc/ssh/sshd_config,在里面添加一行:PasswordAuthentication no,如果有,请去掉前面的#号,并修改成no。重启SSH服务:
/etc/init.d/ssh restartorsystemctl restart sshd如果需要一个密钥文件登录多台VPS,只要把id_rsa.pub里的内容粘贴到VPS的
~/.ssh/authorized_keys里,然后执行步骤7~8就可以了。
Denyhosts防爆力攻击
Linux个平台基本都能直接安装Denyhosts了,执行以下命令:
1 | #Debian/Ubuntu: |
安装好了Denyhosts,默认的配置基本上就可以防御一定的暴力攻击了,/etc/hosts.deny 文件里保存了被屏蔽的记录 。
转载并编辑自:免费资源部落-增加VPS安全