之前京东云有活动,便买了个服务器,基本没怎么用过。这几天登陆时,发现自己的京东云服务器有大量的远程桌面破解信息,而且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 root@x.x.x.x:/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