English |
  • 美国VPS主机推荐
  • |
  • 代购服务
  • |
  • 10美元以下VPS
  • |
  • VPS新手指南/教程
  • |
  • 留言板
  • |
  • 关于
  • | 登录 |

    Linux VPS上DenyHosts阻止SSH暴力攻击

    2009年07月23日 下午 | 作者:VPS侦探

    现在的互联网非常不安全,很多人没事就拿一些扫描机扫描ssh端口,然后试图连接ssh端口进行暴力破解(穷举扫描),所以建议vps主机的空间,尽量设置复杂的ssh登录密码,虽然在前段时间曾经介绍过Linux VPS禁止某个IP访问使用hosts.deny禁止某些IP访问,但是功能方面欠缺,如:不能自动屏蔽,那么有什么更好的办法吗,就可以使用denyhosts这款软件了,它会分析/var/log/secure(redhat,Fedora Core)等日志文件,当发现同一IP在进行多次SSH密码尝试时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽该IP的目的。

    DenyHosts官方网站为:http://denyhosts.sourceforge.net/

    LNMP一件安装包中自带该软件可以一键安装,命令:wget http://soft.vpser.net/lnmp/lnmp1.4beta.tar.gz && tar zxf lnmp1.4beta.tar.gz && cd lnmp1.4/tools/ && ./denyhosts.sh 回车确认即可开始安装配置,不需要下面的步骤进行安装配置。(该tools目录下也有denyhosts相似的工具fail2ban的一键安装工具 ./fail2ban.sh 安装即可)

    1、下载DenyHosts 并解压

    # wget http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz
    # tar zxvf DenyHosts-2.6.tar.gz
    # cd DenyHosts-2.6

    2、安装、配置和启动

    安装前建议执行:echo "" > /var/log/secure && service rsyslog restart 清空以前的日志并重启一下rsyslog

    # python setup.py install
    因为DenyHosts是基于python的,所以要已安装python,大部分Linux发行版一般都有。默认是安装到/usr/share/denyhosts/目录的,进入相应的目录修改配置文件

    # cd /usr/share/denyhosts/
    # cp denyhosts.cfg-dist denyhosts.cfg
    # cp daemon-control-dist daemon-control

    默认的设置已经可以适合centos系统环境,你们可以使用vi命令查看一下denyhosts.cfg和daemon-control,里面有详细的解释
    接着使用下面命令启动denyhosts程序
    # chown root daemon-control
    # chmod 700 daemon-control
    # ./daemon-control start

    如果要使DenyHosts每次重起后自动启动还需做如下设置:
    # ln -sf /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
    # chkconfig --add denyhosts
    # chkconfig --level 2345 denyhosts on
    或者执行下面的命令加入开机启动,将会修改/etc/rc.local文件:
    # echo "/usr/share/denyhosts/daemon-control start" >> /etc/rc.local

    DenyHosts配置文件/usr/share/denyhosts/denyhosts.cfg说明:

    SECURE_LOG = /var/log/secure
    #sshd日志文件,它是根据这个文件来判断的,不同的操作系统,文件名稍有不同。

    HOSTS_DENY = /etc/hosts.deny
    #控制用户登陆的文件

    PURGE_DENY = 5m
    DAEMON_PURGE = 5m
    #过多久后清除已经禁止的IP,如5m(5分钟)、5h(5小时)、5d(5天)、5w(5周)、1y(一年)

    BLOCK_SERVICE  = sshd
    #禁止的服务名,可以只限制不允许访问ssh服务,也可以选择ALL

    DENY_THRESHOLD_INVALID = 5
    #允许无效用户失败的次数

    DENY_THRESHOLD_VALID = 10
    #允许普通用户登陆失败的次数

    DENY_THRESHOLD_ROOT = 5
    #允许root登陆失败的次数

    HOSTNAME_LOOKUP=NO
    #是否做域名反解

    DAEMON_LOG = /var/log/denyhosts

    为防止自己的IP被屏蔽,可以:echo "你的IP" >>  /usr/share/denyhosts/allowed-hosts 将你的IP加入白名单,再重启DenyHosts:/etc/init.d/denyhosts ,如果已经被封,需要先按下面的命令删除被封IP后再加白名单。

    如有IP被误封,可以执行下面的命令解封:wget http://soft.vpser.net/security/denyhosts/denyhosts_removeip.sh && bash denyhost_removeip.sh 要解封的IP

    更多的说明请查看自带的README文本文件,好了以后维护VPS就会省一些心了,但是各位VPSer们注意了安全都是相对的哦,没有绝对安全,将密码设置的更Strong,并请定期或不定期的检查你的VPS主机,而且要定时备份你的数据哦。

    与DenyHosts类似的软件还有fail2ban功能上更多,还可以对ftp进行保护,自己可以搜索看一下。

    >>转载请注明出处:VPS侦探 本文链接地址:https://www.vpser.net/security/denyhosts.html
    VPS侦探推荐:
    遨游主机DiaHostingLinodePhotonVPSOAH新加坡VPSLOCVPSKVMLAVPS2EZBudgetVMVultr美国VPS主机
    欢迎加入VPS侦探论坛交流:https://bbs.vpser.net

    发表评论

    *必填

    *必填 (不会被公开)

    3 + 4 = ?

    评论(16条评论)

    1. /usr/share/denyhosts/allowed-hosts 这个文件我放着似乎也不凑效。

    2. 想请教一下,如何长期禁用那些已经被禁用的IP。

      VPS侦探 回复:

      @Aceslup, 长期禁用只能通过iptables 自己单独添加了

    3. 另外可不可以不阻止某个IP啊 有时候老忘记密码

      VPSer 回复:

      @叶子天堂, 白名单在 /usr/share/denyhosts/data/allowed-hosts 没这个文件的话创建一个 将ip添加到这个文件里 重启就可以

    4. 要是var/log下面没有secure这个文件,怎么做?
      kvm 128M debian6

    5. # python setup.py install后,最后一行出现
      Writing /usr/local/lib/python2.7/dist-packages/DenyHosts-2.6.egg-info

      这个是什么情况呢

      VPSer 回复:

      @学习,这个是正常的安装提示

    6. PURGE_DENY = 5m请问这个是多上时间

      VPSer 回复:

      @soolly, 5分钟

    7. 这个是不是很消耗系统资源的?

      VPSer 回复:

      @短歌行, 占资源很少

    8. 用public/private key认证登录不是更好吗?

    9. [...] SSH密钥登录让Linux VPS/服务器更安全 2011年01月10日 上午 | 作者:VPSer随着PHP越来越流行,Linux VPS/服务器的使用也越来越多,Linux的安全问题也需要日渐加强,如果你安装过DenyHosts并设置过邮件提醒,你每天可能会受到数封DenyHosts Report将前来破解SSH密码的IP加入/etc/hosts.deny。Linux SSH登录有两种:1、使用密码验证登录通常VPS或服务器开通后都是直接提供IP和root密码,使用这种方式就是通过密码方式登录。如果密码不够强壮,而且没有安装DenyHosts之类的防止SSH密码破解的软件,那么系统安全将存在很大的隐患。2、使用密钥验证登录 基于密钥的安全验证必须为用户自己创建一对密钥,并把共有的密钥放在需要访问的服务器上。当需要连接到SSH服务器上时,客户端软件就会向服务器发出请求,请求使用客户端的密钥进行安全验证。服务器收到请求之后,先在该用户的根目录下寻找共有密钥,然后把它和发送过来的公有密钥进行比较。如果两个密钥一致,服务器就用公有的密钥加密“质询”,并把它发送给客户端软件(putty,xshell等)。客户端收到质询之后,就可以用本地的私人密钥解密再把它发送给服务器,这种方式是相当安全的。一、在客户端生成密钥首先下载putty,运行puttygen.exe,点击“Generate”,并在puttygen Key区域任意晃动鼠标,来加速产生随机数。“key comment”填写密钥备注,可以按默认或者填写自己的备注信息。“Key passphrase”填写密钥密码,强烈建议填写,安全性更高,不填会自动登录。最后点击“Save public key” 将公钥保存为:id_rsa.pub,用于上传到服务器上;点击“Save private key”将私钥保存为:id_rsa.ppk ,改文件一定要保存好,用于putty登录。二、将密钥添加到远程Linux服务器1、用winscp,将id_rsa.pub文件上传到/root/.ssh/下面(如果没有则创建此目录),并重命名为:authorized_keys(也可以使用命令将id_rsa.pub里面的内容复制到此authorized_keys文件里)。2、修改/etc/ssh/sshd_config 文件,将RSAAuthentication 和 PubkeyAuthentication 后面的值都改成yes ,保存。3、重启sshd服务,Debian/Ubuntu执行/etc/init.d/ssh restart ;CentOS执行:/etc/init.d/sshd restart。三、客户端测试使用密钥登录1、使用putty登录运行putty,在Host Name填写:root@主机名或ip如果设置了密钥密码,出现:Passphrase for key "imported-openssh-key"时输入密钥密码。如果设置没问题就会登录成功,出现用户提示符。四、修改远程Linux服务器sshd服务配置1、修改/etc/ssh/sshd_config 文件将PasswordAuthentication yes 修改成 PasswordAuthentication no2、重启sshd服务Debian/Ubuntu执行/etc/init.d/ssh restart ;CentOS执行:/etc/init.d/sshd restart。ok,设置完成。再提醒一下一定要保存好私钥文件id_rsa.ppk。如果是其他SSH客户端生成密钥的步骤也类似。比如XShell:Tool ->User Key Generation Wizard,Key Type选择RSA,其他默认,在最后一步输入密钥的名称和密码。再Tool ->User key Manager,选择前面生成的密钥的名称,点击Properties。把保存的公钥按文章前部分的方法上传到服务上。Xshell能够按分类保存N多会话、支持Tab、支持多密钥管理等,管理比较多的VPS/服务器使用XShell算是比较方便的,推荐使用。原创文章,谢绝转载! >>转载请注明出处:VPS侦探 本文链接地址:http://www.vpser.net/security/linux-ssh-authorized-keys-login.html相关文章:如何使用Putty远程(SSH)管理Linux VPSSSH远程会话管理工具 – screen使用教程VPSYOU 2010年10月VPS+虚拟主机优惠码VPSYOU OpenVZ Linux VPS 正式上线,3$起售Linux SSH远程文件/目录传输命令scpLinux VPS内存占用那么多?- 解析Linux内存机制RAMHOST的VPS小攻略之SSH和OpenVPN安装配置[转]Linux VPS上查找后门程序ServerPronto – $4.95 256MB独立服务器 not VPSVPS/服务器选购之网络带宽基础知识篇google_ad_client = "pub-3421055613838817"; /* 468x15, 创建于 10-1-6 */ google_ad_slot = "3251390416"; google_ad_width = 468; google_ad_height = 15; 发表评论(评论暂缺) 分类:VPS安全 标签: Linux VPS, Putty, SSH, 安全, 密钥登录, 服务器 Tags: Linux VPS,Putty,SSH,安全,密钥登录,服务器.VPS侦探推荐: DiaHosting、Linode、PhotonVPS、VPSYou、瑞豪开源、第九主机等美国VPS主机。 欢迎加入VPS侦探论坛交流:http://bbs.vpser.net发表评论姓名: *必填邮件: *必填 (不会被公开)网站: 点击取消回复/* */ var commentformid = "commentform"; var USERINFO = false; var atreply = "authorlink"; /* */ 关于VPS侦探 VPS侦探是一个致力于美国VPS主机推荐、国内VPS主机推荐、VPS主机架设、VPS优化、VPS优惠信息及VPS免费试用的信息共享平台,这里将提供您所需要的关于VPS的价值性服务。 请尊重作者的劳动成果,转载请注明出处。 联系我们VPS侦探推荐 VPS侦探建立在Linode和DiaHosting上。 本站强烈推荐:DiaHosting、Linode、PhotonVPS、瑞豪开源、VPSYou、第九主机等美国VPS主机。美国VPS/服务器/VPN代购:http://503228080.paipai.com/http://shop63846532.taobao.com/ 搜索本站内容 [...]

    10. 如出现:[Errno 2] No such file or directory: '/var/lock/subsys/denyhosts'
      执行:
      mkdir -p /var/lock/subsys/
      touch /var/lock/subsys/denyhost
      创建即可。

    11. 好专业啊。以后向你学习,有不懂的我可知道找谁了。呵。