DenyHosts清除黑名单IP地址方法

方法一

背景

连接远程服务器发生了以下的错误

ssh_exchange_identification: read: Connection reset

我想应该是我当前的 IP 地址被 DenyHosts 加入了黑名单
本来想只要将当前的 ip 地址在黑名单中去掉就可以了
没想到事实并不是如此,为此还查资料花费了一点功夫
现记录下来
注意 :
DenyHosts会读取多个记录确保没有漏网之鱼,清空/var/log/secure和/etc/hosts.deny并不能完美解锁自己的IP, 很快就会被DenyHosts重新锁定. 这也是DenyHosts强大的地方.

解决

停用 DenyHosts : systemctl stop denyhosts.service
删除黑名单中当前的ip地址: vim /etc/hosts.deny
进入 /var/lib/denyhosts

-rw-r--r-- 1 root root    39 2月  16 2015 allowed-hosts
-rw-r--r-- 1 root root 71451 7月  19 10:58 hosts
-rw-r--r-- 1 root root 71270 7月  19 10:58 hosts-restricted
-rw-r--r-- 1 root root 71433 7月  19 10:58 hosts-root
-rw-r--r-- 1 root root 71280 7月  19 10:58 hosts-valid
-rw-r--r-- 1 root root   105 7月  19 10:58 offset
-rw-r--r-- 1 root root     0 7月  19 10:58 suspicious-logins
-rw-r--r-- 1 root root 44731 7月  19 10:58 users-hosts
-rw-r--r-- 1 root root 50925 7月  19 10:58 users-invalid
-rw-r--r-- 1 root root   643 7月  19 10:58 users-valid

依次在上面各个文件中移除自己当前的IP地址
如果要将当前的IP地址添加到白名单中,可以在 /etc/hosts.allow 添加
sshd: ip地址
allowed-hosts 添加 IP地址
重启 DenyHosts
注意: 这些文件里有很多被拉入黑名单的IP地址,vim编辑的时候可以在命令行模式下使用 /ip地址 来查找, n 和 N 上下翻动,再在命令行模式下 :noh 取消查找
总结 :从/etc/hosts.deny移除ip,然后删除/var/log/secure文件中的登录记录。
denyhosts.py可以做到解除ip。其中的–purge选项就是清除ip用的。执行systemctl stop denyhosts.service && denyhosts.py --purge-all,/etc/hosts.deny下的ip都清空了,denyhosts.py --purgeip命令,看含义应该是解封指定Ip。但运行命令会报错:[Errno 2] No such file or directory。

方法二

解决办法:

第一种:

将自己的IP加入hosts.allow文件中

sshd:IP

第二种解决办法:

只要一登陆, 自己的IP就被加到/etc/hosts.deny里, 自己都不能登陆了

原因:你之前这IP肯定登陆失败过,超过了你配置文件中的阀值, 所以就自动帮你加进去了。

1. 根据你/usr/share/denyhosts/denyhosts.cfg配置中的SECURE_LOG, 清空这个日志文件

  比如是/var/log/secure。

    那么命令是:echo "" > /var/log/secure   (echo /dev/null > /var/log/secure)

2. 重置系统日志计数器, 这步一定要。 

    命令是:service rsyslog restart   或者是 service syslog restart 

3. service denyhosts stop  停止服务。 

4.  /usr/share/denyhosts/data目录下的其它文件中关于hosts.deny中的IP记录一并清空 

    PS:data下所有文件 都要检查。 一个都不能留。 否则无效。 

5. service denyhosts start 启动服务。

6. 这时再将hosts.deny中你要解禁的IP删除,清理掉。 保存。 

7. /usr/share/denyhosts/daemon-control restart 重启。 完毕。

上面一步都不能少。 否则无效

注:可以添加白名单, 如果没有allowed-hosts ,输入命令:echo ‘211.888.123.*’ >> /var/lib/denyhosts/allowed-hosts 添加一个. IP改成自己的.

方法三、解锁的步骤,

首先停止DenyHosts, CentOS系统的可以用命令:

# service denyhosts stop

其他系统, 例如Ubuntu/Debian/Fedora/CentOS/Redhat

# /etc/init.d/denyhosts stop

然后请用自己熟悉的方法(通常是vi)在下列文件中找到自己的IP记录并删除, 不推荐这种方法因为用vi在下面的文件中找到自己的IP是非常费时费力的.

/var/log/secure              ×
/etc/hosts.deny             ×  通常只修改这两个文件就OK了
/usr/share/denyhosts/data/hosts
/usr/share/denyhosts/data/hosts-restricted
/usr/share/denyhosts/data/hosts-root
/usr/share/denyhosts/data/hosts-valid

可以用sudo sed -i ‘/ip/d’ /var/log/secure 来直接修改,并使用sudo grep “ip” /var/log/secure来查看是否修改成功(已编写脚本)

如果不在乎上面的记录文件, 推荐清空上面几个Linux系统日志然后重新开启DennyHosts. 清空这些Linux系统日志不会影响任何功能. 如果你觉得这几个文件记录对你很重要(真的?), 请不要随意清空, 老老实实使用上面的方法.

清空上面几个Linux系统日志很简单, 在SSH中敲入下面的命令:

cat /dev/null > /var/log/secure

cat /dev/null > /etc/hosts.deny

cat /dev/null > /usr/share/denyhosts/data/hosts

cat /dev/null > /usr/share/denyhosts/data/hosts-restricted

cat /dev/null > /usr/share/denyhosts/data/hosts-root

cat /dev/null > /usr/share/denyhosts/data/hosts-valid

cat /dev/null > /usr/share/denyhosts/data/offset

cat /dev/null > /usr/share/denyhosts/data/suspicious-logins

cat /dev/null > /usr/share/denyhosts/data/users-hosts

cat /dev/null > /usr/share/denyhosts/data/users-invalid

cat /dev/null > /usr/share/denyhosts/data/users-valid

把日志文件全部清空!要注意的是,清空后一定要 # service rsyslog restart 重启日志记数器!因为如果你不重启服务,你会发现secure日志文件会停止记录一切活动了!那么denyhosts也就无效了。

然后重新开启Deny Hosts

# service denyhosts start

其他系统, 例如

Ubuntu/Debian/Fedora/CentOS/Redhat

# /etc/init.d/denyhosts start

最好

#service sshd restart

#service iptables restart

方法四、denyhosts 取消ip限制,允许登陆

1.找到以下文件一个个删除文件中你想取消的主机IP所在的行:

* /usr/share/denyhosts/data/hosts 
* /usr/share/denyhosts/data/hosts-restricted 
* /usr/share/denyhosts/data/hosts-root 
* /usr/share/denyhosts/data/hosts-valid 
* /usr/share/denyhosts/data/users-hosts 

2.添加你想允许的主机IP地址到

/var/lib/denyhosts/allowed-hosts

vi /usr/share/denyhosts/data/allowed-hostsps 
# We mustn't block localhost 
127.0.0.1 
192.168.1.*

3.、启动DenyHosts服务: service denyhosts start

参考链接 :
DenyHosts清除黑名单IP地址 :http://blog.joylau.cn/2018/07/19/Linux-Cancel-DenyHosts/

解除被DenyHosts锁定的IP地址 https://www.baidu.com/link?url=FZKtmerlRSE5FxuFi1Jormo3M_VIUnKK0KTzZE1cmRGwx6MU9w4PU8XRvgFsVSm88vzQUsl6SPe2cAZQeDD_60ukqG9HArclFX9DoG8eiCa&wd=&eqid=a72ab7f600234149000000045dc4fd16

扩展
centos使用denyhosts的问题,会将自己的IP自动加到hosts.deny的解决办法。 :https://www.cnblogs.com/jackrebel/p/3935592.html

你可能感兴趣的:(常用命令,安全)