Linux 服务器防止SSH暴力破解之Denyhosts安装操作记录

之前京东云有活动,便买了个服务器,基本没怎么用过。这几天登陆时,发现自己的京东云服务器有大量的远程桌面破解信息,而且ip都不一样,作为一个对后端和安全了解甚少的小白,就只能度娘怎么防止这种情况,发现比较多的方法是通过DenyHosts脚本来实现,简单说就是将多次攻击的同一IP记录到/etc/hosts.deny文件,已达到自动屏蔽该ip的功能,具体原理可以看百科。

##步骤
#####下载、解压

  • wget http://freefr.dl.sourceforge.net/project/denyhosts/denyhosts/2.6/DenyHosts-2.6.tar.gz
  • tar xvf DenyHosts-2.6.tar.gz
    #####安装
  • cd DenyHosts-2.6
  • python setup.py install
  • cd /usr/share/denyhosts/
    默认安装到/usr/share/denyhosts

#####配置

  • cp denyhosts.cfg-dist denyhosts.cfg
  • vi denyhosts.cfg

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

#####启动

  • cp daemon-control-dist daemon-control
  • chown root daemon-control
  • chmod 700 daemon-control
  • ./daemon-control start

至此,安装、配置、启动完成了,但是这块我有报了如下的错:

starting DenyHosts:    /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg
python: can't open file '/usr/bin/denyhosts.py': [Errno 2] No such file or directory
这是因为 denyhosts.py 目录不对,造成的。此时denyhosts.py 的真正目录是在/usr/local/bin/下,所以修改daemon-control。

###***vi daemon-control***###
DENYHOSTS_BIN   = "/usr/bin/denyhosts.py"
改为
DENYHOSTS_BIN   = "/usr/local/bin/denyhosts.py"

再次执行 ./daemon-control start 就OK了

#####配置为开机自动启动

  • cd /etc/init.d
  • ln -s /usr/share/denyhosts/daemon-control denyhost
  • chkconfig --add denyhost
  • chkconfig denyhosts on
  • service denyhosts start

这就OK了?too young,中间又有一些其他小麻烦:

#####1.无chkconfig命令,服务器上有没法在线安装,所以只能本地安装。

  • 下载 chkconfig
  • 从本地复制到服务器上并安装
    scp /home/chkconfig_11.0-79.1-2_all.deb [email protected]:/home/
  • dpkg -i chkconfig_11.0-79.1-2_all.deb

#####2.语言包方面的问题

  • sudo apt install locales-all
  • dpkg-reconfigure

至此,大功告成。

参考:
http://blog.51cto.com/moo1985/290662
https://www.jianshu.com/p/b2d781f5396d
http://blog.51cto.com/wgkgood/406202
http://blog.csdn.net/jmpjmpkiss/article/details/55098794

你可能感兴趣的:(Linux)