增加VPS安全性

增加VPS账号的安全,有三种简单的方法:修改端口、禁止ROOT,密钥登陆,Denyhosts防暴力攻击
以下方法Centos、Ubuntu应该都支持

修改SSH登陆端口

默认的ssh_config中的 Port 22是注释状态,因此可以先取消注释,再增加一个端口:

1. 进入配置文件:`vi /etc/ssh/sshd_config`
2. 找到port 22,增加一个自己的端口 port2233(自己设定)。
1
2
Port 22
Port 2233
  1. 重启ssh服务:/etc/init.d/ssh restart

Centos

CentOS要麻烦一些

  1. 如果默认有防火墙,需要先防火墙添加端口(一般防火墙软件是firewalld)
1
2
$ firewall-cmd --zone=public --add-port=2233/tcp --permanent
$ firewall-cmd --reload
  1. 如果开启了SELinux,需要把端口添加到SElinux名单中,此处需要先安装SELinux的管理工具semanage
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 先看一下安装semanage需要的软件包,用下面的命令
$ yum provides /usr/sbin/semanage

policycoreutils-python-utils-2.8-16.1.0.1.el8.noarch : SELinux policy core python utilities
Repo : ol8_baseos_latest
Matched from:
Filename : /usr/sbin/semanage

policycoreutils-python-utils-2.9-3.0.1.el8.noarch : SELinux policy core python utilities
Repo : ol8_baseos_latest
Matched from:
Filename : /usr/sbin/semanage

policycoreutils-python-utils-2.9-3.0.1.el8_1.1.noarch : SELinux policy core python utilities
Repo : ol8_baseos_latest
Matched from:
Filename : /usr/sbin/semanage

policycoreutils-python-utils-2.9-9.0.1.el8.noarch : SELinux policy core python utilities
Repo : ol8_baseos_latest
Matched from:
Filename : /usr/sbin/semanage

policycoreutils-python-utils-2.9-14.0.1.el8.noarch : SELinux policy core python utilities
Repo : ol8_baseos_latest
Matched from:
Filename : /usr/sbin/semanage

# 可以看到最新的软件包是 2.9-14
$ yum install -y policycoreutils-python-utils
# 添加端口
$ semanage port -a -t ssh_port_t -p tcp 2233
# 查看端口是否添加
$ semanage port -l | grep ssh_port

使用密钥登陆SSH

  1. SSH登陆方式有账号+密码以及密钥两种,为了防止暴力破解,可以放弃账号+密码的方式,改用密钥文件验证。

  2. 执行命令,生成密钥文件:ssh-keygen -t rsa

  3. 生成密钥时会询问你密钥保存的位置,默认即可,还有你可以为你的密钥设置一个密码,默认为空,建议设置。

  4. 密钥生成后,进入密钥存放目录 .ssh ,执行命令将公钥生成一个新的文件:cat id_rsa.pub >> authorized_keys

  5. 使用WinSCP把 id-rsa 这个文件拷贝到本地,打开PuTTYGEN,执行Conversion->Import Key,导入 id-rsa ,然后Save private Key,这时会在本地生成一个 .ppk 文件

  6. PuTTY使用密钥登录SSH方法:在PuTTY左侧 Category 找到 Connection->SSH->Auth->Private key file for authentication: ,Browse 选择刚才的 .ppk 文件。

  7. 建议再生成一个.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
  8. 有了密钥,就可以禁用密码登陆这个方式了,使用名令:vim /etc/ssh/sshd_config ,在里面添加一行:PasswordAuthentication no,如果有,请去掉前面的#号,并修改成no。

  9. 重启SSH服务:/etc/init.d/ssh restart or systemctl restart sshd

  10. 如果需要一个密钥文件登录多台VPS,只要把id_rsa.pub里的内容粘贴到VPS的~/.ssh/authorized_keys里,然后执行步骤7~8就可以了。

Denyhosts防爆力攻击

Linux个平台基本都能直接安装Denyhosts了,执行以下命令:

1
2
3
4
5
#Debian/Ubuntu:
root@ubuntu:~$ sudo apt-get install denyhosts

#RedHat/CentOS
root@centos:~$ yum install denyhosts

安装好了Denyhosts,默认的配置基本上就可以防御一定的暴力攻击了,/etc/hosts.deny 文件里保存了被屏蔽的记录 。

转载并编辑自:免费资源部落-增加VPS安全