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

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

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

[複製鏈接]
發表於 2016-4-9 12:53:54 | 顯示全部樓層 |閱讀模式
tid=34794& 本帖最後由 IT_man 於 2016-4-9 22:36 編輯
5 X. u. Z; O8 h. A2 p# U+ W; {" t
. F( E8 B0 e1 s4 q% T! o我的環境:- Z2 x, P- S' l/ n0 j
CentOS 6.7    這是RedHat系列的發行版本,與Fedora同系。(發行版本的資料會記錄在 /etc/redhat-release)
- ^! B, a7 ~" s- j0 M4 q/ H1.用yum安裝fail2ban
! y7 a$ ?! r+ z1 @+ ^1 Tyum -y install fail2ban   (yum安裝的歷程會記錄在 /var/log/yum 中。如有需要確認已安裝的套件,可以回頭查詢這個記錄檔。)
; {1 v! c; l; E. p6 y2 J5 z8 v/ z+ a! T" m
如果上述步驟不能安裝fail2ban,那麼yum會顯示找不到該套件的時候,你需要進入這個步驟。
: v6 {3 J9 @2 s1 ~
2 {7 I; y  u+ s% l0 e8 c0 V  syum會掃描套件庫來決定要如何安裝套件。然而由於fail2ban並不在預設的套件庫中,所以我們必須手動加入含有fail2ban的套件庫atrpms。
+ Y) d& m, V- m/ x
+ _, `/ y& Y5 a) a請編輯 /etc/yum.repos.d/CentOS-Base.repo :: T. }3 G, ]1 m6 t  w

9 w+ Y$ S' _$ d" _vi /etc/yum.repos.d/CentOS-Base.repo
4 l( @( x6 s9 {) i在最後加入以下設定:
0 R$ O, a4 c$ P$ p& |2 r
: C6 d9 K& v. p& }( E[atrpms]
8 S5 @; q4 G  D" t" ^* jname=Red Hat Enterprise Linux $releasever - $basearch - ATrpms3 e7 H  ?1 s4 `/ B$ r0 @# w
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
5 ~2 `5 b: A% L- {" y. N% w, V8 M( f- Ggpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
* r- H. v. e* p' c& e2 O7 cgpgcheck=1" _$ q1 T* Q  _: [  |) W
enabled=1% E/ G1 i4 j* c+ t* [
' V' p1 J) g5 i5 D0 t5 A
2. 設定fail2ban& b; c/ m5 w3 }5 J  V
主要有兩個設定檔:/etc/fail2ban/fail2ban.conf 跟 /etc/fail2ban/jail.conf3 e$ M$ _' \; L& f& x
vi /etc/fail2ban/fail2ban.conf
& w. q0 f, V/ C% b$ r- l修改 logtarget 的參數:, P: Z* ~! e7 H& [
  1. #預設的參數
    1 m! ]% ^9 g- b0 `' t9 B9 p' C, v
  2. #logtarget = SYSLOG+ `5 ?! j+ z5 u
  3. #調整後的參數- G% l* }$ H$ o* q& c! t
  4. logtarget = /var/log/fail2ban.log
複製代碼
vi /etc/fail2ban/jail.conf (fail2ban主要的設定檔)
2 {. O* G+ w* o- h" i( G% X$ F% L
  1. #預設的參數
    1 U+ y9 C5 J3 w3 i- H; N9 G  ^* q
  2. #backend = auto , ?7 |2 Z' n! \& }
  3. #調整後的參數
    9 g% x. |, E0 ^' y8 H. m
  4. backend = gamin
複製代碼
gamin是Linux的套件之一。如果缺少你可以用yum來安裝它( U6 {+ y7 l$ B, m* F9 h
  1. [ssh-iptables]
    . G$ ]# K" I7 Y; Y
  2. #是否啟用: R& Q4 v. S* q+ ?+ F, a* b" x# {3 a
  3. enabled  = true9 [3 ?! V* j' F8 x6 [4 u  H
  4. #過濾名稱,使用預設的即可& Z7 l2 l2 x$ D# K
  5. filter   = sshd
    % a- |+ {% e1 v- c) G& ~1 D- r7 u
  6. #iptables設定7 F/ \( Y* M) ^
  7. action   = iptables[name=SSH, port=22022, protocol=tcp]
    8 t2 i. g) P- R+ d- Y4 O- b
  8.            #發生阻擋時的寄信設定
    5 q* A$ D, H* w' n" }
  9.            sendmail-whois[name=SSH, dest=xxxx@gmail.com, sender=root@xxxx.com]$ V: a$ G  Y  z1 V# E' k& e
  10. 5 I+ Z" ^& S, P3 L
  11. #需要掃描的記錄檔
    7 J2 G4 N; W% \1 b5 N! |
  12. logpath  = /var/log/secure
    , l- I9 b' a4 {- [
  13. #最高嘗試錯誤次數
    . S1 F) a) x+ R
  14. maxretry = 23 {* E3 N: G3 Y% l; O
  15. #阻擋的時間,-1表示永久阻擋" {' J; P" q, l6 K, z* ^: `& I
  16. bantime  = -1
複製代碼
讓fail2ban重新啟動時不會重設阻擋IP規則
- ]5 I" o# A5 E8 d) Q在預設的設定中,fail2ban每次重新啟動時都會遺忘被阻擋的IP設定。舉例來說,如果我的電腦因為登入失敗被fail2ban擋掉,那麼只要fail2ban重新啟動,那麼我的電腦又可以繼續嘗試登入server。
7 C  ]% r* \% i. _: Q7 @: T如果要讓fail2ban重新啟動時,不會重設阻擋的IP規則,則修改 /etc/init.d/fail2ban 的內容。# F+ r0 z5 M3 |
vi /etc/init.d/fail2ban/ J6 F' y/ Q2 m( m( g) T
找到start()的區塊,加入以下有#註解的設定:! g  A1 B! }' \
  1. start() {+ J! t9 v4 S# R
  2.     echo -n [        DISCUZ_CODE_3        ]quot;Starting fail2ban: "
    2 A$ a; v6 Q& w
  3.     getpid
    7 w( ?5 d0 W: Q' Y! L' ~. d
  4.     if [ -z "$pid" ]; then8 }* ~& }5 B) |/ m& c' I2 c, v
  5.         rm -rf /var/run/fail2ban/fail2ban.sock # unclean in case of restart fal2ban, n  q! b& e2 k4 l
  6.         $FAIL2BAN -x start > /dev/null' P5 |# Z8 U% O3 X
  7.         RETVAL=$?" ^( {" X8 i$ x: i$ C! s
  8.     fi
    1 M% \! K5 B- E* m5 `
  9.     if [ $RETVAL -eq 0 ]; then4 [! y/ K) F7 L8 `; N* `4 L
  10.         touch /var/lock/subsys/fail2ban
    8 x5 _0 q$ X+ K$ {$ q, r. X) v
  11.         echo_success% u' a/ J$ n6 o5 v
  12.         /sbin/service iptables restart # reloads previously banned ip's
    ( Z& ~* ?$ k. E( `. Q8 U9 O- [
  13.     else
    6 j: Z* r0 j0 ]3 _& Q
  14.         echo_failure$ a& P0 F9 a& {# g% s+ X
  15.     fi, d; o0 m) c/ A7 l8 D# @4 B

  16. 0 f7 P* j% Z! ]: Q
  17.     echo
    6 a; U& W; F4 F9 i6 h( r
  18.     return $RETVAL/ v( {4 K. Q" Y) m
  19. }
複製代碼
再找到stop()區塊,加入以下
有#註解的設定:
5 b8 B2 H: d9 H/ ~4 U, j  ?) H3 p5 H
  1. stop() {
    6 T" {3 K9 p; g$ r% Y( h
  2.     echo -n [        DISCUZ_CODE_4        ]quot;Stopping fail2ban: "
    8 i: j$ b, u, G5 A: Q; f, `6 D
  3.     getpid
    " H/ J4 j$ _( j: W; \
  4.     RETVAL=$?
    6 N% O3 N5 p  _
  5.     if [ -n "$pid" ]; then
    / p+ ?+ x" u' S5 Y  n4 ?- i
  6.        /sbin/service iptables save # saves banned ip's$ s6 R3 G% U* l) M3 ]; v5 N: @
  7.         $FAIL2BAN stop > /dev/null
    # _( Q5 _, D! T; |% q8 f
  8.     sleep 1  g$ h  w6 W' Q# l: y8 [/ [; d
  9.     getpid* q1 t& [( Q0 B# e" s
  10.     if [ -z "$pid" ]; then
    % l6 Q( q; V* k' T  a2 @) d0 t
  11.         rm -f /var/lock/subsys/fail2ban
    % m( }% O" R" h3 v' j: x
  12.         echo_success
    + H5 j7 l! h; t' j/ l9 K0 s" e
  13.     else
    & W0 |6 z% S. L, r
  14.         echo_failure0 I( b5 O$ O8 v# ^8 Y' b7 w- ^2 h
  15.     fi3 J7 [& C  i8 _
  16.     else- a6 _) m! K% |3 c  a- i& a
  17.         echo_failure
    3 v9 J9 b& |" E# [
  18.     fi5 w, _# u, t8 }4 Z% z
  19.     echo) `$ |; g* N, Q
  20.     return $RETVAL
複製代碼
3. 設定fail2ban開機順序8 g4 @# m" v! s- n) X

& T- n& l2 r( o% r0 E, K# x' y5 gchkconfig --add fail2ban
7 Z1 d4 q) S* K$ ?6 V% b2 C$ r: O0 B9 ]9 `

# k6 d. `& x$ j0 w+ |6 up.s
+ @0 ~% v  T2 q# n& M7 g' l以上參考 :1 Y% s5 ]* p3 B, a/ F& \
http://blog.pulipuli.info/2011/07/centosfail2ban.html  ) B2 ]: O* Y6 C2 h6 X5 d2 X
http://www.vixual.net/blog/archives/252
2 j# E7 C: u0 o& W
回復

使用道具 舉報

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

本版積分規則



中文酷站排行榜

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

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

GMT+8, 2025-12-6 19:19 , Processed in 0.078250 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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