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

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

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

[複製鏈接]
發表於 2016-4-9 12:53:54 | 顯示全部樓層 |閱讀模式
tid=34794& 本帖最後由 IT_man 於 2016-4-9 22:36 編輯
- W" V# }) T& |* b
+ {5 Q) i/ u5 R# i' G' i7 S我的環境:2 I; I7 r5 C2 U* S. y/ C
CentOS 6.7    這是RedHat系列的發行版本,與Fedora同系。(發行版本的資料會記錄在 /etc/redhat-release)
4 y- H2 y: v5 d0 O6 y; K1.用yum安裝fail2ban
8 N2 Y! g: }0 |: l8 iyum -y install fail2ban   (yum安裝的歷程會記錄在 /var/log/yum 中。如有需要確認已安裝的套件,可以回頭查詢這個記錄檔。)
1 n! \) y+ p3 R  m% G/ z9 m9 G; u9 K8 |( V- t
如果上述步驟不能安裝fail2ban,那麼yum會顯示找不到該套件的時候,你需要進入這個步驟。
. y4 l# i; l) ?/ j& {' l8 V7 u7 e4 c
! b; w0 [) m" I" D0 d2 nyum會掃描套件庫來決定要如何安裝套件。然而由於fail2ban並不在預設的套件庫中,所以我們必須手動加入含有fail2ban的套件庫atrpms。- ~0 T9 ~. V7 u$ V7 S. f$ q
/ @" k$ c* O% ]% c  t
請編輯 /etc/yum.repos.d/CentOS-Base.repo :7 o% ^; w5 X  W5 J  {" z
8 l) V+ s1 I+ I3 p* A
vi /etc/yum.repos.d/CentOS-Base.repo
6 ?6 ~9 R8 I9 G* j% _# x在最後加入以下設定:0 C+ D) V: I& M8 _
4 X% ]9 G9 I* R) N- B
[atrpms]% a1 y' T' f4 |. W" Z$ C7 ]5 b: R
name=Red Hat Enterprise Linux $releasever - $basearch - ATrpms
# B# r9 @% Q& U) ^4 Zbaseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
3 ?$ T6 Q: V3 Y! _6 T/ p, Igpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
% v. h# q. J- O" \( ~& \3 ]; Wgpgcheck=18 e: O3 n5 {/ ~; ^, p$ F
enabled=1
) q2 \2 [2 G& n1 Q) J' O
2 M( _: O2 K; V. @2. 設定fail2ban: u! m; `3 j# U9 k& T$ A* E! Y
主要有兩個設定檔:/etc/fail2ban/fail2ban.conf 跟 /etc/fail2ban/jail.conf, _, J' j! m  g. n6 M; ^; n
vi /etc/fail2ban/fail2ban.conf
7 h' H9 s* p9 G# x$ e9 P修改 logtarget 的參數:
( B$ H3 V* m0 `3 g$ t1 L! H
  1. #預設的參數
    0 g  E5 [& w2 d; C
  2. #logtarget = SYSLOG
    ! {) B& E5 d2 p" N2 q( R( O) L# J
  3. #調整後的參數8 A- s4 x  j, }4 V
  4. logtarget = /var/log/fail2ban.log
複製代碼
vi /etc/fail2ban/jail.conf (fail2ban主要的設定檔)9 L% O9 @" s# r" k3 f. r' @
  1. #預設的參數
    - K* J0 Z9 J, x! u- d/ H
  2. #backend = auto ) W% M& o' D  u: N, F5 D! ~
  3. #調整後的參數; }. B  m! `& p. X: {3 l7 ^' I+ d
  4. backend = gamin
複製代碼
gamin是Linux的套件之一。如果缺少你可以用yum來安裝它
9 X4 q7 r) k" ^2 D/ @
  1. [ssh-iptables]5 L& }' f" G' z: x- R! U
  2. #是否啟用+ U! y$ @4 @5 p8 `! W# T
  3. enabled  = true
    ( ]% ?: p8 O+ R' H
  4. #過濾名稱,使用預設的即可
    / D4 O0 c! N9 a6 |4 @& Y" p
  5. filter   = sshd
    ' J( `/ r- {) l! H& I& F% m, l$ m, u
  6. #iptables設定. f& Q5 R0 i7 i3 w% {% W2 I! i
  7. action   = iptables[name=SSH, port=22022, protocol=tcp]# P7 H- M0 A3 [6 p2 F" K  s
  8.            #發生阻擋時的寄信設定
    ( u/ b: d2 W' ^/ h
  9.            sendmail-whois[name=SSH, dest=xxxx@gmail.com, sender=root@xxxx.com]
    ! U$ R3 S# j& T
  10. 2 ?7 B0 l: @! N: B9 M
  11. #需要掃描的記錄檔
    ' A3 H8 Y/ f, D2 ^+ `% E7 V
  12. logpath  = /var/log/secure" v/ Q; F  @: a* ?3 W. Z: I
  13. #最高嘗試錯誤次數
    ) u% W1 U9 i2 T; s
  14. maxretry = 2
    ) ^+ @& S5 q* Y
  15. #阻擋的時間,-1表示永久阻擋3 p  z$ N4 X: Z7 T! [3 \
  16. bantime  = -1
複製代碼
讓fail2ban重新啟動時不會重設阻擋IP規則
8 S3 m. d7 W3 T  I在預設的設定中,fail2ban每次重新啟動時都會遺忘被阻擋的IP設定。舉例來說,如果我的電腦因為登入失敗被fail2ban擋掉,那麼只要fail2ban重新啟動,那麼我的電腦又可以繼續嘗試登入server。* [$ \, T( r! k+ T( p
如果要讓fail2ban重新啟動時,不會重設阻擋的IP規則,則修改 /etc/init.d/fail2ban 的內容。. s) J0 C" H2 j; g8 J  r& t
vi /etc/init.d/fail2ban1 P3 S4 w! S% t7 X  q
找到start()的區塊,加入以下有#註解的設定:4 M' }& o: A* V+ ~) `$ |1 g
  1. start() {
    + O8 U, U, S$ c% ^- }
  2.     echo -n [        DISCUZ_CODE_3        ]quot;Starting fail2ban: "4 p" V/ y) j0 g6 q
  3.     getpid5 w5 h9 W/ U- U, t$ F* o; _
  4.     if [ -z "$pid" ]; then
    , O4 T! a9 a; x
  5.         rm -rf /var/run/fail2ban/fail2ban.sock # unclean in case of restart fal2ban
    7 L" }1 c/ K1 f) i4 R% v* Z4 n
  6.         $FAIL2BAN -x start > /dev/null
    + V, w' [7 T9 }
  7.         RETVAL=$?+ g7 ?$ N; s6 Y% \8 u3 I
  8.     fi9 w* T3 P+ _" c0 R. n
  9.     if [ $RETVAL -eq 0 ]; then2 D- J3 p( w/ G# z( ^* D/ o
  10.         touch /var/lock/subsys/fail2ban" h0 Q- d  L9 j8 B/ |
  11.         echo_success
    1 y3 j0 {+ k& J& z! C- Q, S
  12.         /sbin/service iptables restart # reloads previously banned ip's3 I( a, h  H* S" X
  13.     else
    - C& b$ H+ N8 `, ^7 ?% }  b- O
  14.         echo_failure3 ?/ o6 T  ?0 c0 U6 J
  15.     fi
    ; I8 Y2 B0 i9 _- }+ f( X- U( F, Y
  16. 5 A5 w% X. C+ {4 B
  17.     echo
    # S9 u  [& T0 K- H
  18.     return $RETVAL
    5 K% r, G+ o8 V' r& c) b. O: v
  19. }
複製代碼
再找到stop()區塊,加入以下
有#註解的設定:
. b2 ~- R% q3 \# G+ t  B
  1. stop() {
    . e' o9 S2 }! i5 Z9 [' ], S" h
  2.     echo -n [        DISCUZ_CODE_4        ]quot;Stopping fail2ban: "
    ' G6 J0 Q4 X$ j( t/ E
  3.     getpid9 ?) r* F) D$ X( F1 ^: `
  4.     RETVAL=$?
    0 V1 E1 m: ]2 C/ \
  5.     if [ -n "$pid" ]; then1 n$ T$ B+ T* z
  6.        /sbin/service iptables save # saves banned ip's: c7 M: y3 y# B( l& {
  7.         $FAIL2BAN stop > /dev/null
    . X' P' ?7 y2 b- N: l8 o
  8.     sleep 1
    $ D: c* G# k9 B' v' A' U
  9.     getpid
    ; u5 V/ i. V2 }  b- S( u
  10.     if [ -z "$pid" ]; then( N, Z2 q" ^4 a2 w. J; @0 l
  11.         rm -f /var/lock/subsys/fail2ban5 v, O5 A; o1 q" M- @# S* Q
  12.         echo_success; L& O4 \3 t6 K( K4 i) ^. s4 u6 l
  13.     else- Z  e* d5 n" ]  f5 z! k
  14.         echo_failure
    2 v6 l% r9 ^; }' g5 P
  15.     fi- e- _' G- R0 F- R+ y
  16.     else2 V% C1 u2 Q2 C( ?% J
  17.         echo_failure0 F7 [' W4 q3 n8 C4 m- g
  18.     fi$ W' l$ _, Z2 Y( t6 e$ W
  19.     echo, ]/ ^0 t  Y* X' C7 L( W
  20.     return $RETVAL
複製代碼
3. 設定fail2ban開機順序
2 B& u5 B" i- z; Y
8 _1 j& y' L3 P' P+ G3 echkconfig --add fail2ban
8 p6 ?  k; r9 ~5 N5 m  c) V+ I( o0 ~: Q1 i' Z

9 x( C% p5 \/ S% v0 `p.s - n/ H  y: U7 z8 S: F2 G, s/ V
以上參考 :
4 F1 j, i( J7 n2 D- k+ }2 C. y7 Z& Uhttp://blog.pulipuli.info/2011/07/centosfail2ban.html  
/ T' J: Q  v5 h! l3 xhttp://www.vixual.net/blog/archives/252
/ @  g$ n  S* N( S' v
回復

使用道具 舉報

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

本版積分規則



中文酷站排行榜

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

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

GMT+8, 2026-2-4 06:23 , Processed in 0.072304 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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