DenyHosts 安裝及配置詳解


DenyHosts是Python語言寫的一個程序,它會分析sshd的日志文件(/var/log/secure),當發現重 復的攻擊時就會記錄IP到/etc/hosts.deny文件,從而達到自動屏IP的功能。

下面進入主題。

1。安裝腳本
要求安裝服務器能上網,並建立 /workspace目錄

#############################1##################################
#!/bin/bash

wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz
#下載軟件

tar -zxvf DenyHosts-2.6.tar.gz
#解壓

mv DenyHosts-2.6 denyhost
#為了方便改個名

cd denyhost/
#進入目錄

yum install python -y
#安裝python

python setup.py install
#安裝denyhost,腳本

cd /usr/share/denyhosts/
#進入配置目錄

cp daemon-control-dist daemon-control
#為了方便改變配置文件名稱

cp denyhosts.cfg-dist denyhosts.cfg
#修改服務文件名稱

chown root daemon-control
chmod 700 daemon-control
#提高安全級別,修改權限

ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
#創建啟動服務連接

chkconfig denyhosts on
#添加啟動項

cp denyhosts.cfg denyhosts.cfg.bak
#備份配置文件,為修改配置做准備

cat /workspace/denyhost.txt > /usr/share/denyhosts/denyhosts.cfg
#將配置文件內容導入配置文件(我的配置文件安裝之前已經配置好了!)

/etc/init.d/denyhosts start
#啟動服務

echo install succeed!

2.配置文件內容


cat /workspace/denyhost.txt > /usr/share/denyhosts/denyhosts.cfg
###########################2##################################

[root@107 workspace]# more denyhost.txt
SECURE_LOG = /var/log/secure
#ssh日志文件

HOSTS_DENY = /etc/hosts.deny
#將阻止IP寫入到hosts.deny

PURGE_DENY = 5m
#過多久后清除已經禁止的,其中w代表周,d代表天,h代表小時,s代表秒,m代表分鍾

BLOCK_SERVICE = sshd
#阻止服務名

DENY_THRESHOLD_INVALID = 5
#允許無效用戶(在/etc/passwd未列出)登錄失敗次數,允許無效用戶登錄失敗的次數.

DENY_THRESHOLD_VALID = 5
#允許普通用戶登錄失敗的次數

DENY_THRESHOLD_ROOT = 5
#允許root登錄失敗的次數

DENY_THRESHOLD_RESTRICTED = 1
#設定 deny host 寫入到該資料夾

WORK_DIR = /usr/share/denyhosts/data
#將deny的host或ip紀錄到Work_dir中
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS = YES

HOSTNAME_LOOKUP=YES
#是否做域名反解

LOCK_FILE = /var/lock/subsys/denyhosts
#將DenyHOts啟動的pid紀錄到LOCK_FILE中,已確保服務正確啟動,防止同時啟動多個服務。

ADMIN_EMAIL = denyhosts@163.com
#設置管理員郵件地址
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts <nobody@localhost>
SMTP_SUBJECT = DenyHosts Report

AGE_RESET_VALID=1d
#有效用戶登錄失敗計數歸零的時間

AGE_RESET_ROOT=1d
#root用戶登錄失敗計數歸零的時間

AGE_RESET_RESTRICTED=5d
#用戶的失敗登錄計數重置為0的時間(/usr/share/denyhosts/data/restricted-usernames)

AGE_RESET_INVALID=10d
#無效用戶登錄失敗計數歸零的時間

DAEMON_LOG = /var/log/denyhosts
#自己的日志文件

DAEMON_SLEEP = 30s

DAEMON_PURGE = 5m
#該項與PURGE_DENY 設置成一樣,也是清除hosts.deniedssh 用戶的時間

3.其它
#############################3###############################

如果想刪除一個已經禁止的主機IP,並加入到允許主機例表,只在 /etc/hosts.deny 刪除是沒用的。需要進入 /var/lib/denyhosts 目錄,進入以下操作:

1、停止DenyHosts服務:$ sudo service denyhosts stop

2、在 /etc/hosts.deny 中刪除你想取消的主機IP

3、編輯 DenyHosts 工作目錄的所有文件,通過
$ sudo grep 192.168.1.191 /usr/share/denyhosts/data/*

然后一個個刪除文件中你想取消的主機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
4、添加你想允許的主機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.*

5、啟動DenyHosts服務: service denyhosts start

 

報錯排查

#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

cd /usr/share/denyhosts/
vi daemon-control
DENYHOSTS_BIN = "/usr/bin/denyhosts.py"
改為
DENYHOSTS_BIN = "/usr/local/bin/denyhosts.py"


cd /usr/local/lib/python2.7/site-packages/
cp -rp DenyHosts /usr/lib/python2.4/site-packages/
/etc/init.d/denyhosts restart

 

#############################3###############################

如果想刪除一個已經禁止的主機IP,並加入到允許主機例表,只在 /etc/hosts.deny 刪除是沒用的。需要進入 /var/lib/denyhosts 目錄,進入以下操作:

1、停止DenyHosts服務:$ sudo service denyhosts stop

2、在 /etc/hosts.deny 中刪除你想取消的主機IP

3、編輯 DenyHosts 工作目錄的所有文件,通過 
$ sudo grep 192.168.1.191 /usr/share/denyhosts/data/*

然后一個個刪除文件中你想取消的主機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 
4、添加你想允許的主機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.*

5、啟動DenyHosts服務: service denyhosts start


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM