linux服务器下通过iptables+Denyhost抵御暴力破解的配置方法


使用iptables 现在每分钟连接ssh的次数

#允许本地环回接口访问

  iptables -A INPUT -i lo -j ACCEPT

#对已经建立的所有链接都放行

  iptables -A INPUT -m state Cstate ESTABLISHED -j ACCEPT

#每分钟对ssh的新连接只允许两个,已建立的连接不限制

代码如下:
iptables -A INPUT -p tcp Cdport 22 -m limit Climit 2/minute Climit-burst 2 -m state Cstate NEW -j ACCEPT

#添加默认策略拒绝所有

  iptables -P INPUT DROP

使用Denyhost 对错误的ssh密码的ip进行拒绝访问

下载denyhost http://sourceforge.net/projects/denyhosts/files/

安装denyhost

  tar -zxvf DenyHosts-2.6.tar.gz  cd DenyHosts-2.6  python setup.py install             #安装DenyHosts  cd /usr/share/denyhosts/            #默认安装路径  cp denyhosts.cfg-dist denyhosts.cfg        #denyhosts.cfg为配置文件  cp daemon-control-dist daemon-control      #daemon-control为启动程序  chown root daemon-control           #添加root权限  chmod 700 daemon-control           #修改为可执行文件  ln -s /usr/share/denyhosts/daemon-control /etc/init.d  #对daemon-control进行软连接,方便管理  /etc/init.d/daemon-control start   #启动denyhosts  chkconfig daemon-control on    #将denghosts设成开机启动  

配置denyhost

  vim /usr/share/denyhosts/denyhosts.cfg  HOSTS_DENY = /etc/hosts.deny     #控制用户登陆的文件  PURGE_DENY = 30m         #过多久后清除已经禁止的,设置为30分钟;  BLOCK_SERVICE = sshd       #禁止的服务名,当然DenyHost不仅仅用于SSH服务  DENY_THRESHOLD_INVALID = 1    #允许无效用户失败的次数  DENY_THRESHOLD_VALID = 5     #允许普通用户登陆失败的次数  DENY_THRESHOLD_ROOT = 5     #允许root登陆失败的次数  DAEMON_LOG = /var/log/denyhosts  #DenyHosts日志文件存放的路径,默认  

更改DenyHosts的默认配置之后,重启DenyHosts服务即可生效:

  /etc/init.d/daemon-control restart   #重启denyhosts  

转自:http://www.zhengdazhi.com/?p=563

参与评论