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

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

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

[複製鏈接]
發表於 2016-4-9 12:53:54 | 顯示全部樓層 |閱讀模式
tid=34794& 本帖最後由 IT_man 於 2016-4-9 22:36 編輯
- o6 E' A: g! Y% G: i) U- \6 _' \
& z' e. F4 t+ t5 k7 H" n我的環境:1 k7 _8 q# Q. o, ~% @
CentOS 6.7    這是RedHat系列的發行版本,與Fedora同系。(發行版本的資料會記錄在 /etc/redhat-release)- K2 J3 @6 C/ K9 e/ t
1.用yum安裝fail2ban
7 I( y0 D$ C( f5 G  x- |yum -y install fail2ban   (yum安裝的歷程會記錄在 /var/log/yum 中。如有需要確認已安裝的套件,可以回頭查詢這個記錄檔。)
$ S  E, i9 w2 W* _0 E# m+ h. {# u* z* k  }7 Z$ `
如果上述步驟不能安裝fail2ban,那麼yum會顯示找不到該套件的時候,你需要進入這個步驟。
4 O# Q0 b3 U- E( g0 O3 Y
! M; j; `4 N: K% D1 [: Jyum會掃描套件庫來決定要如何安裝套件。然而由於fail2ban並不在預設的套件庫中,所以我們必須手動加入含有fail2ban的套件庫atrpms。
8 t* \. r4 i5 A! y/ Y& S3 j: [! R
請編輯 /etc/yum.repos.d/CentOS-Base.repo :
# c. l6 J' f) W* c
& {: k! x. @! |1 ~vi /etc/yum.repos.d/CentOS-Base.repo
+ {6 ^% I. c; a. u. P4 ~在最後加入以下設定:
- E$ ]; Z) W5 W8 [
- S& {0 `$ ?( K' E. n2 u[atrpms]
/ l( h! Z3 |3 h7 }. Oname=Red Hat Enterprise Linux $releasever - $basearch - ATrpms) {4 I1 q. U; Y9 h5 Q5 ?& t" f" r
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
0 s  S* z+ a* X4 D" d. n2 ?7 @+ n8 hgpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms" s' Y/ {: i( ]3 [0 }
gpgcheck=1
1 ?. k# k% V1 M. Z, e4 B7 lenabled=1
& S* E$ x  @8 v/ c* }9 Z
0 W3 i2 g" q8 |+ U0 k" H" I# i  x2. 設定fail2ban
& r9 r, y: `1 f+ E$ {主要有兩個設定檔:/etc/fail2ban/fail2ban.conf 跟 /etc/fail2ban/jail.conf
# i: D4 r' Z* q6 b- X$ B! Zvi /etc/fail2ban/fail2ban.conf
5 k5 j# {. |8 x9 D" p修改 logtarget 的參數:
- j- W6 _+ |6 c" x
  1. #預設的參數
    . x3 e: @. Y$ G
  2. #logtarget = SYSLOG
    8 g! N% o7 p* v5 I  `/ X+ H
  3. #調整後的參數7 d) v2 {+ w0 z. F' w9 F
  4. logtarget = /var/log/fail2ban.log
複製代碼
vi /etc/fail2ban/jail.conf (fail2ban主要的設定檔)
) j( o. j9 b( z4 S5 J6 x3 Q' M
  1. #預設的參數
    + `2 F0 Q) M) |
  2. #backend = auto
    1 d6 @  Z! W) `( F+ \; o* W& W
  3. #調整後的參數, v9 [/ o3 q3 Z0 J
  4. backend = gamin
複製代碼
gamin是Linux的套件之一。如果缺少你可以用yum來安裝它
# i3 ~2 L) p6 t1 K
  1. [ssh-iptables]) ?4 o( o2 _( ]2 y+ t1 R( F
  2. #是否啟用2 J, t5 V6 O' i* {
  3. enabled  = true
    " L+ v6 C  d" V+ n* ]1 i! T
  4. #過濾名稱,使用預設的即可' ?. ?/ w0 Y' [4 p5 Y7 f
  5. filter   = sshd4 Z% {  {4 Q; J% D
  6. #iptables設定
    * L% I! F% l$ j
  7. action   = iptables[name=SSH, port=22022, protocol=tcp]
    $ a" u, Y# w* Q  D* S
  8.            #發生阻擋時的寄信設定
    7 ^( ~2 G3 e: r* h6 c
  9.            sendmail-whois[name=SSH, dest=xxxx@gmail.com, sender=root@xxxx.com]) |. s! R9 k( E0 c- b$ h9 x

  10.   F5 g0 }: `0 R
  11. #需要掃描的記錄檔& a) K" u; ?& X0 o
  12. logpath  = /var/log/secure
    , }, `) u, S/ |5 K" j1 b7 k( H
  13. #最高嘗試錯誤次數
    & I& Q7 C6 W2 A% s& o( l: ?4 J* i
  14. maxretry = 2& @8 S1 A6 ~, y
  15. #阻擋的時間,-1表示永久阻擋
    % `+ H5 a5 M! U) q& D+ d) f  ~
  16. bantime  = -1
複製代碼
讓fail2ban重新啟動時不會重設阻擋IP規則
9 x$ j1 `' T; D/ h$ P" Y在預設的設定中,fail2ban每次重新啟動時都會遺忘被阻擋的IP設定。舉例來說,如果我的電腦因為登入失敗被fail2ban擋掉,那麼只要fail2ban重新啟動,那麼我的電腦又可以繼續嘗試登入server。
6 d8 j# c/ T8 n( l- X5 v如果要讓fail2ban重新啟動時,不會重設阻擋的IP規則,則修改 /etc/init.d/fail2ban 的內容。* Z6 R+ c0 t" g, b  ]
vi /etc/init.d/fail2ban& \9 N& K/ f0 T3 f/ Q( Z
找到start()的區塊,加入以下有#註解的設定:
: ?( k3 v& P- ]+ d  V0 ^; f0 I
  1. start() {
    * B) h$ b0 M& q- U- N, Q) \
  2.     echo -n [        DISCUZ_CODE_3        ]quot;Starting fail2ban: "
    ; D& R; g7 j3 _# P+ J4 r
  3.     getpid
    8 Z. M0 L' C4 Z) ]$ R
  4.     if [ -z "$pid" ]; then1 [; `4 }5 r/ L8 t. P% c7 C
  5.         rm -rf /var/run/fail2ban/fail2ban.sock # unclean in case of restart fal2ban
    ' `& y0 \$ y, f, o8 u# _
  6.         $FAIL2BAN -x start > /dev/null
    5 @$ I5 `- i# Q3 \
  7.         RETVAL=$?
      U: l" @5 h% E- P
  8.     fi
    2 o$ Q5 Y  I  X3 U7 O; Z9 d' J
  9.     if [ $RETVAL -eq 0 ]; then8 F6 u5 @0 Q$ l% r7 D% c. v4 H& |3 ~
  10.         touch /var/lock/subsys/fail2ban
    - L! _# f8 s7 w- k
  11.         echo_success
    $ d  r# [3 M$ z+ u/ G( G
  12.         /sbin/service iptables restart # reloads previously banned ip's+ ]  u' s. S- S7 a; d
  13.     else
    ; L. ]: h" [  {: {
  14.         echo_failure( j, u, i* I9 S  n& j
  15.     fi
    0 c; {+ y! S, \! P0 i. G) ?

  16. 1 {+ @0 }% {! d; {) p# }
  17.     echo9 z; X7 U9 z: J' |8 n
  18.     return $RETVAL/ G3 _% l: d$ X
  19. }
複製代碼
再找到stop()區塊,加入以下
有#註解的設定:+ T% L' r# v1 D; F  d4 C
  1. stop() {! S* P3 D4 h- I: s$ ?
  2.     echo -n [        DISCUZ_CODE_4        ]quot;Stopping fail2ban: "
    6 G8 m) T. u+ C& I# d
  3.     getpid! x7 F' T8 b; O: m6 y
  4.     RETVAL=$?- ^2 U+ h; F# }. |5 j
  5.     if [ -n "$pid" ]; then8 d# P# h1 E- _) N2 q7 Y
  6.        /sbin/service iptables save # saves banned ip's8 r- Y: d- d# H( }/ ?2 w& }) j  L
  7.         $FAIL2BAN stop > /dev/null6 b7 p5 R7 F6 D4 t* C
  8.     sleep 1
    : K5 p8 a8 X. o- P. |) K. k
  9.     getpid
    9 Q5 L- x) C9 v0 m/ H
  10.     if [ -z "$pid" ]; then
    ! B. W) |! `3 V, u7 @9 H
  11.         rm -f /var/lock/subsys/fail2ban
    1 K; V' j6 n' W' [7 e+ O8 r
  12.         echo_success
    5 m3 t. ?7 N: b$ j
  13.     else
    $ r6 k' T' r" B! t7 B
  14.         echo_failure
    3 z2 r, G7 {& J
  15.     fi
    2 C- U- H1 A+ J- y6 I; u6 ^; |5 v
  16.     else
    8 v" E" k9 n( ?. G; q* u
  17.         echo_failure) ^3 q  c# I# w- F; j: E: v* z
  18.     fi6 Z2 r) N+ y$ A- j
  19.     echo& v6 d; s+ A5 n9 V$ k9 E% p
  20.     return $RETVAL
複製代碼
3. 設定fail2ban開機順序8 t. f6 d, h) a$ M- U/ y) C

- m) ~5 j% c- Z7 x- |, X9 fchkconfig --add fail2ban, J$ d" ]" E$ k
7 ^( h3 J! \/ B% V+ j8 K
7 e) r4 F+ m3 Y7 d9 a$ X" r% `, _
p.s 7 o6 L8 g0 x6 H. N& \+ V  s! S
以上參考 :) k0 L/ t* f: L% E
http://blog.pulipuli.info/2011/07/centosfail2ban.html  
# ]; ~2 f5 H. _% thttp://www.vixual.net/blog/archives/2526 ]2 |! A6 O. [9 N
回復

使用道具 舉報

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

本版積分規則



中文酷站排行榜

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

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

GMT+8, 2026-2-4 12:30 , Processed in 0.069695 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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