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

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

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

[複製鏈接]
發表於 2016-4-9 12:53:54 | 顯示全部樓層 |閱讀模式
tid=34794& 本帖最後由 IT_man 於 2016-4-9 22:36 編輯
: V6 O0 g4 V1 u& [% p0 G0 f( i6 \# u, q7 I
我的環境:
4 v7 ]9 }: I& o6 wCentOS 6.7    這是RedHat系列的發行版本,與Fedora同系。(發行版本的資料會記錄在 /etc/redhat-release)
& G  Y/ s& i( s! E0 ^& `% j1 M1 q1.用yum安裝fail2ban
( e( ^* [( N  s& S) @& fyum -y install fail2ban   (yum安裝的歷程會記錄在 /var/log/yum 中。如有需要確認已安裝的套件,可以回頭查詢這個記錄檔。)" D) ^4 `% ^& y; C; U/ f+ W
6 v, b  `% R  ]2 V" p7 q
如果上述步驟不能安裝fail2ban,那麼yum會顯示找不到該套件的時候,你需要進入這個步驟。2 B+ c7 ^& ~8 W; e% B5 P% o7 V
( A/ D2 G& Q; m! z+ A
yum會掃描套件庫來決定要如何安裝套件。然而由於fail2ban並不在預設的套件庫中,所以我們必須手動加入含有fail2ban的套件庫atrpms。! s$ }: h: e1 W9 ~( E  ~
3 b1 \0 T" p( ?; k
請編輯 /etc/yum.repos.d/CentOS-Base.repo :
( N5 r# y5 C+ X# q; z( Y$ F
- g/ K$ b: D+ U# h# @vi /etc/yum.repos.d/CentOS-Base.repo( l9 ~% {) y/ ~$ h% G! X0 G2 M4 ?
在最後加入以下設定:. p% b1 L/ x% _7 a

  N1 F! w( R2 p( l! u- A7 O, j4 f[atrpms]& p( |" f/ ]' n2 s. P; X0 b) a( R8 p
name=Red Hat Enterprise Linux $releasever - $basearch - ATrpms& s) y9 D$ M* E) o2 P
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable8 J' a) r: l0 x% `/ s# x3 x& w
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
5 O+ ?% X3 W  egpgcheck=1' k% s# H) R9 E: k
enabled=1
( B3 k% A0 Q. E" C8 L
2 k) x. c, H8 f$ R7 i2. 設定fail2ban$ w0 p; l1 W% h4 o
主要有兩個設定檔:/etc/fail2ban/fail2ban.conf 跟 /etc/fail2ban/jail.conf
) o# G1 _  S' f$ o1 \vi /etc/fail2ban/fail2ban.conf$ q7 D9 Q; z' L1 x* I
修改 logtarget 的參數:% W% a' i7 H% L2 `, o
  1. #預設的參數
    ' L# @# O. d: h$ g% c" B$ b
  2. #logtarget = SYSLOG7 K' r3 n# p9 C  i2 b- P
  3. #調整後的參數
    ) @. m( J0 @4 E# y; g" I8 F
  4. logtarget = /var/log/fail2ban.log
複製代碼
vi /etc/fail2ban/jail.conf (fail2ban主要的設定檔)% n& D1 F% h1 C9 v& H. J
  1. #預設的參數% Q4 O9 M" `" R- m" Y3 L
  2. #backend = auto ! u$ }; \9 N* n2 @: J3 `* @. K1 }* u  F
  3. #調整後的參數
    ' J8 H+ w: F. N1 E: A( O
  4. backend = gamin
複製代碼
gamin是Linux的套件之一。如果缺少你可以用yum來安裝它
# ?1 l1 n  M& g6 M* [9 {( h2 M2 F
  1. [ssh-iptables]0 i7 J$ b& E- u7 z  }# B1 H
  2. #是否啟用
      T7 n! y& E. w& O, t- _9 c
  3. enabled  = true
    ' \8 Y; O+ m* Z% `5 C! O3 E) O' I! R
  4. #過濾名稱,使用預設的即可
    - U. h- `9 B9 O
  5. filter   = sshd3 x6 Z+ d' E' o' H: _5 r
  6. #iptables設定- ?3 R) i' J1 x1 ]$ \# ~9 p( q8 B
  7. action   = iptables[name=SSH, port=22022, protocol=tcp]
    3 l4 ~5 O" B5 \! q& \0 U" B' s4 \
  8.            #發生阻擋時的寄信設定
    3 \0 R" n0 w2 h( I
  9.            sendmail-whois[name=SSH, dest=xxxx@gmail.com, sender=root@xxxx.com]
    : o& o8 T% u. \  M0 ^) `* m
  10. " t$ _: H) l) t, S6 c+ W( w
  11. #需要掃描的記錄檔
    8 H/ r" e2 i3 q! K' l
  12. logpath  = /var/log/secure
    + D" @8 X! N  ]8 A
  13. #最高嘗試錯誤次數
      a3 z! u. q2 a
  14. maxretry = 28 S, L, f; ~& E- g  A3 X% M
  15. #阻擋的時間,-1表示永久阻擋
    : w, i# V! K$ b) g. g9 o- F) h/ N
  16. bantime  = -1
複製代碼
讓fail2ban重新啟動時不會重設阻擋IP規則
- [1 c' u' v1 b  U% x在預設的設定中,fail2ban每次重新啟動時都會遺忘被阻擋的IP設定。舉例來說,如果我的電腦因為登入失敗被fail2ban擋掉,那麼只要fail2ban重新啟動,那麼我的電腦又可以繼續嘗試登入server。, b& a* ~! i1 I: Y% V- {; {. E
如果要讓fail2ban重新啟動時,不會重設阻擋的IP規則,則修改 /etc/init.d/fail2ban 的內容。# p& t1 n* J, T. s- r
vi /etc/init.d/fail2ban2 \; B# }4 F4 J; O  ?5 n
找到start()的區塊,加入以下有#註解的設定:
0 C4 `5 Y7 y# d8 e2 y
  1. start() {8 N( d% @% A' T# a! ]( T, m. L+ |
  2.     echo -n [        DISCUZ_CODE_3        ]quot;Starting fail2ban: "
    ! W. f. D9 F5 Y! K) t( O) F
  3.     getpid' g* z* x) m' [6 W; F
  4.     if [ -z "$pid" ]; then
    % [5 v. j( J% e4 F1 i. B
  5.         rm -rf /var/run/fail2ban/fail2ban.sock # unclean in case of restart fal2ban
    ' V% V' V0 o' E% D2 X! y% Y
  6.         $FAIL2BAN -x start > /dev/null
    7 [, K6 T/ M( W+ `* w! l
  7.         RETVAL=$?* m5 K. B0 a  G1 P8 h+ t0 g1 `) T7 U
  8.     fi
    / p# F4 b) t3 o( O/ S
  9.     if [ $RETVAL -eq 0 ]; then
    : b$ w0 ~: E  q/ R8 g
  10.         touch /var/lock/subsys/fail2ban2 h, ]4 f+ J' I2 `
  11.         echo_success
    % x! t3 `. C) D7 j9 z! o2 Q
  12.         /sbin/service iptables restart # reloads previously banned ip's6 L' U/ p) P- D+ i/ A
  13.     else0 S: E, j0 K! Q3 k# [* |
  14.         echo_failure  h. k# \/ p' w0 J, t( D
  15.     fi& E8 m9 {8 F( [! V

  16. + V+ p5 }/ A5 }# J0 d1 l* N( s7 q5 @
  17.     echo
    & \$ l. D- n' \5 S* g' W4 z
  18.     return $RETVAL
    4 V) d& G- s8 M' r) T! D
  19. }
複製代碼
再找到stop()區塊,加入以下
有#註解的設定:
; j- e  y- O4 |1 v5 |1 `
  1. stop() {
    . d+ o2 W# q- M; _( m; a" E
  2.     echo -n [        DISCUZ_CODE_4        ]quot;Stopping fail2ban: "7 w3 E* _# K4 Y0 g* C! x
  3.     getpid1 }( y( Z) w+ u5 [
  4.     RETVAL=$?! |$ H5 U3 [5 r3 j) k" a, d: R1 d
  5.     if [ -n "$pid" ]; then
    0 A, b4 e! l" c0 y
  6.        /sbin/service iptables save # saves banned ip's
    : g! {0 K3 |" U2 o
  7.         $FAIL2BAN stop > /dev/null
      L- a1 S# s0 q4 p. l4 V
  8.     sleep 1
    # ~' e/ G  J8 H7 z4 q5 \" i
  9.     getpid
    5 z, p0 N- J6 b6 M4 Z" |) r
  10.     if [ -z "$pid" ]; then
    , M; }" `( \4 K+ w% q
  11.         rm -f /var/lock/subsys/fail2ban, p% Z4 Y3 X. G; Y3 Q  C
  12.         echo_success
    + p* \3 v3 W* l$ Y
  13.     else' L$ b+ K+ }5 Q8 u" a
  14.         echo_failure
    1 ^! e4 P7 R# m
  15.     fi8 w1 n8 M( F8 T
  16.     else  T: h7 G4 S6 o
  17.         echo_failure8 |7 |; W) A. m+ s* H2 @
  18.     fi
    - H+ E* Y0 T; K' B* K: s& M7 D/ ^/ Z
  19.     echo( b: y0 [3 X' R
  20.     return $RETVAL
複製代碼
3. 設定fail2ban開機順序' @. Y( s6 S: n7 G2 f
) @9 O6 G2 c- ~( g6 C& U
chkconfig --add fail2ban
0 O/ `: z- O2 t
+ L% v* G( B# h3 D

& i0 f7 j3 @; t! I- Qp.s / H. W6 l" d! B
以上參考 :" n) D: b# ?. Y
http://blog.pulipuli.info/2011/07/centosfail2ban.html  - `, ^* W; H* V. P3 g! W+ u9 T2 Q
http://www.vixual.net/blog/archives/252* l+ h( }( R8 b
回復

使用道具 舉報

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

本版積分規則



中文酷站排行榜

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

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

GMT+8, 2025-12-13 14:34 , Processed in 0.080916 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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