52AV手機A片王|52AV.one

 找回密碼
 立即註冊
查看: 1541|回復: 0

[防火牆] 防火牆強化套件fail2ban之安裝與設定

[複製鏈接]
發表於 2016-4-9 12:53:54 | 顯示全部樓層 |閱讀模式
tid=34794& 本帖最後由 IT_man 於 2016-4-9 22:36 編輯
" @3 S! ~- N4 E" W/ Q% j
7 ?8 u1 e& e. k, n- r6 v我的環境:! [- K) K; g5 Y% |+ A6 O
CentOS 6.7    這是RedHat系列的發行版本,與Fedora同系。(發行版本的資料會記錄在 /etc/redhat-release)9 K: Y  e4 D5 c& F) j4 X
1.用yum安裝fail2ban
" a# F% @7 v1 ]0 ^+ Z$ |yum -y install fail2ban   (yum安裝的歷程會記錄在 /var/log/yum 中。如有需要確認已安裝的套件,可以回頭查詢這個記錄檔。)
8 i3 p) V$ |- q/ h$ `- ?
% C, ^) Z6 z! D1 L- o. K. g& U1 t如果上述步驟不能安裝fail2ban,那麼yum會顯示找不到該套件的時候,你需要進入這個步驟。! f5 c# }* v7 r) K5 C. c

( q4 U( v9 A2 a/ w9 u4 kyum會掃描套件庫來決定要如何安裝套件。然而由於fail2ban並不在預設的套件庫中,所以我們必須手動加入含有fail2ban的套件庫atrpms。' n, K/ ~. L" y0 I
. P! z4 Q5 g- ~+ ]$ y3 E2 R
請編輯 /etc/yum.repos.d/CentOS-Base.repo :
" H+ ?# r) K0 s# C
( [; S  r  s& w) c8 uvi /etc/yum.repos.d/CentOS-Base.repo9 Q. k% t3 ], Z
在最後加入以下設定:
" ~2 Q5 ^  r6 v  M8 h# v% X1 W, y
- v# K/ V, F. z6 a+ i  z# i[atrpms]- ~4 I+ m7 G* H! d5 z
name=Red Hat Enterprise Linux $releasever - $basearch - ATrpms
5 V. u2 S2 h9 h* A5 U9 vbaseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
$ Q/ ], c: V6 d, |6 K" z' y/ [gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
, t/ ?, P; m  a$ O+ Kgpgcheck=11 M- \; U, E! ]! I6 S
enabled=1
/ c% ]/ T, L% M4 f! V: K( y+ C) p( S( j" v
2. 設定fail2ban
# E) d% X5 ~  R5 O  N主要有兩個設定檔:/etc/fail2ban/fail2ban.conf 跟 /etc/fail2ban/jail.conf! {: A2 S+ M) E0 a0 _4 @- E3 |
vi /etc/fail2ban/fail2ban.conf% B0 g# o2 u4 C' ?+ O
修改 logtarget 的參數:, {  z7 {* \  l0 c+ w5 q1 `
  1. #預設的參數
    * r1 Z. B0 Z; i: Y& F
  2. #logtarget = SYSLOG
    + Y5 [  Z5 h1 J2 e* [
  3. #調整後的參數# e9 t$ }( t* K8 [$ z
  4. logtarget = /var/log/fail2ban.log
複製代碼
vi /etc/fail2ban/jail.conf (fail2ban主要的設定檔)- M" m9 f( N, q& @
  1. #預設的參數3 J9 ?1 x0 }+ P% B
  2. #backend = auto
    8 \' ]5 n- R- d6 g1 X4 H3 g* q
  3. #調整後的參數
    / i1 S. o* J. N' V. S
  4. backend = gamin
複製代碼
gamin是Linux的套件之一。如果缺少你可以用yum來安裝它2 x' v5 |& D: I
  1. [ssh-iptables]# r8 r* f& m# W- G
  2. #是否啟用5 d$ M% l$ j  x# q# w
  3. enabled  = true: Q$ Z1 a- E0 z. T( S; H$ X
  4. #過濾名稱,使用預設的即可) [' }4 {/ v+ C" y1 }
  5. filter   = sshd
      @. U' X" @- e3 d9 V9 Y% U, M& @
  6. #iptables設定
    # p7 c1 W6 x( ?2 L
  7. action   = iptables[name=SSH, port=22022, protocol=tcp]7 w- v9 Q+ }1 x4 T
  8.            #發生阻擋時的寄信設定
    + }# f2 I4 Q8 Y/ X
  9.            sendmail-whois[name=SSH, dest=xxxx@gmail.com, sender=root@xxxx.com]  t8 e+ v: u% p2 E* b' Q

  10. 5 V) R/ u8 Q# h: i$ |* d
  11. #需要掃描的記錄檔
    . Q/ `( q. h! r" f" L& ?
  12. logpath  = /var/log/secure
    : a, F# U& y& u
  13. #最高嘗試錯誤次數$ _4 @* e4 s# N& `- h
  14. maxretry = 21 _5 U. }8 X5 j  U/ y2 G6 y) ~" `
  15. #阻擋的時間,-1表示永久阻擋: l5 @; G- n* L" S
  16. bantime  = -1
複製代碼
讓fail2ban重新啟動時不會重設阻擋IP規則
" q/ z) B; B: U! k6 L在預設的設定中,fail2ban每次重新啟動時都會遺忘被阻擋的IP設定。舉例來說,如果我的電腦因為登入失敗被fail2ban擋掉,那麼只要fail2ban重新啟動,那麼我的電腦又可以繼續嘗試登入server。
' K6 S2 ]. Z/ V) e) s4 [如果要讓fail2ban重新啟動時,不會重設阻擋的IP規則,則修改 /etc/init.d/fail2ban 的內容。- z4 z) D3 I% N2 o
vi /etc/init.d/fail2ban
6 `& H9 V/ f- p2 \; ?1 ~7 N找到start()的區塊,加入以下有#註解的設定:( Z' y+ o: |  Q1 f% s
  1. start() {/ R  N, @- ]: s; J6 j+ X
  2.     echo -n [        DISCUZ_CODE_3        ]quot;Starting fail2ban: "
    0 i' h& ?( g+ m0 \
  3.     getpid
    0 @% ?7 i0 F+ N) a- ?
  4.     if [ -z "$pid" ]; then& P; P' B6 |& ~. _( F' X
  5.         rm -rf /var/run/fail2ban/fail2ban.sock # unclean in case of restart fal2ban
    ! S" p( j" v5 C( e
  6.         $FAIL2BAN -x start > /dev/null( J' H  m) g3 \
  7.         RETVAL=$?
    * h: i4 j2 K# n* G4 I- D$ j" Q
  8.     fi
    & O* ]" R/ o2 r! t8 P
  9.     if [ $RETVAL -eq 0 ]; then0 B, P1 j7 M; V  H" n, g
  10.         touch /var/lock/subsys/fail2ban
    & m" X( b- U2 ^$ `  x
  11.         echo_success! z; B5 z( N& ^& }
  12.         /sbin/service iptables restart # reloads previously banned ip's
    ) L8 q  }9 b; Y% T; f" }
  13.     else1 [: h, F& S& [$ m  P
  14.         echo_failure! v9 X5 I' s' o/ G, l! q8 x5 x4 o
  15.     fi
    % R# _' @! [, e

  16. 0 j6 ^! Y+ J5 [, J- t
  17.     echo
    2 T/ _1 q/ S- b) v  R  \
  18.     return $RETVAL( A. G0 b$ g1 b) S  }: M( w$ ]/ O
  19. }
複製代碼
再找到stop()區塊,加入以下
有#註解的設定:% O0 f( U9 m& N2 e
  1. stop() {, \) h( U% l. M
  2.     echo -n [        DISCUZ_CODE_4        ]quot;Stopping fail2ban: "  U$ t) }) c) J: C$ Q: R
  3.     getpid' U3 R( E6 E* W# O6 q% \
  4.     RETVAL=$?
    ; U. F% K( p' f3 ^$ B
  5.     if [ -n "$pid" ]; then6 w4 h: l7 J( y+ H- ?3 e: m* ~
  6.        /sbin/service iptables save # saves banned ip's
    ! x6 D" c9 t' j$ @" W! s
  7.         $FAIL2BAN stop > /dev/null
    4 L( N, P- Y  K0 m! f$ d/ M% {
  8.     sleep 1& @0 H- C# x0 ?7 b" G
  9.     getpid: ~% R( Q3 B+ }3 X
  10.     if [ -z "$pid" ]; then6 m& k1 N* [) g' y
  11.         rm -f /var/lock/subsys/fail2ban( T' i: T' F; C
  12.         echo_success6 o* n7 n- I/ k3 E' |5 e. k" l
  13.     else
    4 V6 ]. G4 k; b. O
  14.         echo_failure5 z4 z$ n/ l3 p  Y
  15.     fi
    8 A1 G, Z& Y% D+ |  @5 q, _
  16.     else
    # N5 P- T5 |# s' P$ F2 ~  ~  [
  17.         echo_failure* g; Q8 m4 t$ Q3 p
  18.     fi
    ) r* M& `' }3 Z/ R
  19.     echo
    3 G6 A( N& o- o. p9 C
  20.     return $RETVAL
複製代碼
3. 設定fail2ban開機順序
# o) k# r- b9 k
/ r4 b5 f, G, T4 Fchkconfig --add fail2ban
3 v9 E: r6 A  s7 _2 l- {; E" Y5 }, v4 b* |
: [6 U' k/ T- V. a5 q
p.s
% Q, I' y1 I' }以上參考 :1 B9 u1 o* ^+ e& C: S) S  u
http://blog.pulipuli.info/2011/07/centosfail2ban.html  
' q4 _+ j  c+ `7 F) Z* t4 hhttp://www.vixual.net/blog/archives/252' R, |- a0 j+ |+ u- u8 c
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則



中文酷站排行榜

本區塊內容依據『電腦網路內容分級處理辦法』為限制級網站,限定年滿18歲以上或達當地國家法定年齡人士方可進入,且願接受本站各項條款,未滿18歲 謝絕進入瀏覽。為防範未滿18歲之未成年網友瀏覽網路上限制級內容的圖文資訊,建議您可進行網路內容分級組織ICRA分級服務的安裝與設定。 (為還給愛護 本站的網友一個純淨的論壇環境,本站設有管理員)

QQ|小黑屋|手機板| 52AV手機A片王

GMT+8, 2026-3-23 22:21 , Processed in 0.061573 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表