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

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

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

[複製鏈接]
發表於 2016-4-9 12:53:54 | 顯示全部樓層 |閱讀模式
tid=34794& 本帖最後由 IT_man 於 2016-4-9 22:36 編輯 * C% @# M2 R5 F* O# V( ]
9 q, u! |+ W7 R- L: g
我的環境:
7 h/ I' }# n7 x  P3 ^4 d& d/ o: f- b/ _CentOS 6.7    這是RedHat系列的發行版本,與Fedora同系。(發行版本的資料會記錄在 /etc/redhat-release)
4 _9 g. k  [6 |: J* z/ L1.用yum安裝fail2ban
3 ]+ P" W4 |9 z, E8 H! d8 S  Nyum -y install fail2ban   (yum安裝的歷程會記錄在 /var/log/yum 中。如有需要確認已安裝的套件,可以回頭查詢這個記錄檔。)* l4 p0 _9 Q7 E
8 u8 x3 s3 D8 }; u: S: A
如果上述步驟不能安裝fail2ban,那麼yum會顯示找不到該套件的時候,你需要進入這個步驟。
2 Y' m3 b9 }5 i# \# p9 E0 S4 q  l7 b" A, K. b, {" A
yum會掃描套件庫來決定要如何安裝套件。然而由於fail2ban並不在預設的套件庫中,所以我們必須手動加入含有fail2ban的套件庫atrpms。' r5 M% E% _1 k+ _$ k5 r5 V9 w
" R+ a- i7 j% j, A; P6 z9 m3 u
請編輯 /etc/yum.repos.d/CentOS-Base.repo :1 w- r; I# ]6 K* @! ?) {5 {, w
/ l" A6 R0 A7 v- |  B; v; `# R" ]5 m
vi /etc/yum.repos.d/CentOS-Base.repo
' g; U  E4 {3 V5 Y0 Z在最後加入以下設定:* k. {/ M+ C8 x' D- V, Z( ?7 X
5 e! u+ d8 l: |8 g5 }& |+ ]* A
[atrpms]; b/ E7 h- ?; }, R  O  T
name=Red Hat Enterprise Linux $releasever - $basearch - ATrpms% U) m3 g* ]. {
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
! i9 o+ x8 t* r# b$ e: u2 z$ @$ Fgpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
- y& x* a7 F/ Rgpgcheck=1
5 N* ]& \0 c. h) y5 h0 I  tenabled=1
1 P' ~3 K+ `4 P
# g; K1 X- A% T  _1 H% I2. 設定fail2ban
6 y& B3 u) ~; R9 F# z" Z( X4 h7 o主要有兩個設定檔:/etc/fail2ban/fail2ban.conf 跟 /etc/fail2ban/jail.conf
4 {# ^( O8 E. [5 [vi /etc/fail2ban/fail2ban.conf. X9 U* q/ ?' o/ V# J4 G8 }
修改 logtarget 的參數:
9 o4 Z" c1 h: C: v4 X" @7 b3 X/ Y$ U& D
  1. #預設的參數4 ^. ]! k* l! C% r5 |
  2. #logtarget = SYSLOG
    . x0 @! l! f8 q) {4 H
  3. #調整後的參數( j& J  e, [6 `
  4. logtarget = /var/log/fail2ban.log
複製代碼
vi /etc/fail2ban/jail.conf (fail2ban主要的設定檔)- E9 X; j; N; J" R9 b
  1. #預設的參數
    8 }3 U) ~8 G# r& T' K! r! L! A3 N) a
  2. #backend = auto 3 k, X0 z6 H1 W
  3. #調整後的參數
    3 v" i' s+ k& [6 [; d& B0 i4 P
  4. backend = gamin
複製代碼
gamin是Linux的套件之一。如果缺少你可以用yum來安裝它' ^: _2 ^# P5 V& M6 T/ @! N' |
  1. [ssh-iptables]
    & b5 ]5 [4 `7 Q' X) h
  2. #是否啟用
    ; |& M3 b/ s; Z9 C
  3. enabled  = true' [& w6 Y& L# @5 ]9 B
  4. #過濾名稱,使用預設的即可# k. f% b2 ?. ^# o5 x7 G
  5. filter   = sshd
    1 I. P9 H. _4 C1 Q9 I9 S
  6. #iptables設定, f5 c; i" N8 N6 v
  7. action   = iptables[name=SSH, port=22022, protocol=tcp]
      V; `% F/ U+ M5 Z% ^" @. \
  8.            #發生阻擋時的寄信設定
    5 j$ y+ U7 F0 X# S
  9.            sendmail-whois[name=SSH, dest=xxxx@gmail.com, sender=root@xxxx.com]
    " _1 {. |% L8 p. ~+ y

  10. ( `& M$ E( r% B3 x- K8 U4 @$ a. Y; o
  11. #需要掃描的記錄檔
    9 {. k# |8 q( j
  12. logpath  = /var/log/secure
    8 r$ {; Z  g" s, A+ j
  13. #最高嘗試錯誤次數
    8 ]5 ]% a3 m+ p& T
  14. maxretry = 2
    1 |- D, T6 y3 S4 H; F
  15. #阻擋的時間,-1表示永久阻擋7 M5 _) I% ?/ x& s
  16. bantime  = -1
複製代碼
讓fail2ban重新啟動時不會重設阻擋IP規則. t7 P4 Y; y( j5 P+ l
在預設的設定中,fail2ban每次重新啟動時都會遺忘被阻擋的IP設定。舉例來說,如果我的電腦因為登入失敗被fail2ban擋掉,那麼只要fail2ban重新啟動,那麼我的電腦又可以繼續嘗試登入server。9 R$ r# y" ]  D* q
如果要讓fail2ban重新啟動時,不會重設阻擋的IP規則,則修改 /etc/init.d/fail2ban 的內容。
8 F+ p  l* a* b vi /etc/init.d/fail2ban3 M7 i& d6 a7 z, U' _
找到start()的區塊,加入以下有#註解的設定:
% n+ w) g; ~9 O: L* J
  1. start() {7 z  r2 v( X& w0 `& G0 x' V% T
  2.     echo -n [        DISCUZ_CODE_3        ]quot;Starting fail2ban: "
    # ~* g2 [0 S/ B' k- N; K
  3.     getpid
    2 \3 ]! a* w; x0 Q
  4.     if [ -z "$pid" ]; then. u7 ^% {- O5 H# i" u0 p/ \' x
  5.         rm -rf /var/run/fail2ban/fail2ban.sock # unclean in case of restart fal2ban
    6 r0 M/ [4 q: X7 N
  6.         $FAIL2BAN -x start > /dev/null+ o0 z8 S5 L$ P+ E  c( E
  7.         RETVAL=$?& ?( I, v. c. r3 l: F3 ~
  8.     fi
    ! V1 B8 O" e+ E4 Y; y2 N' v
  9.     if [ $RETVAL -eq 0 ]; then3 D+ |# ]- `: ?: T. R
  10.         touch /var/lock/subsys/fail2ban1 b6 @$ @8 m9 m8 r) \
  11.         echo_success# O9 E5 i; m8 T
  12.         /sbin/service iptables restart # reloads previously banned ip's* ^+ @' |: t$ `- L0 e+ L* b
  13.     else$ t$ K4 Q2 W" ]9 X* `9 Z
  14.         echo_failure8 `% b/ O% h# g! j+ T" N9 D- M
  15.     fi
    & a: I0 B; y9 U5 }
  16. - _3 d' n! a1 U
  17.     echo
    , M8 @- H+ F6 I
  18.     return $RETVAL4 K& v. b( c1 u7 R2 s- [
  19. }
複製代碼
再找到stop()區塊,加入以下
有#註解的設定:
8 A9 p8 i5 B, a; h) F
  1. stop() {
    $ K6 p! T5 i8 @5 s9 G
  2.     echo -n [        DISCUZ_CODE_4        ]quot;Stopping fail2ban: "
      h9 ]0 u7 q9 X* D0 w
  3.     getpid, u( I8 _$ A9 h: W9 d6 h0 S
  4.     RETVAL=$?0 D4 j: L- J% Q$ }
  5.     if [ -n "$pid" ]; then5 c- y1 Q- P4 U4 }- z
  6.        /sbin/service iptables save # saves banned ip's
    & L* h. u- a  m5 h
  7.         $FAIL2BAN stop > /dev/null
    ) ]; C2 O  I; ~" Q, M) Q. i: }, D
  8.     sleep 1
    0 c' T* J0 |% ?8 c% S1 m$ f
  9.     getpid
    # D" N) H( ]0 ^' k( a# m3 `
  10.     if [ -z "$pid" ]; then
    8 H4 T; |/ y8 ?- O) u* L
  11.         rm -f /var/lock/subsys/fail2ban
    * _( ?; p- E4 e0 ?3 C, v% ~7 w
  12.         echo_success" k* }$ y: X/ l( h- C* k* o
  13.     else
    2 m9 W7 P+ f# G8 q2 g2 l: \% @: P
  14.         echo_failure8 @$ h1 @, t( k+ I  G1 B
  15.     fi% e0 R9 H8 o( D$ n( K
  16.     else# J# o) p) L; L3 k4 Y6 W, T) F
  17.         echo_failure
    - _  r1 A0 i2 K* L. t$ o
  18.     fi
    9 K) p' T" h. i" R
  19.     echo
    ; r2 T. n4 @7 w  l
  20.     return $RETVAL
複製代碼
3. 設定fail2ban開機順序0 n! I% K, K5 Z. ~8 a

- B7 |0 a6 D) B; N. n3 e0 `chkconfig --add fail2ban4 D" }: n/ ?8 r% y0 w
& y! d1 Z4 Y! T7 l2 ^

8 N: }4 f4 b3 m* h0 k: b2 Xp.s & A+ m: h* `6 O1 O
以上參考 :' I* Q- f. S- D2 e2 @6 o5 w
http://blog.pulipuli.info/2011/07/centosfail2ban.html  7 W* K7 _6 V+ r+ g
http://www.vixual.net/blog/archives/252
- w$ X: e7 S6 ?
回復

使用道具 舉報

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

本版積分規則



中文酷站排行榜

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

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

GMT+8, 2025-12-6 18:27 , Processed in 0.063856 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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