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

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

作者: IT_man    時間: 2016-4-9 12:53
標題: 防火牆強化套件fail2ban之安裝與設定
本帖最後由 IT_man 於 2016-4-9 22:36 編輯
% k5 D$ n# ?! v  `
8 C$ d) E* f  n: {我的環境:
7 R- \& S, \. B4 h9 z3 A3 RCentOS 6.7    這是RedHat系列的發行版本,與Fedora同系。(發行版本的資料會記錄在 /etc/redhat-release)2 ~( j- T# j, K
1.用yum安裝fail2ban
: n  V) o3 X- X/ Z7 x( [' Dyum -y install fail2ban   (yum安裝的歷程會記錄在 /var/log/yum 中。如有需要確認已安裝的套件,可以回頭查詢這個記錄檔。)
9 ^. v2 F& Y) T7 a2 U) H# J& w) A& U3 B/ _, D
如果上述步驟不能安裝fail2ban,那麼yum會顯示找不到該套件的時候,你需要進入這個步驟。
- ^2 [: [5 h+ T8 s% d7 |# z! O1 k, y0 M- j) @) [
yum會掃描套件庫來決定要如何安裝套件。然而由於fail2ban並不在預設的套件庫中,所以我們必須手動加入含有fail2ban的套件庫atrpms。
. ]; }' c- ]9 D8 F; o, ^3 C, @5 ^+ p" i# ^/ `
請編輯 /etc/yum.repos.d/CentOS-Base.repo :
) Q5 _" [! }0 X6 J2 U
1 d2 n% f; l, Tvi /etc/yum.repos.d/CentOS-Base.repo; }7 O5 C8 O. G+ C, T( \! f  c- h
在最後加入以下設定:5 Z, w7 K% p$ N. i5 f
/ c4 y, M. x8 O( x
[atrpms]) {- o3 t+ `: g! ]2 x
name=Red Hat Enterprise Linux $releasever - $basearch - ATrpms1 ]2 |4 j6 Q0 n3 r9 d6 q% d1 I
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable2 [' Z) g6 c( p( ^
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms. n6 x0 L9 k( R+ V% q6 T$ j
gpgcheck=1
0 Z" B. y! S; Tenabled=14 _6 ~+ a7 m( C; r" F
4 H, b! ~) o$ O6 ?3 h! E4 n. f2 A4 x
2. 設定fail2ban
" n$ H$ @$ O$ m' [/ m( G主要有兩個設定檔:/etc/fail2ban/fail2ban.conf 跟 /etc/fail2ban/jail.conf
* m, T1 r$ v' `% u! avi /etc/fail2ban/fail2ban.conf, p, i0 |4 S) S. @, K5 X. u
修改 logtarget 的參數:
3 n$ r# q" k- P: ?4 p8 M( v. w
  1. #預設的參數
    ( ~  B2 ]/ ~, N+ g& ~$ `0 U& c
  2. #logtarget = SYSLOG
    / B7 a$ Y/ p/ q4 k
  3. #調整後的參數
    9 d/ \# E4 X. }7 ]
  4. logtarget = /var/log/fail2ban.log
複製代碼
vi /etc/fail2ban/jail.conf (fail2ban主要的設定檔)
  o# z5 A8 v9 K5 B
  1. #預設的參數+ v/ @$ M+ t$ N0 j
  2. #backend = auto - A  k$ T) n5 H/ {
  3. #調整後的參數- Z- r- O: c. w, ~! S
  4. backend = gamin
複製代碼
gamin是Linux的套件之一。如果缺少你可以用yum來安裝它* x, R- B5 b# T: t! N5 I4 F# l
  1. [ssh-iptables]6 K& L& b/ H+ u1 A7 N- G( Q
  2. #是否啟用# i2 X) O! {% D/ Z0 q( s3 x
  3. enabled  = true
      L- C. e/ d( K( O+ ^2 f! Y* w0 g) p
  4. #過濾名稱,使用預設的即可/ e% ^. g9 ^" m& F; ^5 L
  5. filter   = sshd% K; I* |2 A7 ?  q$ Y
  6. #iptables設定5 ~+ J: v& A8 O- K& f& j( T1 U
  7. action   = iptables[name=SSH, port=22022, protocol=tcp]6 p( K+ T9 H7 y2 N# |: I% f" ]
  8.            #發生阻擋時的寄信設定- J. |8 I* }: L6 N0 q! R# ~2 S. T
  9.            sendmail-whois[name=SSH, [email protected], [email protected]]
    0 y  `3 q4 U  h; K" T  h

  10. # x; C" q. b1 n+ d
  11. #需要掃描的記錄檔' C0 Z6 H5 a3 L9 J9 O8 @
  12. logpath  = /var/log/secure
    3 \  Q! W  }2 I  P4 @" d
  13. #最高嘗試錯誤次數
    + ?* X  v) `0 e0 m2 \
  14. maxretry = 2
    . g: ^/ I3 m" q
  15. #阻擋的時間,-1表示永久阻擋: ]5 B3 V7 ~. r: {* Z% E8 B0 D
  16. bantime  = -1
複製代碼
讓fail2ban重新啟動時不會重設阻擋IP規則
0 L, ^  o7 F% P- G1 W2 f# ?在預設的設定中,fail2ban每次重新啟動時都會遺忘被阻擋的IP設定。舉例來說,如果我的電腦因為登入失敗被fail2ban擋掉,那麼只要fail2ban重新啟動,那麼我的電腦又可以繼續嘗試登入server。
. M+ l- M5 t2 a8 B5 u如果要讓fail2ban重新啟動時,不會重設阻擋的IP規則,則修改 /etc/init.d/fail2ban 的內容。& d+ O" a  G( T
vi /etc/init.d/fail2ban
5 [; Y# @$ m1 Q6 ~找到start()的區塊,加入以下有#註解的設定:
7 i# L5 @3 j" U0 N
  1. start() {
    ! W1 v$ ]! C7 U7 ^) u! Y5 z+ w
  2.     echo -n [        DISCUZ_CODE_3        ]quot;Starting fail2ban: "
    5 K6 w2 i& k' t
  3.     getpid( I- T  I* n1 R6 G/ E8 G& O
  4.     if [ -z "$pid" ]; then# D0 k5 D# R2 i" X7 e: i
  5.         rm -rf /var/run/fail2ban/fail2ban.sock # unclean in case of restart fal2ban
    * v" P$ q. X- q. n2 ?6 t5 s# X
  6.         $FAIL2BAN -x start > /dev/null. y- S9 E9 ?  x6 c
  7.         RETVAL=$?- `8 }, r; d) x# L4 p
  8.     fi: q- l5 y0 B1 z% P5 t
  9.     if [ $RETVAL -eq 0 ]; then
    / q( I' I& P, B+ ~2 d$ ?0 b4 E
  10.         touch /var/lock/subsys/fail2ban
    ' A' I# Z6 `9 k. M9 \
  11.         echo_success5 F5 s& ]: }: C; j0 G8 K  Z, N( Z
  12.         /sbin/service iptables restart # reloads previously banned ip's% D' i* x) W0 ?/ O4 V
  13.     else
      C: ]% Y* S6 [# L. c& F8 I
  14.         echo_failure
    - G) b. _$ A1 V3 M4 [, x# a; Y
  15.     fi, \; F0 f$ ?4 \& E
  16. 0 Q( ?* ?/ s/ f: Z8 s3 F2 v
  17.     echo  z% L+ T. Y) |/ J* v
  18.     return $RETVAL
    % X2 R- k' ~5 T8 [0 p$ d
  19. }
複製代碼
再找到stop()區塊,加入以下
有#註解的設定:0 m4 B& s' d% D7 {/ o. T9 W8 j
  1. stop() {
    ' m& R. S" V+ u
  2.     echo -n [        DISCUZ_CODE_4        ]quot;Stopping fail2ban: "
    8 X; ^  k8 {  {
  3.     getpid; M- Z% N$ o! s/ c6 \3 Q" G
  4.     RETVAL=$?
    6 c# R% r9 e/ T8 i; m* C  G
  5.     if [ -n "$pid" ]; then7 T) I9 H  f7 r% }. p" f
  6.        /sbin/service iptables save # saves banned ip's* c9 O5 I6 I( q8 x
  7.         $FAIL2BAN stop > /dev/null  {9 @6 v# Y9 L! E& r. U. r
  8.     sleep 1
    ( _9 y0 Q% p2 R6 E
  9.     getpid8 k. D. y/ ~/ e8 H8 \% c! w& T
  10.     if [ -z "$pid" ]; then; i0 {8 b) N7 F: M
  11.         rm -f /var/lock/subsys/fail2ban0 v9 \0 M3 X$ {
  12.         echo_success
    9 e% s. V: Q) k5 R" m
  13.     else
    4 z% d& w$ E. p8 X3 U! b; K
  14.         echo_failure
    & g" K# B1 @: a+ L& _
  15.     fi
    ) c- Z6 O; i1 r7 e4 o# H  f3 @; c! V
  16.     else& d: r$ r* u8 x6 c
  17.         echo_failure
    3 F8 r+ w2 q; i# b% m0 [
  18.     fi1 Z# A7 F# j" `+ Z. x
  19.     echo
    7 K5 b% |8 M8 g, j+ f
  20.     return $RETVAL
複製代碼
3. 設定fail2ban開機順序
  F0 ~+ @" C- N
) i8 N6 M6 Z8 [& D6 ^7 a. V1 \6 [* l* wchkconfig --add fail2ban
  H: _0 U6 K9 q1 x8 }) b/ s8 }
6 Z+ `% w; s" u5 c7 x8 _: D

6 s- w) i! y  G& y7 {7 M: xp.s
3 U; C& w: N8 |; L+ q& A以上參考 :
  x5 y' S( K3 M4 _) zhttp://blog.pulipuli.info/2011/07/centosfail2ban.html  
( c  J8 j' c/ ], jhttp://www.vixual.net/blog/archives/252% L1 Y5 v% D& ~1 V9 \





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