成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用腳本簡化部署DenyHosts防SSH暴力破解

原創
安全
我的Nagios外網監控服務器,剛開始測試時取的密碼是redhat,放進公網一天就被人改了,郁悶死了;另外的幾臺公網機器(沒有硬件防火墻),被人不停的ssh連接,我稍為判斷了一下,其中有個IP居然連接失敗17000次了……

【51CTO.com 獨家特稿】我的Nagios外網監控服務器,剛開始測試時取的密碼是redhat,放進公網一天就被人改了,郁悶死了;另外的幾臺公網機器(沒有硬件防火墻),被人不停的ssh連接,我稍為判斷了一下,其中有個IP居然連接失敗17000次了;后來環境部署成熟以后發現仍然有不少外網ip在掃描和試探,看來不用點工具不行啊;DenyHosts是用Python2.3寫的一個程序,它會分析/var/log/secure等日志文件,當發現同一IP在進行多次SSH密碼嘗試時就會記錄IP到/etc/hosts.deny文件,從而達到自動屏蔽該IP的目的。

[[21034]]

DenyHosts官方網站為:http://denyhosts.sourceforge.net

一、檢查安裝條件

1、首先判斷系統安裝的sshd是否支持tcp_wrappers(默認都支持)

# ldd /usr/sbin/sshd
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x0046e000)

2、判斷默認安裝的Python版本

[root@localhost 03]# python -V
Python 2.4.3
Centos5.5默認已安裝了python 2.4.3

二、已安裝Python2.3以上版本的情況

1、安裝DenyHosts

# cd /usr/local/src
# wget http://jaist.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz
# tar zxf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6
# python setup.py install

程序腳本自動安裝到/usr/share/denyhosts

庫文件自動安裝到/usr/lib/python2.3/site-packages/DenyHosts

denyhosts.py自動安裝到/usr/bin 

#p#

2、設置啟動腳本

# cd /usr/share/denyhosts/
# cp daemon-control-dist daemon-control
# chown root daemon-control
# chmod 700 daemon-control
# grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg
# vi denyhosts.cfg

根據自己需要進行相應的修改

----------------denyhosts.cfg------------------------
SECURE_LOG = /var/log/secure
#RedHat/Fedora Core分析該日志文件
#其它版本linux根據denyhosts.cfg-dist內提示選擇。
PURGE_DENY = 30m
#過多久后清除
DENY_THRESHOLD_INVALID = 1
#允許無效用戶(/etc/passwd未列出)登錄失敗的次數
DENY_THRESHOLD_VALID = 5
#允許有效(普通)用戶登錄失敗的次數
DENY_THRESHOLD_ROOT = 3
#允許root登錄失敗的次數
HOSTNAME_LOOKUP=NO
#是否做域名反解
----------------denyhosts.cfg------------------------

如果需要DenyHosts隨系統重啟而自動啟動,還需做如下設置:

# vi /etc/rc.local 

加入下面這條命令

/usr/share/denyhosts/daemon-control start 

3、啟動

# /usr/share/denyhosts/daemon-control start

如果要使DenyHosts每次重起后自動啟動還需做如下設置:

# cd /etc/init.d
# ln -s /usr/share/denyhosts/daemon-control denyhosts
# chkconfig --add denyhosts
# chkconfig --level 345 denyhosts on

然后就可以啟動了:

service denyhosts start

#p#

DenyHosts配置文件:

vi /etc/denyhosts.cfg
SECURE_LOG = /var/log/secure #ssh 日志文件,它是根據這個文件來判斷的。
HOSTS_DENY = /etc/hosts.deny #控制用戶登陸的文件
PURGE_DENY = 5m#過多久后清除已經禁止的
BLOCK_SERVICE   = sshd#禁止的服務名
DENY_THRESHOLD_INVALID = 1#允許無效用戶失敗的次數
DENY_THRESHOLD_VALID = 10#允許普通用戶登陸失敗的次數
DENY_THRESHOLD_ROOT = 5#允許root登陸失敗的次數
HOSTNAME_LOOKUP=NO#是否做域名反解
DAEMON_LOG = /var/log/denyhosts#自己的日志文件
ADMIN_EMAIL = yuhongchun027@163.com#管理員郵件地址,它會給管理員發郵件

這個install_denyhosts.sh是全自動下載安裝的小腳本,當然安裝后還得手動調整配置文件。適合非生產服務器使用;如果是生產服務器,建議大家采用我后面的ssh_deny.sh腳本。

本install_denyhosts.sh腳本如下:

#!/bin/bash
cd /usr/local/src
wget http://jaist.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz
tar zxf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
python setup.py install
cd /usr/share/denyhosts/
cp daemon-control-dist daemon-control
chown root daemon-control
chmod 700 daemon-control
grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg
echo "/usr/share/denyhosts/daemon-control start" >>/etc/rc.local
cd /etc/init.d
ln -s /usr/share/denyhosts/daemon-control denyhosts
chkconfig --add denyhosts
chkconfig --level 345 denyhosts on
service denyhosts start

#p#

下面是hostsdeny的示例:

Connection to 192.168.0.154 closed.
[root@autolemp ~]# ssh 192.168.0.154
root@192.168.0.154's password:
Permission denied, please try again.
root@192.168.0.154's password:
Permission denied, please try again.
root@192.168.0.154's password:
Permission denied (publickey,gssapi-with-mic,password)出現這行表示生效

其實這段原理也很簡單, 我稍微解釋一下;它其實就是收集/var/log/secure的信息,如果root登陸失敗次數超過10次,它將其寫進/etc/hosts.deny文件里;其實我們完全可以用shell來做這些事情,腳本控的同學可以關注以下腳本,我在線上服務器已測試成功。我主要是為了安全著想,不想在線上服務器去進行大的改動,所以采用shell的方式,有這種需求的同學也可關注下。

vim /root/ssh_deny.sh
#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}'  >/root/black.txt
DEFINE="10"

for i in `cat  /root/black.txt`
do
        IP=`echo $i |awk -F= '{print $1}'`
        NUM=`echo $i|awk -F= '{print $2}'`
        if [ $NUM -gt $DEFINE ];
        then
         grep $IP /etc/hosts.deny > /dev/null
          if [ $? -gt 0 ];
          then
          echo "sshd:$IP" >> /etc/hosts.deny
          fi
        fi
done

vim /etc/crontab
* */1 * * * root sh /root/ssh_deny.sh

寫此腳本時我本來想用時間收集的問題,即隔斷時間就收集一次/var/log/secure的日志信息,后來覺得這個方法比較復雜;我稍為解釋一下上面的腳本。它其實就是放在crontab里,每隔一個小時就去讀一下/var/log/secure的日志信息,定義連接root的IP的閥值為10,如果此IP在/etc/hosts.deny里,就什么也不做;如果不在($?值不為0,即非狀態下),就將其添加進/etc/hosts.deny里,此腳本放在線上環境也有一段時間了,效果也可以的。

【51CTO.com獨家特稿,非經授權謝絕轉載!合作媒體轉載請注明原文出處及出處!】

【編輯推薦】

  1. 故障分析:SSH的攻擊導致CPU利用率突發增高
  2. 通過四步防御SSH攻擊
責任編輯:佟健 來源: 51CTO.com
相關推薦

2012-11-29 14:44:07

2011-09-08 14:25:31

2022-08-06 13:04:27

LinuxSHH

2011-11-29 10:03:24

2025-05-26 09:30:00

2019-02-25 18:03:15

2009-05-20 11:30:21

2022-08-10 08:43:46

僵尸網絡DDoS功能SSH服務器

2023-09-11 07:17:30

2013-08-19 15:14:02

2013-05-14 10:12:13

2013-04-18 09:52:56

2013-06-08 10:41:51

2012-01-01 22:08:10

2017-03-01 11:52:30

2015-10-19 11:44:00

2018-04-09 10:24:31

2014-09-24 09:27:02

2009-08-10 15:47:20

2010-08-18 10:17:12

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品一区二区三区在线 | 亚洲精品一区中文字幕 | 欧美日韩一区二区三区四区 | 亚洲www| 国产国产精品久久久久 | 日韩精品一区二区三区 | 亚洲精品欧美一区二区三区 | 欧美日韩在线精品 | 一区二区三区国产精品 | 欧美精品一区二区三区在线播放 | 日韩成人精品视频 | 国产一区免费 | 黄色在线免费看 | 久久精品中文字幕 | 欧美成人手机在线 | 国产精品一卡二卡三卡 | 中文字幕亚洲区 | 日韩播放 | 亚洲精品免费在线观看 | 国产精品成人一区二区三区 | 视频一区二区中文字幕 | 欧美视频精品 | 久久久精品综合 | 久久久久国产一区二区三区 | 日韩中文字幕一区 | 久久国内 | 久久婷婷国产麻豆91 | 久久精品久久综合 | 国产在线精品一区二区三区 | 中文字幕在线精品 | 天堂久久一区 | 亚洲精品久久久久中文字幕二区 | 国产丝袜人妖cd露出 | 国产亚洲精品久久久久久豆腐 | 日韩欧美在线播放 | 69性欧美高清影院 | 亚洲精品日韩精品 | www.99久久.com| 91久久久久久久久久久久久 | 欧美视频免费在线观看 | 欧美久操网 |