VPS SSH帐号是咱们平常管理VPS的主要登入方式,尤为是Root帐号,对Linux系统安全相当重要。之前好多站长喜欢用Putty中文版,这实际是别人修改官方Putty汉化而来,这些软件被植入了后门,致使好几个有名的站点信息泄露,损失惨重。linux
如何知道本身的VPS帐号正在遭受坏人的扫描和暴力破解呢?简单的方法就是查看日志:cat /var/log/auth.log。如何来加强VPS SSH帐号的安全性呢?除了养成使用正规软件的好习惯外,还要从VPS自己来增强VPS SSH帐号的安全性。shell
默认的SSH端口都是22,经过修改本身的VPS的端口先为扫描者增长一道端口门槛,VPS默认的帐号是Root,若是咱们禁用了Root,那么要攻破帐号又得先暴力猜想VPS的帐号,难度又增长几分。若是还不放心,咱们能够直接禁用密码登陆验证VPS的方式,改用密钥登陆,这样安全系数是至关高了。vim
Linux还有一个自动统计VPS登陆错误工具:Denyhosts,一旦登陆VPS帐号错误次数超过了Denyhosts安全设置,Denyhosts就会将该IP记录下来,同时将其放入黑名单当中,禁止该IP在某一段时间内继续访问VPS,经过Denyhosts能够实现自动封锁恶意IP。安全
VPS主机和网站安全优化是一个持久的问题,没有一劳永逸的“安全设置”,道高一尺,魔高一丈,咱们只有不断地发现问题,才能最大限度地保护本身网站和VPS安全:服务器
加强VPS SSH帐号安全:改端口,禁止Root,密钥登陆,Denyhosts防暴力攻击ssh
1、加强VPS SSH帐号安全方法一:修改SSH登陆端口ide
一、用下面命令进入配置文件。工具
vi /etc/ssh/sshd_config
二、找到#port 22,将前面的#去掉,而后修改端口 port 123(本身设定)。优化
三、而后重启ssh服务。网站
/etc/init.d/ssh restart
一、SSH登陆方式有帐号+密码和密钥两种形式,为了阻止暴力破解VPS的帐号和密码,咱们能够放弃密码验证的方式,改用密钥文件验证。
二、执行如下命令在VPS上生成密钥文件。
ssh-keygen -t rsa
三、生成密钥时会询问你密钥保存的位置,默认便可,还有你能够为你的密钥还设置一个密码,默认为空。
四、密钥生成后,进入密钥存放的目录中,执行如下命令,将公钥生成一个新的文件。
cat id_rsa.pub >> authorized_keys
五、将id-rsa这个私钥文件下载到本地,打开PuTTYGen软件,执行Conversions->Import Key,导入这个私钥文件。
六、Putty使用密钥登陆SSH方法:若是你要使用Putty,在PuTTYGen中选择Save private key,这时会在本地生成一个PPK文件。
七、而后在Putty中填入服务器名,在SSH受权方式中选择密钥,导入刚刚保存的PPK文件。
八、使用Xshell经过密钥登陆VPS方法:若是要使用Xshell,请在PuTTYGen的Conversions中选择Export Open#SSH Key,设置一个名称保存。
九、而后启用Xshell,填入服务器IP,在用户身份验证中选择“Public Key”,而后浏览导入刚刚你保存的Key文件。
十、导入了Key后,你就能够直接打开登陆VPS了,不须要输入密码,便可进入VPS。
十一、有了密钥登陆VPS,咱们就能够禁止用密码登陆这种验证方式了,仍是编辑配置:vim /etc/ssh/sshd_config,
添加一行:PasswordAuthentication no,若是有了这一行,请把yes改为no,保存,重启SSH服务,生效。
ChallengeResponseAuthentication no
UsePam no
一、若是你已经设置SSH密钥登陆的方式,就能够禁用Root帐号了,或者你能够新建一个VPS帐号。执行如下命令:
useradd freehao123 #添加用户名 passwd freehao123 #为freehao123用户名设置密码
二、而后编辑进入配置:vim /etc/ssh/sshd_config,找到PermitRootLogin yes,而后后面的Yes改no,若是没有这一行命令,直接将:PermitRootLogin no 加进去。
三、保存后,重启SSH服务,生效。
4、加强VPS SSH帐号安全方法四:Denyhosts防暴力攻击
一、Linux各平台如今基本上均可以直接安装Denyhosts了,执行如下命令:
Debian/Ubuntu: sudo apt-get install denyhosts RedHat/CentOS yum install denyhosts Archlinux yaourt denyhosts Gentoo emerge -av denyhosts
二、安装好了Denyhosts,默认的配置基本上就能够防护必定的暴力攻击了,/etc/hosts.deny 文件里保存了被屏蔽的记录。
三、若是你要自定义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 SSH帐号的安全性,那么如何得知本身的VPS曾经或正在遭受帐号暴力破解登陆呢?执行如下命令,查询出来的结果中包含了“ip地址=数量”就是攻击者信息。
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}'
二、目前在Putty官网上没有看到中文版本的Putty,因此网上流行的一些汉化版本的Putty颇有可能被植入了后门,你们在使用时必定要特别留心。Xshell官网直接提供了多国语言,包括中文在内。