54SA.COM|专注于系统运维管理,为中国SA提供动力!
Getting online shouldn't be tough. $7.99 .COMs
系统管理员之家Banner
当前位置: 主页 > Linux > 网络管理 > Linux安全 >

如何用root安全登录VPS,防止sshd入侵

时间:2011-03-02 11:15来源:网络 编辑:秩名

每天打开 /var/log/secure 看看有多少 IP 多少次企图登录你的服务器?有多少个 pam_unix(sshd:auth),Failed password for invalid

这个世界总有那么多无聊的人在重复着做着扫描,爆破的事情,所以安全问题不可小觑,如何保护你的VPS,你的小站,你必须要知道的:

禁止 root 直接登录 sshd
登录VPS时必须用一个普通帐号登录,然后 su 成 root。可以修改 /etc/ssh/sshd_config 来禁止 root 直接登录:

PermitRootLogin no

启用 SSH Keys 登录
这种方法虽然不允许 root 用输入密码的方式直接登录 ssh,但是可以通过使用一对 ssh public/private key 来登录。配置步骤如下:

1、在客户端运行下面的命令,创建一对 public/private key:

ssh-keygen -t dsa按照提示,上面的命令会创建2个文件:id_dsa 和 id_dsa.pub,前一个是 private key,后一个是 public key。创建key的时候会提示输入 passphrase,相当于密码一样的东西,用来保护 private key不被滥用。

2、保护好生成的 private key,不要让外界访问到。

3、在你要访问的服务器上创建一个 /root/.ssh/authorized_keys 文件,把生成的 publice key(id_dsa.pub)的内容 copy+paste 到 authorized_keys 里,注意小心完整的 copy,不要有空格/空行。

4、禁止 root 用输入密码的方式直接登录 sshd,修改 /etc/ssh/sshd_config,加上/修改这一行:

PermitRootLogin without-password重启 sshd
/etc/init.d/sshd restart
 

用DenyHosts防止重复登录爆破

DenyHosts是Python语言写的一个程序,它会分析SSHD的日志文件,当发现重复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽IP的功能。

下载DenyHosts与安装
        地址:DenyHosts官方网站为:http://denyhosts.sourceforge.net,下载与你操作系统对应的版本安装。如我的系统centos5.2操作为:
sudo rpm -ivh DenyHosts-2.6-python2.4.noarch.rpm
Preparing...                ########################################### [100%]
   1:DenyHosts              ########################################### [100%]

  配置
        默认安装目录为/usr/share/denyhosts/,操作命令:
cd /usr/share/denyhosts/
sudo cp daemon-control-dist daemon-control
sudo cp denyhosts.cfg-dist denyhosts.cfg
cd /etc/init.d/
sudo ln -s /usr/share/denyhosts/daemon-control denyhosts
sudo /sbin/chkconfig --add denyhosts
sudo /sbin/chkconfig --level 2345 denyhosts on
sudo /sbin/service denyhosts start
starting DenyHosts:    /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg
 

DenyHosts配置文件: vi /etc/denyhosts.cfg
 

 SECURE_LOG = /var/log/secure
#ssh 日志文件,如果是redhat系列是根据/var/log/secure文件来判断的。
#Mandrake、FreeBSD是根据 /var/log/auth.log来判断的,而SUSE则是用/var/log/messages来判断的。这些在配置文件里面都有很详细的解释。
HOSTS_DENY = /etc/hosts.deny
#控制用户登陆的文件
PURGE_DENY = 30m
#过多久后清除已经禁止的,空表示永久不清除

#            'm' = minutes
#            'h' = hours
#            'd' = days
#            'w' = weeks
#            'y' = years

BLOCK_SERVICE = sshd
#禁止的服务名,当然DenyHost不仅仅用于SSH服务,还可用于SMTP等等。
DENY_THRESHOLD_INVALID = 1
#允许无效用户失败的次数
DENY_THRESHOLD_VALID = 5
#允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 3
#允许root登陆失败的次数
HOSTNAME_LOOKUP=NO
#是否做域名反解
ADMIN_EMAIL =
#管理员邮件地址,它会给管理员发邮件
DAEMON_LOG = /var/log/denyhosts
#DenyHosts日志文件存放的路径

OK,你已大功告成,可以看看/etc/hosts.deny内是否有禁止的IP
 
 

[责任编辑:admin]


关于 的文章
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
用户名:
最新评论 进入详细评论页>>