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

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

作者: IT_man    時間: 2016-4-9 12:53
標題: 防火牆強化套件fail2ban之安裝與設定
本帖最後由 IT_man 於 2016-4-9 22:36 編輯
$ \6 e. i# \$ ~! d5 h7 j5 I+ e
! c! M) Y# u3 g6 @( l9 J, S6 D我的環境:7 ~* G; v+ r0 Q* B" ?$ F- T$ H: b
CentOS 6.7    這是RedHat系列的發行版本,與Fedora同系。(發行版本的資料會記錄在 /etc/redhat-release)
- X, a2 z3 f, c1.用yum安裝fail2ban3 b( t7 B7 z& s& H, u5 j
yum -y install fail2ban   (yum安裝的歷程會記錄在 /var/log/yum 中。如有需要確認已安裝的套件,可以回頭查詢這個記錄檔。)
( g! M6 e) b9 W# C  _! k
# q$ G; k  e" v! Z( z如果上述步驟不能安裝fail2ban,那麼yum會顯示找不到該套件的時候,你需要進入這個步驟。
* P: d' m4 V! l5 L5 [9 a
$ Q# ?6 v$ T- w0 j& Lyum會掃描套件庫來決定要如何安裝套件。然而由於fail2ban並不在預設的套件庫中,所以我們必須手動加入含有fail2ban的套件庫atrpms。, d7 W. u9 c' {: o# U$ J: \

% l9 ^/ Z, q6 X& o" X5 m$ u6 b請編輯 /etc/yum.repos.d/CentOS-Base.repo :
/ U: u' A! g  k: x' O% |
, ?/ J7 B- ~3 ]* Avi /etc/yum.repos.d/CentOS-Base.repo/ `% R4 e* x: K  g. f" e$ R
在最後加入以下設定:% i  h+ w; \. x: P8 Q

6 v/ W, ~' W; h' i0 t6 L* E$ C[atrpms]3 ~8 c8 ?4 C: y7 l0 }2 P
name=Red Hat Enterprise Linux $releasever - $basearch - ATrpms# R) ?# {/ t. }: q8 g# H9 f
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
" H7 z' h3 f" q% e6 n3 Q2 wgpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
( W, ?! z; }6 ]7 H6 J9 @6 O9 x! ?gpgcheck=1
: i5 s2 G% B# G6 A( J' Yenabled=16 \5 n. M- F# _0 h! j! x

. \% M. L+ e" k# i+ V2. 設定fail2ban
. \! D1 n$ [# I# v' p- W主要有兩個設定檔:/etc/fail2ban/fail2ban.conf 跟 /etc/fail2ban/jail.conf2 [* z* p% |4 H1 V) t
vi /etc/fail2ban/fail2ban.conf6 Z) P9 o6 ]# i0 D
修改 logtarget 的參數:5 I; c; A- p+ i/ @% H) o, d8 u
  1. #預設的參數
    ! _( ?! {# ?, \9 m
  2. #logtarget = SYSLOG
    4 Y; r& u, g: G# R/ o
  3. #調整後的參數. T( z+ _# i  W7 V' o/ z: \
  4. logtarget = /var/log/fail2ban.log
複製代碼
vi /etc/fail2ban/jail.conf (fail2ban主要的設定檔)* D( g2 ?$ D4 {2 L& \' H6 C7 c8 i
  1. #預設的參數
    7 T/ C: s5 `% ]. L1 K! v- L4 T
  2. #backend = auto
    # {4 e5 n$ x/ W& w) s  e
  3. #調整後的參數, n0 I# v( Y0 W; m& H
  4. backend = gamin
複製代碼
gamin是Linux的套件之一。如果缺少你可以用yum來安裝它
% ^# \% c+ d0 N+ n6 n2 g
  1. [ssh-iptables]
    4 p% w9 X, N2 F: K+ D
  2. #是否啟用; e5 r3 A6 E3 I  _5 M9 b
  3. enabled  = true( R8 i/ h. f1 A5 u4 ?
  4. #過濾名稱,使用預設的即可/ ^1 X" C$ G4 s  k1 J& s. p
  5. filter   = sshd
    9 Y# F7 N8 K3 K  ~+ N" u
  6. #iptables設定
    + p, @* n6 F& h3 w! ?. }  a
  7. action   = iptables[name=SSH, port=22022, protocol=tcp]
    ) b- [+ d  P7 k2 s5 E% {
  8.            #發生阻擋時的寄信設定
    - D. J5 p7 s+ X& @5 m& C
  9.            sendmail-whois[name=SSH, dest=xxxx@gmail.com, sender=root@xxxx.com], z" F) V. {# b4 M7 v) ~( T
  10. ! h8 r3 b& N8 A" X' h
  11. #需要掃描的記錄檔
    / d3 M9 ^6 I+ n5 p" d& t
  12. logpath  = /var/log/secure
    3 |  F' [. \8 r
  13. #最高嘗試錯誤次數. [, f; a8 h! l  e
  14. maxretry = 2
    " \! B# q. W2 j$ _5 ?
  15. #阻擋的時間,-1表示永久阻擋7 d+ p5 O& v1 f- p' @' E3 E8 G
  16. bantime  = -1
複製代碼
讓fail2ban重新啟動時不會重設阻擋IP規則3 u% T; p3 B; i/ G; h
在預設的設定中,fail2ban每次重新啟動時都會遺忘被阻擋的IP設定。舉例來說,如果我的電腦因為登入失敗被fail2ban擋掉,那麼只要fail2ban重新啟動,那麼我的電腦又可以繼續嘗試登入server。
- j1 D* `) o- Q如果要讓fail2ban重新啟動時,不會重設阻擋的IP規則,則修改 /etc/init.d/fail2ban 的內容。
4 F4 R" n# E: w3 d vi /etc/init.d/fail2ban
- S6 u, o2 S# H找到start()的區塊,加入以下有#註解的設定:
* ^0 i+ p+ G4 K
  1. start() {
    ) {6 X* q  Y" S3 f8 a2 [
  2.     echo -n [        DISCUZ_CODE_3        ]quot;Starting fail2ban: "
    6 V% u# y# w" c7 J: \5 e7 H3 f2 Q  e
  3.     getpid* Q+ h3 G/ n4 L) s
  4.     if [ -z "$pid" ]; then& p9 @# f) a$ _: k
  5.         rm -rf /var/run/fail2ban/fail2ban.sock # unclean in case of restart fal2ban
    . o+ E7 |9 v, Q9 g* y) W$ S
  6.         $FAIL2BAN -x start > /dev/null+ ^* h1 Y/ r) G
  7.         RETVAL=$?
    9 v$ _$ ~. f. Q) a! n
  8.     fi
    ) h" G' c* G+ e; l9 ]5 A( `8 Y8 l" y
  9.     if [ $RETVAL -eq 0 ]; then
    ' I/ W  A$ z2 @4 K7 N1 n5 ]
  10.         touch /var/lock/subsys/fail2ban
    6 X" O- [% s. y. h, d% w
  11.         echo_success
    % ]3 k! Y+ j9 D" d) D
  12.         /sbin/service iptables restart # reloads previously banned ip's6 E0 s6 N& T/ `! }9 q1 Q+ j
  13.     else
    : R8 g7 z7 ?, q5 W) A& I. `$ Y
  14.         echo_failure
    , y6 z9 L- e- `. ~, n' o
  15.     fi+ E# X0 W5 ^; _6 t" y7 S* s6 l

  16. $ K6 ~, u/ J  ~- Q! V% G2 D
  17.     echo
    % w7 o1 ?; O0 e% p  v
  18.     return $RETVAL
      t' A3 W3 H# l
  19. }
複製代碼
再找到stop()區塊,加入以下
有#註解的設定:
) t: w! _5 U9 }- O* E4 m9 ^
  1. stop() {4 ~% q5 p' E+ L8 J
  2.     echo -n [        DISCUZ_CODE_4        ]quot;Stopping fail2ban: "
    9 r# C  o$ f2 }% |+ i" [! y7 R5 N
  3.     getpid
    4 O/ J) }4 v/ ]; v
  4.     RETVAL=$?% z* j# H/ X- n0 ?; l# t
  5.     if [ -n "$pid" ]; then
    , L, z: w6 [, F
  6.        /sbin/service iptables save # saves banned ip's& X8 d8 X3 @4 n. W; \' U
  7.         $FAIL2BAN stop > /dev/null
    2 b* \4 w+ k, K
  8.     sleep 1
    ! v; s, b; Z7 ?6 a& d* W: R4 D
  9.     getpid+ e  J$ [0 v6 p. Z7 l% B
  10.     if [ -z "$pid" ]; then
    ! L( E: F1 B- Q" U9 K# h
  11.         rm -f /var/lock/subsys/fail2ban
    3 a; m' C; V" ^, Y- m' a/ P
  12.         echo_success# z: Q! F" L3 g& }2 f6 }
  13.     else) e* K4 o" E  Q! e
  14.         echo_failure
    / x$ r1 k7 L4 M7 D3 u# H
  15.     fi
    0 O5 g9 O5 @1 f0 @3 E# [/ Q
  16.     else8 B& c# N+ f1 d1 R3 @
  17.         echo_failure9 g, u5 y' ~. Z2 c
  18.     fi
    % F# u/ }, |3 W  f
  19.     echo4 A4 z% O$ }2 ~* m
  20.     return $RETVAL
複製代碼
3. 設定fail2ban開機順序  q8 s$ \& Z" D8 }

6 L/ W( [& Z# t) [: c7 D0 V7 jchkconfig --add fail2ban! m. M- E6 K2 i3 V2 ~7 x; i
2 r* `/ g( c3 z' }! ~4 n

; \5 v' d! {+ ?! R. a; np.s " U8 _( c6 P9 }. L* E5 s6 Q- Q5 p
以上參考 :7 S# D: j7 ~: H+ Q% \( q
http://blog.pulipuli.info/2011/07/centosfail2ban.html  
$ K9 L: _  I; @( O2 vhttp://www.vixual.net/blog/archives/252
% ^, I, d  s  g. k




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