linux服务器不得不注意的安全问题--ssh暴力破解--denyhosts
来源:互联网 发布:linux 自动运行脚本 编辑:程序博客网 时间:2024/05/22 12:34
本文已附上附件,是从该网站下载的,版本为较新的2.6版。
首选检查Sshd是否支持 Tcpwrap,只有支持Tcpwrap才可以安装Denyhost
# ldd /usr/sbin/sshd |grep wrap
# python -V
Python 2.4.3
先下载该软件,然后解压安装
# tar -xzvf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6
执行Python脚本进行安装,
# python setup.py install
程序脚本自动安装到/usr/share/denyhosts
库文件自动安装到/usr/lib/python2.4/site-packages/DenyHosts
denyhosts.py安装到/usr/bin
# cd /usr/share/denyhosts/
拷贝模板文件
# cp daemon-control-dist daemon-control
设置好启动脚本的所属用户和权限
# chown root daemon-control
# chmod 700 daemon-control
生成Denyhost的主配置文件,(将模板文件中开头是#的过滤后再导入到Denyhost.cfg)
# grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg
编辑Denyhost.cfg文件,根据自己需要进行相应的修改
----------------denyhosts.cfg--------------------------------------
SECURE_LOG = /var/log/secure #ssh 日志文件,它是根据这个文件来判断的,如还有其他的只要更改名字即可,例如将secure改为secure.1等
#控制用户登陆的文件,将多次连接失败的IP添加到此文件,达到屏蔽的作用
PURGE_DENY =
#过多久后清除已经禁止的,我这里为空表示永远不解禁
#禁止的服务名,如还要添加其他服务,只需添加逗号跟上相应的服务即可
#允许无效用户失败的次数
DENY_THRESHOLD_VALID = 2
#允许有效用户登录失败的次数
DENY_THRESHOLD_ROOT = 3
#允许root登录失败的次数
HOSTNAME_LOOKUP=NO
# 是否做域名反解,这里表示不做
DAEMON_LOG = /var/log/denyhosts
#自己的日志文件
AGE_RESET_VALID=5d #(h表示小时,d表示天,m表示月,w表示周,y表示年)
AGE_RESET_ROOT=25d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d
#用户的登陆失败计数会在多长时间后重置为0
RESET_ON_SUCCESS = yes
#如果一个ip登陆成功后,失败的登陆计数是否重置为0
DAEMON_SLEEP = 30s
# echo '/usr/share/denyhosts/daemon-control start' >> /etc/rc.d/rc.local
启动Denyhost的进程
# /usr/share/denyhosts/daemon-control start
可以查看到Denyhost在运行中
# ps -ef |grep deny
在另外一台机器上使用ssh进行连接,当在连续几次输入错误的密码后,会被自动阻止掉,在一定时内不可以再连接ssh连接记录的日志文件。
135
启动时出现了错误,可以使用下面方式解决
./daemon-control startstarting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg
Can't read: /private/var/log/system.log
[Errno 2] No such file or directory: '/private/var/log/system.log'
Error deleting DenyHosts lock file: /var/lock/subsys/denyhosts
[Errno 2] No such file or directory: '/var/lock/subsys/denyhosts'
使用:
mkdir -p /private/var/log/
mkdir -p /var/lock/subsys/
./daemon-control startstarting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg
Can't read: /private/var/log/system.log
[Errno 2] No such file or directory: '/private/var/log/system.log'
Error deleting DenyHosts lock file: /var/lock/subsys/denyhosts
[Errno 2] No such file or directory: '/var/lock/subsys/denyhosts'
使用:
touch /private/var/log/system.log
touch /var/lock/subsys/denyhosts
./daemon-control start
出现:starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg
DenyHosts could not obtain lock (pid: )
[Errno 17] File exists: '/var/lock/subsys/denyhosts'
使用:rm -f /var/lock/subsys/denyhosts
./daemon-control start
starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py –daemon –config=/usr/share/denyhosts/denyhosts.cfg
OK!
启动完成啦。
你可以使用service denyhosts status
来查看运行状态
DenyHosts is running with pid = 25874 表示已经启动起来了。
接下来就可以使用cat /etc/hosts.deny
来查看记录了
#service denyhost 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在目录/usr/local/bin/目录下,于是修改daemon-control文件
#vi daemon-control
DENYHOSTS_BIN = "/usr/bin/denyhosts.py"
DENYHOSTS_LOCK = "/var/lock/subsys/denyhosts"
DENYHOSTS_CFG = "/usr/share/denyhosts/denyhosts.cfg"
将第一行修改为DENYHOSTS_BIN = "/usr/local/bin/denyhosts.py"
在运行还会提示错误:导入Python版本错误的提示。如:
Traceback (most recent call last):
File "/usr/local/bin/denyhosts.py", line 5, in
import DenyHosts.python_version
ImportError: No module named DenyHosts.python_version
到这里错误很明了了,经过查询发现版本不对会导致这个问题。
分析后发现原因在此:以前本机已经有一个python2.4的版本,使用rpm安装的,默认的路径是/usr/lib/python2.4,因为要升级python到2.5,也没有对卸载这个2.4的版本,使用编译安装的python2.5,安装路径并没有配置,这默认安装到/usr/local/lib/python2.5这个路径,而目前激活的python环境是2.5的,可能因为denyhosts安装时会根据环境查找安装,因此会在/usr/local/lib/python2.5/site-packages路径下安装Denyhosts这个文件夹。当运行denyhosts时,脚本会指定使用的是/usr/lib/python*这个路径的python里(暂时没找到脚本哪个地方指定),因此它无法定位python的版本,会出现这个错误。
Traceback (most recent call last):
File "/usr/local/python-2.4/bin/denyhosts.py", line 5, in ?
import DenyHosts.python_version
ImportError: No module named DenyHosts.python_version
需要修改下面的部分:
1、/usr/share/denyhosts/daemon-control
PYTHON_BIN = "/usr/bin/env python"
改为
PYTHON_BIN = "/usr/local/python-2.4/bin/python"
#!/usr/bin/env python
改为
#!/usr/local/python-2.4/bin/python
DENYHOSTS_BIN = "/usr/bin/denyhosts.py"
改为
DENYHOSTS_BIN = "/usr/local/python-2.4/bin/denyhosts.py"
2.
cp -rp /usr/local/python-2.4/lib/python2.4/site-packages/DenyHosts/ /usr/local/python-2.4/lib/python2.4/
- linux服务器不得不注意的安全问题--ssh暴力破解--denyhosts
- 转载:linux服务器不得不注意的安全问题--ssh暴力破解--denyhosts解决
- Linux服务器应注意的安全问题-ssh暴力破解--denyhosts解决
- Linux服务器ssh暴力破解-denyhosts解决详解
- Linux防SSH暴力破解之Denyhosts
- linux使用denyhosts防ssh暴力破解
- 防止Linux暴力ssh破解密码方法denyhosts工具
- 最好的阻止SSH暴力破解的方法(DenyHosts)
- 最好的阻止SSH暴力破解的方法(DenyHosts)
- DenyHosts 阻止SSH暴力破解最好的方法
- 使用DenyHosts阻止SSH暴力破解
- 使用DenyHosts 阻止SSH暴力破解
- 部署DenyHosts防SSH暴力破解
- 使用DenyHosts防止SSh暴力破解
- denyhosts防暴力破解安装(linux)
- Linux 上DenyHosts阻止SSH暴力攻击
- Linux 上DenyHosts阻止SSH暴力攻击
- 利用denyhosts防止ssh暴力破解+脚本防破解
- ubuntu下如何编译C语言
- 【Oracle】Oracle 游标使用全解
- action
- (使用STL自带的排序功能进行排序)POJ 1877 Flooded!()
- 2013-11-04 实验之取球游戏(递推思想,数学归纳思想,思维逻辑思想)
- linux服务器不得不注意的安全问题--ssh暴力破解--denyhosts
- [整理]学习Android的博客和网站
- 专利申请指南
- MFC中非类成员函数调用类成员函数方法
- web.xml配置详解
- Java String 、 StringBuffer 、StringBuilder类的关系和区别
- cocos2d-x 多线程 获取可写路径失败CCFileUtils::sharedFileUtils()->getWritablePath()
- 机器学习笔记3 - Boosting方法
- 避免fragment 重新实例化