方法一、
收集 /var/log/secure 裡面的資訊,若是某個ip 鏈結次數超過一定次數 ,則把此ip記錄到/etc/hosts.deny裡面。
通過crontab來執行,每分鐘執行一次。
*/1 * * * * /root/denyhosts/denyhosts.sh
#!/bin/bash
cat /var/log/secure|awk '/failed/'|sort|uniq -c|awk '' >/root/denyhosts/denyhosts.txt
define="10"
for i in `cat /root/denyhosts/denyhosts.txt`
do ip=`echo $i|awk -f= ''`
num=`echo $i|awk -f= ''`
if [ $num -gt $define ]
then
ipexists=`grep $ip /etc/hosts.deny |grep -v grep |wc -l`
if [ $ipexists -lt 1 ]
then
echo "sshd:$ip" >> /etc/hosts.deny
fifi
done
方法二、
denyhosts官方**為: 安裝
tar -zxvf denyhosts-2.6.tar.gz
cd denyhosts-2.6
python setup.py install
預設是安裝到/usr/share/denyhosts目錄的。
2. 配置
cd /usr/share/denyhosts/
cp denyhosts.cfg-dist denyhosts.cfg
vi denyhosts.cfg
purge_deny = 50m #過多久後清除已阻止ip
hosts_deny = /etc/hosts.deny #將阻止ip寫入到hosts.deny
block_service = sshd #阻止服務名
deny_threshold_invalid = 1 #允許無效使用者登入失敗的次數
deny_threshold_valid = 10 #允許普通使用者登入失敗的次數
deny_threshold_root = 5 #允許root登入失敗的次數
work_dir = /usr/local/share/denyhosts/data #將deny的host或ip紀錄到work_dir中
deny_threshold_restricted = 1 #設定 deny host 寫入到該資料夾
lock_file = /var/lock/subsys/denyhosts #將denyhots啟動的pid紀錄到lock_file中,已確保服務正確啟動,防止同時啟動多個服務。
hostname_lookup=no #是否做網域名稱反解
admin_email = #設定管理員郵件位址
daemon_log = /var/log/denyhosts #自己的日誌檔案
daemon_purge = 10m #該項與purge_deny 設定成一樣,也是清除hosts.deniedssh 使用者的時間。
設定啟動指令碼
cp daemon-control-dist daemon-control
chown root daemon-control
chmod 700 daemon-control
完了之後執行daemon-contron start就可以了。
./daemon-control start
如果要使denyhosts每次重起後自動啟動還需做如下設定:
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
chkconfig --add denyhosts
chkconfig denyhosts on
然後就可以啟動了:
service denyhosts start
可以看看/etc/hosts.deny內是否有禁止的ip,有的話說明已經成功了。
提高ssh安全性的方法
修改sshd伺服器的配置檔案/etc/ssh/sshd_config,將部分引數參照如下修改,增強安全性。
系統預設使用22號埠,將監聽埠更改為其他數值(最好是1024以上的高階口,以免和其他常規服務埠衝突),這樣可以增加入侵者探測系統是否執行了 sshd守護程序的難度。
port 5555
對於在伺服器上安裝了多個網絡卡或配置多個ip位址的情況,設定sshd只在其中乙個指定的介面位址監聽,這樣可以減少sshd的入口,降低入侵的可能性。
listenaddress 192.168.0.1
如果允許使用者使用root使用者登入,那麼黑客們可以針對root使用者嘗試暴力破解密碼,給系統安全帶來風險。
permitrootlogin no
允許使用空密碼系統就像不設防的堡壘,任何安全措施都是一句空話。
permitemptypasswords no
只允許指定的某些使用者通過ssh訪問伺服器,將ssh使用許可權限定在最小的範圍內。
allowusers sshuser1 sshuser2
同上面的allowusers類似,限定指定的使用者組通過ssh訪問伺服器,二者對於限定訪問伺服器有相同的效果。
allowgroups sshgroup
禁止使用版本1協議,因為其存在設計缺陷,很容易使密碼被黑掉。
protocol 2
關閉x11forwarding,防止會話被劫持。
x11forwarding no
sshd服務執行時每乙個連線都要使用一大塊可觀的記憶體,這也是ssh存在拒絕服務攻擊的原因。一台伺服器除非存在許多管理員同時管理伺服器,否則上面這 個連線數設定是夠用了。
maxstartups 5
注意:以上引數設定僅僅是乙個示例,使用者具體使用時應根據各自的環境做相應的更改。
修改sshd伺服器的配置檔案/etc/ssh/sshd_config的讀寫許可權,對所有非root使用者設定唯讀許可權,防止非授權使用者修改sshd 服務的安全設定。
chmod 644 /etc/ssh/sshd_config
sshd:192.168.0.15 10.0.0.11
將需要禁止使用的資訊新增到/etc/hosts.deny中。如對除了在hosts.allow列表中明確允許使用sshd的使用者外,所有其他使用者都禁止使用sshd服務,則新增如下內容到hosts.deny檔案中:
sshd:all
注意:系統對上述兩個檔案的判斷順序是先檢查hosts.allow檔案再檢視hosts.deny檔案,因此乙個使用者在hosts.allow允許使用網路資源,而同時在hosts.deny中禁止使用該網路資源,在這種情況下系統優先選擇使用hosts.allow配置,允許使用者使用該網路資源。
Centos下防止ssh暴力破解指令碼
1.修改 ssh 預設埠 注 修改之前,記得先把對應埠在防火牆新增規則 1.1 修改ssh埠為 2968 這個埠建議使用 1024 以上的 sed i s port 22 port 2968 g etc ssh sshd config1.2 重啟ssh systemctl restart sshd1...
Centos7 如何防止SSH暴力
3 ssh暴力破解檢視 4 驗證多次錯誤被禁止ssh 5 注意點 6 參考資料 ssh 為 secure shell 的縮寫,由 ietf 的網路小組 network working group 所制定 ssh 為建立在應用層基礎上的安全協議。ssh 是目前較可靠,專為遠端登入會話和其他網路服務提供...
防止SSH暴力破解
我的伺服器每天都會有無數的ssh失敗嘗試記錄,有些無聊的人一直不停的掃瞄,這些人真夠無聊的,沒事吃飽了撐著,老找些軟體在那裡窮舉掃瞄,所以大家第一要記的設定乙個好的夠複雜的密碼。怎麼樣防,如果要一條一條將這些ip阻止顯然治標不治本,還好有denyhosts軟體來代替我們手搞定他。denyhosts是...