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

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

作者: IT_man    時間: 2016-4-9 12:53
標題: 防火牆強化套件fail2ban之安裝與設定
本帖最後由 IT_man 於 2016-4-9 22:36 編輯 0 ~' Q( @7 J, E) \6 C4 g

* b' ?' E! ]& t' Y$ S- d我的環境:
7 P7 }/ F* M  s# i  N, _CentOS 6.7    這是RedHat系列的發行版本,與Fedora同系。(發行版本的資料會記錄在 /etc/redhat-release)$ c* O" f$ s$ g
1.用yum安裝fail2ban0 z, b/ E. w2 r: r* I
yum -y install fail2ban   (yum安裝的歷程會記錄在 /var/log/yum 中。如有需要確認已安裝的套件,可以回頭查詢這個記錄檔。)
  z* T) [2 J  ]) M" E  @) \7 h5 K" j- O, D5 }: U6 [" p9 X3 b6 ?5 E
如果上述步驟不能安裝fail2ban,那麼yum會顯示找不到該套件的時候,你需要進入這個步驟。
9 s- a5 [& }6 J! h) p
/ }: r8 s. W. `1 d* c2 @: [0 p7 wyum會掃描套件庫來決定要如何安裝套件。然而由於fail2ban並不在預設的套件庫中,所以我們必須手動加入含有fail2ban的套件庫atrpms。
& v3 K, A) U5 i+ _
5 Y7 _6 t% [6 V( z$ q& C" |" D請編輯 /etc/yum.repos.d/CentOS-Base.repo :4 u+ H/ }* w& i: R5 w6 \  ~: x
9 [' s; x" |4 O( y
vi /etc/yum.repos.d/CentOS-Base.repo
, i, x- y6 w# u$ c5 N在最後加入以下設定:: c5 Q* d- ^: l5 }/ G/ v( ~# U
0 B) f- b9 v3 C& y
[atrpms]
% I3 t: N0 T' D/ A9 `name=Red Hat Enterprise Linux $releasever - $basearch - ATrpms2 W0 s5 e. p5 D6 t, E
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable) ^  k1 `) a3 {/ P5 ?! D
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
% J( F8 ], Y) T- G; Ogpgcheck=1
3 q/ r6 Q0 Y' `% q" S" Henabled=1
4 Y6 \& d$ f( M, H9 _* A6 ~
+ y9 c, G; d0 K! K4 k! F9 @2. 設定fail2ban( h# L- Q' k1 U0 `& w# A$ @
主要有兩個設定檔:/etc/fail2ban/fail2ban.conf 跟 /etc/fail2ban/jail.conf
3 @. Z" m5 z0 i5 S  V$ wvi /etc/fail2ban/fail2ban.conf) S% g0 A# l- ^" Y3 S: N1 f
修改 logtarget 的參數:- }* H. Q4 D4 i+ q' E/ I
  1. #預設的參數+ |& m! T4 o# u4 x* j
  2. #logtarget = SYSLOG5 J, |8 H% B. c$ E
  3. #調整後的參數% e- m4 c. E' t! h; p' H% r
  4. logtarget = /var/log/fail2ban.log
複製代碼
vi /etc/fail2ban/jail.conf (fail2ban主要的設定檔)7 y% o9 i7 X  t+ m2 U
  1. #預設的參數
    5 E/ ?4 m- X$ G, ~% m- g" u9 ?( F- W
  2. #backend = auto
    % C9 F" Q* N9 X4 g2 g# ~5 q2 {6 C# g
  3. #調整後的參數
    # u4 _) q4 F  [2 z5 U
  4. backend = gamin
複製代碼
gamin是Linux的套件之一。如果缺少你可以用yum來安裝它
1 I" F' U. Z0 d9 d  ]; s
  1. [ssh-iptables]
    + f$ W( D# g+ K* j& n/ o
  2. #是否啟用( {4 O. V$ k& E  @. ~# j
  3. enabled  = true
    2 N! Y! o2 j; @
  4. #過濾名稱,使用預設的即可9 ^( s- h1 P; d) x; O
  5. filter   = sshd
    , a/ ^- w/ [7 p8 n% p
  6. #iptables設定: P, |) S9 S% ~6 K
  7. action   = iptables[name=SSH, port=22022, protocol=tcp]
    ( f' j) C& \* Z' Q
  8.            #發生阻擋時的寄信設定9 y0 z, |) v* u" ?8 z
  9.            sendmail-whois[name=SSH, [email protected], [email protected]]: R2 j# @2 d6 B/ z

  10. % H) Z( M9 y! k4 @
  11. #需要掃描的記錄檔
    " o. L$ O( A' m* @2 U6 B4 d
  12. logpath  = /var/log/secure5 t" Z' O4 N: s  b) v
  13. #最高嘗試錯誤次數
    $ o2 q: p3 L. e
  14. maxretry = 2
    % @! g# y5 R- l
  15. #阻擋的時間,-1表示永久阻擋
    ) C6 i; }3 h5 i9 G" F0 m0 x
  16. bantime  = -1
複製代碼
讓fail2ban重新啟動時不會重設阻擋IP規則4 p9 }' A! g: C6 P$ K
在預設的設定中,fail2ban每次重新啟動時都會遺忘被阻擋的IP設定。舉例來說,如果我的電腦因為登入失敗被fail2ban擋掉,那麼只要fail2ban重新啟動,那麼我的電腦又可以繼續嘗試登入server。
" {0 y: v* B4 }! @  g8 c如果要讓fail2ban重新啟動時,不會重設阻擋的IP規則,則修改 /etc/init.d/fail2ban 的內容。. Q. Q' d2 T$ L' T
vi /etc/init.d/fail2ban; Y, p: E% O* `' i0 X/ s& h% [0 |
找到start()的區塊,加入以下有#註解的設定:8 }% @% ~) w# B4 Y3 C
  1. start() {& H5 E3 c, R/ o7 Q2 C0 W' K
  2.     echo -n [        DISCUZ_CODE_3        ]quot;Starting fail2ban: "4 i4 G- n5 c  C) C, n0 ~0 w# i" q  A
  3.     getpid
    ( ]" X6 s9 A) r, H0 t" [& M& N
  4.     if [ -z "$pid" ]; then
    / F1 O9 k0 s* o1 G
  5.         rm -rf /var/run/fail2ban/fail2ban.sock # unclean in case of restart fal2ban
    3 I4 [' F" c  ?2 S" W! P( V
  6.         $FAIL2BAN -x start > /dev/null
    5 E! u/ I; U, N3 C. f6 j
  7.         RETVAL=$?
    5 y5 Y5 }1 Y( A, e8 S% y
  8.     fi7 j( M. [2 c* ~; d, b1 S
  9.     if [ $RETVAL -eq 0 ]; then
    : s/ a) Y, E9 {* T
  10.         touch /var/lock/subsys/fail2ban
    % E; n$ |! X8 I; k* J
  11.         echo_success
    * E4 ^' E: b" N1 [* Z% l" a* z
  12.         /sbin/service iptables restart # reloads previously banned ip's& z1 F/ I1 q' w# |5 y# u
  13.     else" @3 P; d% v; J  p
  14.         echo_failure7 Q' C5 x3 u) Y1 h
  15.     fi
    ( I7 S1 K' E- ?$ y+ @
  16. 0 {- C7 l" u7 R% A4 h. d
  17.     echo4 D5 G/ I4 ~' n0 O" U
  18.     return $RETVAL
    ' p/ m# \4 P) C+ W
  19. }
複製代碼
再找到stop()區塊,加入以下
有#註解的設定:
+ O& E- [$ c) y
  1. stop() {
    / a1 z* c# K5 R/ ^3 F. M
  2.     echo -n [        DISCUZ_CODE_4        ]quot;Stopping fail2ban: "& {- L& H$ d2 ^5 u1 i
  3.     getpid+ {  j# i, p* o; Y; `9 e: F& J' g8 ~4 Y
  4.     RETVAL=$?
    7 {# r" E2 O; N5 J! z0 B) F* I8 M. _( w
  5.     if [ -n "$pid" ]; then$ I  ]$ }3 l- B9 h
  6.        /sbin/service iptables save # saves banned ip's
    2 X9 @$ a& Q) H
  7.         $FAIL2BAN stop > /dev/null# W: w  V& ?- E& B) O: g, h$ W
  8.     sleep 1
    1 b# c2 e9 J2 d, r
  9.     getpid
    * A! c- B: l  Z4 @/ X! r4 `, d
  10.     if [ -z "$pid" ]; then& I2 j$ H" B, R) n, W; K
  11.         rm -f /var/lock/subsys/fail2ban
    / M+ K2 K9 R4 D+ x+ [2 W: F1 w8 Y/ X
  12.         echo_success
    , I; b/ d/ e  y( Z! Y; @: M
  13.     else
    # a  m0 ^/ W& N6 G+ Z% r6 w% R- \" `
  14.         echo_failure1 Y# E$ H- t9 f4 ]' }+ R$ [
  15.     fi& U6 A! w0 t6 U# M/ ^
  16.     else
    : E" l( h4 e, @; r# f
  17.         echo_failure2 P7 [/ j& H% \6 a3 K
  18.     fi
    $ ^; ?9 Y) G' p. {' t, A
  19.     echo# M9 }0 o* l2 p; u& p' V) Y
  20.     return $RETVAL
複製代碼
3. 設定fail2ban開機順序) a8 A& `( w5 C" G9 W

/ h3 n  `6 i. pchkconfig --add fail2ban
' }1 l! [$ w9 e' }2 [% D
$ F6 s3 }! \/ q- w' t

4 R/ E5 ?" t0 B% k6 wp.s
' X1 a) q) a; F/ k3 [5 e! n  A以上參考 :. ^3 |' L+ D" q4 g* T* G
http://blog.pulipuli.info/2011/07/centosfail2ban.html  ) S) y# y. V4 F, Z
http://www.vixual.net/blog/archives/252
3 O/ m* Y2 h: W5 Y* X3 _




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