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

標題: 防火牆強化套件fail2ban之安裝與設定 [打印本頁]

作者: IT_man    時間: 2016-4-9 12:53
標題: 防火牆強化套件fail2ban之安裝與設定
本帖最後由 IT_man 於 2016-4-9 22:36 編輯
8 |$ Q( m) s4 b- K! u9 u2 @+ B( L
/ Z7 v0 i4 L! s, U! x* l我的環境:
9 y" e/ a* _: Z) x) N, q  q) sCentOS 6.7    這是RedHat系列的發行版本,與Fedora同系。(發行版本的資料會記錄在 /etc/redhat-release)
" o; X* L0 G! v. u4 W+ e1.用yum安裝fail2ban
) \' o  K' Z8 ~9 U0 G1 vyum -y install fail2ban   (yum安裝的歷程會記錄在 /var/log/yum 中。如有需要確認已安裝的套件,可以回頭查詢這個記錄檔。)
# V9 f3 y2 [7 o, C8 t: ]5 T8 {8 E4 m
如果上述步驟不能安裝fail2ban,那麼yum會顯示找不到該套件的時候,你需要進入這個步驟。; |, b: {1 b6 B, D" J* Y, k4 m
) z: S' A& i1 }6 ]
yum會掃描套件庫來決定要如何安裝套件。然而由於fail2ban並不在預設的套件庫中,所以我們必須手動加入含有fail2ban的套件庫atrpms。
- a  V& U0 S! @5 m; c" V9 P, U
% I. b2 s$ }8 A& h1 J請編輯 /etc/yum.repos.d/CentOS-Base.repo :7 _; u1 \5 Z6 U2 X: M* w

* Y4 x8 N, |8 `3 u, B' _0 tvi /etc/yum.repos.d/CentOS-Base.repo1 x" v6 M; x% P. r7 |' ^5 v1 n
在最後加入以下設定:
* V+ X$ }. e' C& w; O( A7 `3 o* s2 ^3 T, O
[atrpms]
- D. z0 {3 y% M( D# q: Z' d4 }name=Red Hat Enterprise Linux $releasever - $basearch - ATrpms& K" b& a9 p; O) X5 `
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable; R2 S6 G! B3 f: o7 m8 V2 d
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms, N- B2 w! O" s  x
gpgcheck=1
% M+ m- O: i( t  ]8 X; denabled=1
! Y& I0 R( }/ R! e! ~, ~1 u( {. z1 M* I7 A' g# `8 K! t1 \) O1 S! O7 D! V& R+ ~
2. 設定fail2ban
7 k' M# c- w: Q; l9 ?+ k# N0 C主要有兩個設定檔:/etc/fail2ban/fail2ban.conf 跟 /etc/fail2ban/jail.conf4 d# u; r3 Q8 c$ ^
vi /etc/fail2ban/fail2ban.conf
# P0 P) x9 p5 ?- y+ V0 p修改 logtarget 的參數:' o- y9 W$ ]: V% X  z# h
  1. #預設的參數6 p+ p3 r1 X& n
  2. #logtarget = SYSLOG
    % J1 i3 k' ~$ `% x( J
  3. #調整後的參數0 j0 s: M$ e: Q4 t9 u3 q
  4. logtarget = /var/log/fail2ban.log
複製代碼
vi /etc/fail2ban/jail.conf (fail2ban主要的設定檔)
7 ]3 [9 f# u( Y5 l9 g
  1. #預設的參數5 n# q* L8 X4 |) o; Z* z
  2. #backend = auto
    ( e) `0 Q! y3 d6 b  V
  3. #調整後的參數7 q5 p' X3 z8 M; j" z2 ]  ~
  4. backend = gamin
複製代碼
gamin是Linux的套件之一。如果缺少你可以用yum來安裝它
& J7 Z, s% d! [: p6 R" y  d3 d) s
  1. [ssh-iptables]& f4 ~/ }1 c# f
  2. #是否啟用" W* {& C& m6 ~. Z9 y
  3. enabled  = true) F9 F, _$ ^, M$ u3 F3 R$ F
  4. #過濾名稱,使用預設的即可
    # o) q! a5 V0 |% }5 X6 m) h
  5. filter   = sshd/ M; T# ?% }1 Z* H( g" N) x$ \( e
  6. #iptables設定
    6 F3 T% m# \" ?0 @4 V& `2 J
  7. action   = iptables[name=SSH, port=22022, protocol=tcp]
    0 F2 `9 \( g3 ^1 \
  8.            #發生阻擋時的寄信設定
    % _' O& r0 O1 G7 L; o2 u
  9.            sendmail-whois[name=SSH, [email protected], [email protected]]/ {! Z3 C3 w% ?& e: K) Q2 ?" ^: q2 v
  10. 1 {1 E8 t+ @, H( ^1 T6 M8 g
  11. #需要掃描的記錄檔) U% m/ B0 l# D, i  O% m
  12. logpath  = /var/log/secure
    2 D; t" r3 _5 Q3 _. Y
  13. #最高嘗試錯誤次數
    ! u. W$ t# R3 k! ^
  14. maxretry = 2' U, E4 p$ H+ i- ?1 m
  15. #阻擋的時間,-1表示永久阻擋
    / Q7 Q# c! t- R, `; s
  16. bantime  = -1
複製代碼
讓fail2ban重新啟動時不會重設阻擋IP規則
; ?. {# z" R" p. r- @1 {( f- h在預設的設定中,fail2ban每次重新啟動時都會遺忘被阻擋的IP設定。舉例來說,如果我的電腦因為登入失敗被fail2ban擋掉,那麼只要fail2ban重新啟動,那麼我的電腦又可以繼續嘗試登入server。' K7 p+ |0 V# V+ i- i
如果要讓fail2ban重新啟動時,不會重設阻擋的IP規則,則修改 /etc/init.d/fail2ban 的內容。  d  x4 i7 ?! n# H
vi /etc/init.d/fail2ban5 w1 P5 I. b/ h4 ?; C$ q! M
找到start()的區塊,加入以下有#註解的設定:
; @5 P- t2 s4 r/ N, T+ D" S/ y
  1. start() {
    & n1 i' {; p! E) V& p, \
  2.     echo -n [        DISCUZ_CODE_3        ]quot;Starting fail2ban: ") `4 J, \% i  T9 \3 N8 q
  3.     getpid
    - G$ x( X+ S' S* @& s
  4.     if [ -z "$pid" ]; then
    5 O5 f4 `- _  t5 O
  5.         rm -rf /var/run/fail2ban/fail2ban.sock # unclean in case of restart fal2ban+ y0 f9 u8 R6 p9 C; G
  6.         $FAIL2BAN -x start > /dev/null
    9 H' ]  c; a5 O6 v# S5 E4 m# `
  7.         RETVAL=$?
    . w8 L; D; N" n
  8.     fi
    + O/ N7 d4 t2 A5 @5 w
  9.     if [ $RETVAL -eq 0 ]; then: U; v) M4 k1 h; _
  10.         touch /var/lock/subsys/fail2ban
    1 M& g3 A5 H: m
  11.         echo_success
    ) z7 ^; R6 n. K' N* V% d* }% h
  12.         /sbin/service iptables restart # reloads previously banned ip's
    1 u' f" a4 \* D6 R2 ?
  13.     else
    " g6 [6 q+ v4 O
  14.         echo_failure
    ) b. _  \$ u7 s; b/ ~$ Y
  15.     fi
    : H. F7 s/ U) A& R
  16. 0 l# {% Q8 A$ D& n
  17.     echo# u  T$ E! v  B8 r6 }, P
  18.     return $RETVAL
    9 ?* r. ?2 F( T9 r* o3 R
  19. }
複製代碼
再找到stop()區塊,加入以下
有#註解的設定:* c& s; H6 R0 N6 d* m- _3 z; Z
  1. stop() {
    # ^7 Z0 R" ^7 _+ |
  2.     echo -n [        DISCUZ_CODE_4        ]quot;Stopping fail2ban: "
    ( Q# H5 c) J7 E+ E! w% A! m
  3.     getpid
    * g0 R) o; e! ~- X. b/ w+ _
  4.     RETVAL=$?" X6 C% m' s% o
  5.     if [ -n "$pid" ]; then
    2 T- p+ W/ p' [
  6.        /sbin/service iptables save # saves banned ip's
    ) @" g+ F9 m' f( N) q) C3 _1 O! I
  7.         $FAIL2BAN stop > /dev/null) Q2 `/ D% V6 Y  L: ?; t- [6 I
  8.     sleep 1
    1 N1 C/ K! N* \1 F
  9.     getpid5 N1 M8 M" L* I5 Z; }6 m
  10.     if [ -z "$pid" ]; then
    4 N% t& K4 P. E8 B
  11.         rm -f /var/lock/subsys/fail2ban
    * w. j* l% U% U* o' p5 p0 ?
  12.         echo_success
    ! @+ m& B8 F$ o8 k8 D
  13.     else
    0 Q% `/ `  }  f8 E3 |( J! x
  14.         echo_failure/ O- ~- [6 |/ a1 r" v  h
  15.     fi
    / @1 A2 O* `1 F
  16.     else/ S; ?" X) l) F7 D, b$ i. v
  17.         echo_failure3 M, D+ Q2 c! q
  18.     fi
    ( W4 d5 Y1 n: n6 B& Q
  19.     echo: }4 N/ n; X0 t0 C3 y
  20.     return $RETVAL
複製代碼
3. 設定fail2ban開機順序. X3 U; }3 v" D- r

0 H' O9 O4 L0 j, {chkconfig --add fail2ban' i8 e( a- [& e* G: M) j6 l7 \. H
: |( x9 d& o2 u

, H9 p" t$ T" S2 M4 z2 N7 Op.s 2 ]$ V: C. M9 S# o6 i$ o
以上參考 :
7 G+ f5 y( U  W  w1 D: q' shttp://blog.pulipuli.info/2011/07/centosfail2ban.html  ( O2 ]- Q& s1 ?/ ]3 {0 i
http://www.vixual.net/blog/archives/252! ~% T/ j6 S( `! N





歡迎光臨 52AV手機A片王|52AV.ONE (https://www.itech.casa/) Powered by Discuz! X3.2