您的位置: 站云中国 » 云主机 » linux环境下防止SSH暴力破解、攻击
linux环境下防止SSH暴力破解、攻击
2012-08-08 08:18 站云中国
当你linux服务器暴露在互联网之中,该服务器将会遭到互联网上的扫描软件进行骚描,并试图猜测SSH登录口令。
  你会发现,每天会有条SSH登录失败纪录。那些扫描工具将对你的服务器构成威胁,你必须设置复杂登录口令,并将尝试多次登录失败的IP给阻止掉,让其在一段时间内不能访问该服务器。
  用DenyHosts可以阻止试图猜测SSH登录口令,它会分析/var/log/secure等日志文件,当发现同一IP在进行多次SSH密码尝试时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽该IP的目的。

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

1. 安装
# tar -zxvf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6
# python setup.py install
默认安装到/usr/share/denyhosts目录的。
2. 配置
# cd /usr/share/denyhosts/
# cp denyhosts.cfg-dist denyhosts.cfg
# vi denyhosts.cfg

      PURGE_DENY = 50m #过多久后清除已阻止IP
  HOSTS_DENY = /etc/hosts.deny #将阻止IP写入到hosts.deny
  BLOCK_SERVICE = sshd #阻止服务名
  DENY_THRESHOLD_INVALID = 1 #允许无效用户登录失败的次数
  DENY_THRESHOLD_VALID = 10 #允许普通用户登录失败的次数
  DENY_THRESHOLD_ROOT = 5 #允许root登录失败的次数
  WORK_DIR = /usr/local/share/denyhosts/data #将deny的host或ip纪录到Work_dir中
  DENY_THRESHOLD_RESTRICTED = 1 #设定 deny host 写入到该资料
  LOCK_FILE = /var/lock/subsys/denyhosts #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
  HOSTNAME_LOOKUP=NO #是否做域名反解
  ADMIN_EMAIL = #设置管理员邮件地址
  DAEMON_LOG = /var/log/denyhosts #自己的日志文件
  DAEMON_PURGE = 10m #该项与PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间。

3. 设置启动脚本
# cp daemon-control-dist daemon-control
# chown root daemon-control
# chmod 700 daemon-control
完了之后执行daemon-contron start就可以了。
# ./daemon-control start
如果要使DenyHosts每次重起后自动启动还需做如下设置:
# ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
# chkconfig --add denyhosts
# chkconfig denyhosts on
然后就可以启动了:
# service denyhosts start
可以看看/etc/hosts.deny内是否有禁止的IP,有的话说明已经成功了。