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

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

作者: IT_man    時間: 2016-4-9 12:53
標題: 防火牆強化套件fail2ban之安裝與設定
本帖最後由 IT_man 於 2016-4-9 22:36 編輯
$ w; k& q1 \) @6 n) Q+ w# X  \4 t. R# I
我的環境:
1 U6 f$ Z. H/ L) ]' UCentOS 6.7    這是RedHat系列的發行版本,與Fedora同系。(發行版本的資料會記錄在 /etc/redhat-release)
. ?9 |) @( J; D+ C# H2 w( n# t1.用yum安裝fail2ban
  e( s' {0 ~8 nyum -y install fail2ban   (yum安裝的歷程會記錄在 /var/log/yum 中。如有需要確認已安裝的套件,可以回頭查詢這個記錄檔。)3 o' U& l" j' ?8 B0 ?
' }1 Z4 U9 {3 D
如果上述步驟不能安裝fail2ban,那麼yum會顯示找不到該套件的時候,你需要進入這個步驟。7 V0 a4 _. m5 M% \; U- ?# p& B- p- A

6 W, @" L. X; P& p3 syum會掃描套件庫來決定要如何安裝套件。然而由於fail2ban並不在預設的套件庫中,所以我們必須手動加入含有fail2ban的套件庫atrpms。/ Y4 T0 T2 I0 v9 w2 O) L7 u
- M3 ~# N. \8 f- c+ S* b
請編輯 /etc/yum.repos.d/CentOS-Base.repo :; {+ a/ m0 N2 ~* m

: T+ t3 ?; ?6 lvi /etc/yum.repos.d/CentOS-Base.repo! V1 y" Q6 c" j- ?. F& g
在最後加入以下設定:
" O" P$ q/ t) m" q% Z6 T  Q7 K1 G. N4 x3 d  p
[atrpms]
2 K1 r: s, z! j0 G' i8 hname=Red Hat Enterprise Linux $releasever - $basearch - ATrpms
0 R4 H" x" K" Rbaseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable- O0 t/ G, T. V2 n$ [% \
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms: b4 y" g# w6 o, h& X* o
gpgcheck=1% f( [9 M7 L! I* p
enabled=15 a" E' K4 U7 }1 n; e! u2 p0 ^

) C* K9 P- z: w" F4 S2. 設定fail2ban0 P) A: T( U* ]: Q: i4 q2 G+ c0 D; N
主要有兩個設定檔:/etc/fail2ban/fail2ban.conf 跟 /etc/fail2ban/jail.conf7 l6 C9 x9 _, U. ~$ m
vi /etc/fail2ban/fail2ban.conf
: l) g& j% A  s* I+ m修改 logtarget 的參數:
0 B) [0 A0 A9 n  X$ ]
  1. #預設的參數4 Y+ y4 c  A/ w
  2. #logtarget = SYSLOG
    9 j. H4 m6 i" ^/ l2 W
  3. #調整後的參數
    - a. M7 m5 j. p
  4. logtarget = /var/log/fail2ban.log
複製代碼
vi /etc/fail2ban/jail.conf (fail2ban主要的設定檔)
$ w9 z, r" u( `' S$ a3 K5 x" H
  1. #預設的參數$ x. w" W7 H# y% G5 R2 O
  2. #backend = auto ) }+ h, x2 p9 z! w( `4 j7 R
  3. #調整後的參數
    ' E9 U$ e  h0 F. |4 E) p& a
  4. backend = gamin
複製代碼
gamin是Linux的套件之一。如果缺少你可以用yum來安裝它
' t; ]  z# y* N$ ]1 p4 w( @1 N
  1. [ssh-iptables]
    . @: }' N; {% T" t! |! e% w
  2. #是否啟用
    * c2 x% x# W' w; h
  3. enabled  = true  z7 [8 `9 B( S: M
  4. #過濾名稱,使用預設的即可4 i3 C& n: f  {- z. _* w
  5. filter   = sshd
    # j8 }; q7 q# x  K& d5 s+ M
  6. #iptables設定- ?9 ^5 p% @5 k5 T2 T- t
  7. action   = iptables[name=SSH, port=22022, protocol=tcp]
    5 i! k+ g6 T* G; m) H+ C
  8.            #發生阻擋時的寄信設定: F+ P5 q' o7 I7 l3 k6 e+ W* k
  9.            sendmail-whois[name=SSH, dest=xxxx@gmail.com, sender=root@xxxx.com]
    , }, ]  v1 c! i4 z
  10. # o- S: c0 j" j8 k% l
  11. #需要掃描的記錄檔
    , u, Q# I0 y# S$ Q0 @8 w
  12. logpath  = /var/log/secure* |% N  |' f: |) V9 h& z
  13. #最高嘗試錯誤次數" I7 a9 Z6 h1 A1 b2 k
  14. maxretry = 28 Q: H: h, ~; c6 B
  15. #阻擋的時間,-1表示永久阻擋
    . r. r; h$ E$ q2 ?$ P2 J/ _
  16. bantime  = -1
複製代碼
讓fail2ban重新啟動時不會重設阻擋IP規則2 a  ?4 O* B5 h5 Q$ D
在預設的設定中,fail2ban每次重新啟動時都會遺忘被阻擋的IP設定。舉例來說,如果我的電腦因為登入失敗被fail2ban擋掉,那麼只要fail2ban重新啟動,那麼我的電腦又可以繼續嘗試登入server。
0 O; A! E, w. n6 R4 e1 Q1 y( P  B如果要讓fail2ban重新啟動時,不會重設阻擋的IP規則,則修改 /etc/init.d/fail2ban 的內容。
" N. b0 M6 D8 _ vi /etc/init.d/fail2ban
+ n( v: g9 H5 [- K; U( m找到start()的區塊,加入以下有#註解的設定:* D) V& d8 d5 x! h' l$ x/ ]
  1. start() {
    + Q" e" u0 r8 t0 d
  2.     echo -n [        DISCUZ_CODE_3        ]quot;Starting fail2ban: "
    % ^- S+ ?$ k. O- d4 x9 U
  3.     getpid  G3 r# T/ F$ p  k5 y' m- n
  4.     if [ -z "$pid" ]; then
    0 z, @+ I# _2 W& W
  5.         rm -rf /var/run/fail2ban/fail2ban.sock # unclean in case of restart fal2ban
    ' f1 M7 ]5 s* f0 T
  6.         $FAIL2BAN -x start > /dev/null
    % |8 d) ^# i  j) d6 R4 V7 g8 k1 ^9 q. R
  7.         RETVAL=$?' o" r, ]1 d$ K: Y1 b
  8.     fi  }3 u/ t2 |  l) @
  9.     if [ $RETVAL -eq 0 ]; then
    - j7 c0 U5 p- E* S
  10.         touch /var/lock/subsys/fail2ban
    ! B' k+ j2 c3 _/ [
  11.         echo_success
    / u2 _. D6 U# l9 O
  12.         /sbin/service iptables restart # reloads previously banned ip's; V6 h! q( L" O0 P$ w8 Q
  13.     else
    ' R+ Q- `9 X2 c
  14.         echo_failure
    9 t# H1 S1 @+ X+ T) Q8 X$ ^, P
  15.     fi+ y: k" \3 {: S# K

  16. # M- _- i9 Z- R7 P& |
  17.     echo
    , p4 _$ o: K, Q0 |" v3 y; o, p' h* Q$ d
  18.     return $RETVAL  }3 _  H! g4 a& U) {
  19. }
複製代碼
再找到stop()區塊,加入以下
有#註解的設定:8 l# g% U6 k" o5 r+ ]5 T( P3 N
  1. stop() {( ?7 _5 ~! O  P( H: @
  2.     echo -n [        DISCUZ_CODE_4        ]quot;Stopping fail2ban: "
    3 m8 X7 i/ G* K! u* S2 ?
  3.     getpid
    . A; N8 K! ]& x% w" Q- j; E+ w5 r9 m
  4.     RETVAL=$?7 ~: m" E1 }9 ]6 z+ s( @& m
  5.     if [ -n "$pid" ]; then
    + H. Y% W, H5 t5 d% L4 d: E' t
  6.        /sbin/service iptables save # saves banned ip's
    6 s: ^( p; h- w8 A' J3 p6 o$ W
  7.         $FAIL2BAN stop > /dev/null9 Y$ P. U" z8 M# \/ |
  8.     sleep 1
    % H' N% W8 a5 G
  9.     getpid  C& p" Q" ?2 J% R* m
  10.     if [ -z "$pid" ]; then
    9 R" q7 N5 d6 Y3 V- K+ ^1 x) Y  q
  11.         rm -f /var/lock/subsys/fail2ban: M3 c4 J6 f+ O  D$ p
  12.         echo_success% O6 P0 y0 i2 v. z
  13.     else
    9 f0 S9 H* ?- }) Y8 O% u; i$ W4 `3 \
  14.         echo_failure" z- ?) |- x8 r6 d4 G
  15.     fi3 F% y7 q+ I7 P* Q5 h+ i! f  y
  16.     else. B+ s5 ]1 `$ a; ^: E: P
  17.         echo_failure
    + r( F5 X' p/ x# R' U# f4 m
  18.     fi
    ) F, ?' v6 D* X0 s
  19.     echo
    ! E9 i  _* w  U
  20.     return $RETVAL
複製代碼
3. 設定fail2ban開機順序' X( X, m, q8 m) ?" P% h

. |# }* Z1 [. e) D& K  xchkconfig --add fail2ban
5 ?  J+ ?- @# a$ Z/ R, [
# t! t7 K' r, k0 T, I' H5 k6 u
* G9 L1 E; m, f. Q
p.s
/ l4 N! V: ?* ~+ {) D" Q1 ?, K以上參考 :
2 _9 f* a+ C  c+ y9 hhttp://blog.pulipuli.info/2011/07/centosfail2ban.html  ( f% }1 ?( r4 |
http://www.vixual.net/blog/archives/252
  a& C) r9 j# f0 b7 [& |3 o, Y




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