DenyHosts 初析


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


1、安裝腳本

   要求安裝服務器能上網並建立 /work目錄

   #!/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 = [email protected]

#設置管理員郵件地址

SMTP_HOST = localhost

SMTP_PORT = 25

SMTP_FROM = DenyHosts 

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.其它

    如果想刪除一個已經禁止的主機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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章