天天看點

DenyHosts 軟體自動安裝及管理腳本

關于DenyHosts這個軟體幹什麼用的,就不多說了,感興趣的童鞋問問度娘也就知道了

首先上自動安裝腳本,一鍵安裝省去所有煩惱(大神勿噴emmm)

#!/bin/bash #切換工作目錄 #DenyHosts安裝腳本 cd /usr/local/src /usr/bin/wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz echo "下載下傳軟體" Deny=DenyHosts-2.6 deny=denyhost www= `awk -F ":" '$1~/www/{print $1}' /etc/passwd` if [ www != $www ]; then groupadd -g 808 www useradd -u 808 -g 808 -s /sbin/nologin www fi if [ -f $Deny.tar.gz ]; then echo "解壓 $tar " /bin/tar -xf $Deny.tar.gz echo "修改 $1 名稱" /bin/mv $Deny $deny if [ -d $deny ]; then chown -R www.www $denyhost echo "進入目錄" cd denyhost echo '安裝python' /usr/bin/yum -y install python >> /dev/null echo "安裝denyhost腳本" /usr/bin/python setup.py install >> /dve/null if [ -d /usr/share/denyhosts/ ]; then echo "進入配置目錄" cd /usr/share/denyhosts/ echo "改配置檔案名稱" /bin/cp "daemon-control-dist" "daemon-control" echo "修改服務檔案名稱" /bin/cp "denyhosts.cfg-dist" "denyhosts.cfg" echo "提高安全級别" /bin/chown root "daemon-control" /bin/chmod 700 "daemon-control" echo "建立啟動連結" ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts echo "添加啟動項" chkconfig denyhosts on echo "備份配置檔案" cp denyhosts.cfg denyhosts.cfg.bak echo "将内容導入配置檔案" cat << HHHH > /usr/share/denyhosts/denyhosts.cfg 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 <[email protected]> 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 使用者的時間 HHHH echo "啟動服務" service denyhosts start else echo "denyhosts檔案有誤" fi else echo "檔案解壓有誤" fi else echo "下載下傳有誤" fi

這個腳本是将Denyhosts下載下傳到/usr/local/src之中并進行安裝,而且會檢查本機是否有www使用者,若沒有則建立

OK,接下來上管理腳本(大神們,,,不喜勿噴emmmm)

#!/bin/bash #管理DenyHost工具 dir= "/usr/share/denyhosts/data/*" #secure檔案的位址,如果有自己設定的還要自己去更改一下se變量 se= "/var/log/secure" read -p "解除IP解禁還是進行IP禁止或者檢視檔案内統計的失敗登入(R/B/F): " i if [[ $i == [Rr] ]]; then read -p "請輸入需要解除的IP: " IP sed -n "/ $IP /p" $dir sed -n "/ $IP /p" /etc/hosts.deny read -p "要删除這些麼?(Y/N): " jubge if [[ $jubge == [Yy] ]]; then /etc/init.d/denyhosts stop > /dev/null sed -i "/ $IP /d" $dir sed -i "/ $IP /d" /etc/hosts.deny /etc/init.d/denyhosts start > /dev/null echo "腳本運作完成" elif [[ $jubge == [Nn] ]]; then echo "解除失敗" fi elif [[ $i == [Bb] ]]; then read -p "請輸入需要禁止的IP位址: " BIP read -p "确定要禁止 $BIP 麼?(Y/N) " JUBGE if [[ $JUBGE == [Yy] ]]; then /etc/init.d/denyhosts stop > /dev/null echo "sshd: $BIP " >> /etc/hosts.deny /etc/init.d/denyhosts start > /dev/null echo "腳本運作完成" elif [[ $JUBGE == [Nn] ]]; then echo "腳本中斷" else echo "輸入有誤,腳本中斷" fi elif [[ $i == [Ff] ]]; then awk '/Failed/{print $(NF-3)}' $se | sort | uniq -c | sort -n else echo "輸入有誤,腳本中斷" fi

這個腳本作用是查找通路的IP以及管理denyhosts這個軟體,根據提示輸入相應字元即可

繼續閱讀