增强vps安全

更改端口

  1. 使用命令进入ssh配置文件
    vi /etc/ssh/sshd_config
  2. 找到#port 22,将前面的#去掉,然后修改端口 port 123(自己设定)
  3. 重启ssh服务
    systemctl restart sshd

使用密钥登录

  1. 参照ssh免密码登录的配置将自己的公钥发送到远程主机上
  2. 同样进入ssh配置文件修改
    vi /etc/ssh/sshd_config
RSAAuthentication yes
#RSA认证
PubkeyAuthentication yes
#开启公钥验证
AuthorizedKeysFile    .ssh/authorized_keys
#验证文件路径 
PasswordAuthentication no
#禁止密码认证
PermitEmptyPasswords no
#禁止空密码
UsePAM no
#禁用PAM
  1. 修改后重启ssh服务

禁用Root账号登录

  1. 如果你已经设置SSH密钥登录的方式,就可以禁用Root账号了,或者你可以新建一个VPS账号。执行以下命令
    adduser username # 添加用户名
    passwd username # 修改密码
  2. 然后编辑进入配置:vim /etc/ssh/sshd_config,找到PermitRootLogin yes,然后后面的Yes改no,如果没有这一行命令,直接将:PermitRootLogin no 加进去。
  3. 修改后同样重启ssh服务

DenyHosts防暴力攻击

DenyHosts简介

DenyHosts是Python写的一个程序软件,运行于Linux上预防SSH暴力破解的,它会分析sshd的日志文件(/var/log/secure),当发现重复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。
项目主页 DenyHosts安装包下载地址

安装

tar zxvf DenyHosts-2.6.tar.gz                             #解压源码包
cd DenyHosts-2.6                                          #进入安装解压目录
python setup.py install                                   #安装DenyHosts
cd /usr/share/denyhosts/                                  #默认安装路径
cp denyhosts.cfg-dist denyhosts.cfg                       #denyhosts.cfg为配置文件
cp daemon-control-dist daemon-control                     #daemon-control为启动程序
chown root daemon-control                                 #添加root权限
chmod 700 daemon-control                                  #修改为可执行文件
ln -s /usr/share/denyhosts/daemon-control /etc/init.d     #对daemon-control进行软连接,方便管理

安装到这一步就完成了。

/etc/init.d/daemon-control start         #启动denyhosts
chkconfig daemon-control on              #将denghosts设成开机启动
  • 如果你要自定义Denyhosts的相关配置,执行:vim /etc/denyhosts.conf,以下是相关参数的说明:
SECURE_LOG = /var/log/auth.log #ssh 日志文件,它是根据这个文件来判断的。
HOSTS_DENY = /etc/hosts.deny #控制用户登陆的文件
PURGE_DENY = #过多久后清除已经禁止的,空表示永远不解禁
BLOCK_SERVICE = sshd #禁止的服务名,如还要添加其他服务,只需添加逗号跟上相应的服务即可
DENY_THRESHOLD_INVALID = 5 #允许无效用户失败的次数
DENY_THRESHOLD_VALID = 10 #允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 1 #允许root登陆失败的次数
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /var/lib/denyhosts #运行目录
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES #是否进行域名反解析
LOCK_FILE = /var/run/denyhosts.pid #程序的进程ID
ADMIN_EMAIL = root@localhost #管理员邮件地址,它会给管理员发邮件
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts 
SMTP_SUBJECT = DenyHosts Report
AGE_RESET_VALID=5d #用户的登录失败计数会在多久以后重置为0,(h表示小时,d表示天,m表示月,w表示周,y表示年)
AGE_RESET_ROOT=25d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d
RESET_ON_SUCCESS = yes #如果一个ip登陆成功后,失败的登陆计数是否重置为0

你可能感兴趣的:(增强vps安全)