APP下载

对于虚拟服务器SSH暴力登录攻击的防范

2013-03-12汪颖

中国科技纵横 2013年1期
关键词:私钥公钥手动

汪颖

【摘要】虚拟服务器(VPS)是一种服务器分割技术,它是将一个服务器分割成多个虚拟的服务器,而每个虚拟服务器有自己单独的IP地址,其在节约带宽,提高访问速度,降低管理成本方面有着较大的优势,但是VPS的安全性还是面临着较大的考验,本文通过VPS在实际运行中遭遇的一次SSH暴力攻击来解析相应的防范措施。

【关键词】虚拟服务器SSH攻击

在VPS的日常维护中,查看系统日志是一个非常好的习惯,通过日志我们可以了解到VPS的运行状态,尤其对于VPS安全状态,我们更可以通过查看日志来获取信息,以下通过一次SSH的暴力攻击来探讨VPS的防范措施。

1修改SSH端口,禁止root登陆

修改/etc/ssh/sshd_config文件$sudovi/etc/ssh/sshd_config Port4484#一个别人猜不到的端口号 PermitRootLoginno $sudo/etc/init.d/sshrestart

2禁用密码登陆,使用RSA私钥登录

AmazonEC2服务器原本就是只可以使用私钥登录,但如果想在其它的计算机临时通过SSH登陆,又没带私钥文件的情况下,就很麻烦。所以需要手动开启密码验证登录。

#在客户端生成密钥

$ssh-keygen-trsa #把公钥拷贝至服务器 $ssh-copy-id-i.ssh/id_rsa.pubserver

#也可以手动将.shh/id_rsa.pub拷贝至服务器用户目录的.ssh中,修改访问权限

#$scp.shh/id_rsa.pubserver:~/.ssh #在服务器中 $cd./.ssh/

$mvid_rsa.pubauthorized_keys $chmod400authorized_keys $vi/etc/ssh/sshd_config

RSAAuthenticationyes#RSA认证 PubkeyAuthenticationyes#开启公钥验证

AuthorizedKeysFile.ssh/authorized_keys#验证文件路径 PasswordAuthenticationno#禁止密码认证 PermitEmptyPasswordsno#禁止空密码 UsePAMno#禁用PAM #最后保存,重启 $sudo/etc/init.d/sshrestart

3安装Denyhosts

这个方法比较省时省力。denyhosts是Python语言写的一个程序,它会分析sshd的日志文件,当发现重复的失败登录时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。这和我之前介绍的自动屏蔽扫描的脚本是一个思路。如果靠人工手动添加的话工作量非常巨大。现今denyhosts在各个发行版软件仓库里都有,而且不需要过多配置,简单易用。安装:

#Debian/Ubuntu:$sudoapt-getinstalldenyhosts

#RedHat/CentOS $yuminstalldenyhosts

#Archlinux $yaourtdenyhosts

#Gentoo $emerge-avdenyhosts

默认配置就能很好的工作,如要个性化设置可以修改/etc/denyhosts.conf:

$vi/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=DenyHostsReport

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

DAEMON_LOG=/var/log/denyhosts#自己的日志文件

DAEMON_SLEEP=30s#当以后台方式运行时,每读一次日志文件的时间间隔。

DAEMON_PURGE=1h#当以后台方式运行时,清除机制在HOSTS_DENY中终止旧条目的时间间隔,这个会影响PURGE_DENY的间隔。

查看我的/etc/hosts.deny文件发现里面已经有8条记录。

总结:通过之后运行监测,以上的配置能够抵御SSH暴力登陆,提升了虚拟服务器的安全性。

猜你喜欢

私钥公钥手动
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
基于改进ECC 算法的网络信息私钥变换优化方法
一种基于混沌的公钥加密方案
一种基于虚拟私钥的OpenSSL与CSP交互方案
小巧手动起来
风行S5001.6L手动尊享型
宝骏5601.8L手动豪华型
C4世嘉 1.6L手动豪华型
HES:一种更小公钥的同态加密算法