过期域名预定抢注

 找回密碼
 免费注册

LinuxVPS防黑安全常識之網站數據自動備份方法

 火.. [複製鏈接]
發表於 2011-11-4 03:04:18 | 顯示全部樓層 |閱讀模式
俗語說:一朝被蛇咬十年怕草繩,一點也不假,本以為自己對LinuxVPS很懂,其實在老外面前還是小菜,"不怕偷,就怕惦記著",這不我的VPS頻頻遭到來自國外的弱口令掃瞄,一開始完全沒有防備,在他們嘗試了一萬多次之後,密碼被破了,恭喜,你得到了shell,瞬間把服務器的資料數據全部清空,這種情況真的很痛苦,所以我加強了防範,也許還有可能被破,但已經不是一件很容易的事情了。
# @, ^( r6 N6 @( {$ ]) v& \    根據我發生的被黑事件,假設我做好了防黑安全,很可能就安然無恙,就算被黑,如果網站數據有備份,我拿回shell後還是可以恢復網站數據的,鑒於此兩點,我們做好兩大安全防範即可:
, Y* I7 D* V  o% e8 p第一、LinuxVPS防黑安全常識
& W" G% a6 L3 t1、修改SSH端口。防止服務器掃破密碼,首先就必須改端口,盡量把端口數值改高,例如8135,打開文件/etc/ssh/sshd_config,找到其中的#Port 22,修改為Port 8135;並使用命令 service sshd restart 重啟SSH,以後登陸ssh或winscp都需要在IP或域名後面加端口:8135。
* d/ I( l: s, z9 H8 W- j' ?8 Q) B2、禁止Root登陸。任意添加一個用戶名,例如luoping,命令:useradd luoping,再執行賦予密碼的命令:passwd 123456 ;緊接著修改/etc/ssh/sshd_config文件,第39行:#PermitRootLogin yes,去掉前面的#,並把yes改成no,然後,重啟SSH服務。以後,先使用vpsmm登陸,再su root即可得到ROOT管理權限。% G  S* L* Y: w! c) d. ~9 ]- ]8 f4 c
login as: luoping
8 r/ M$ [4 P, b8 i& M: p2 }  P8 Iluoping@ip password:*****
! s  p, e$ F& j7 U! \" g" sLast login: Tue Oct 22 14:39:58 2010 from 1.2.3.4
; f3 I; u1 o' g$ e. n( @7 {- lsu root
) \' f' r$ p. _& m4 vPassword:*********** #注這裡輸入ROOT的密碼
( U+ d; U$ g* `; s3、SSH密鑰登錄讓Linux VPS/服務器更安全
& ]" Z0 e# j. E. \0 G基於密鑰的安全驗證必須為用戶自己創建一對密鑰,並把共有的密鑰放在需要訪問的服務器上。當需要連接到SSH服務器上時,客戶端軟件就會向服務器發出請求,請求使用客戶端的密鑰進行安全驗證。服務器收到請求之後,先在該用戶的根目錄下尋找共有密鑰,然後把它和發送過來的公有密鑰進行比較。如果兩個密鑰一致,服務器就用公有的密鑰加密"質詢",並把它發送給客戶端軟件(putty,xshell等)。客戶端收到質詢之後,就可以用本地的私人密鑰解密再把它發送給服務器,這種方式是相當安全的。請參考:http://www.advertcn.com/thread-92786-1-1.html
! z1 l0 i+ X1 V9 s2 k第二、網站數據自動備份FTP; U3 _, t1 f- y3 B4 ?3 V7 A( j- E4 O
linux系統的功能非常強大,特別是定時器的作用,加上強大的腳本功能,幾乎能為你做任何事情,那麼自動打包壓縮網站數據並傳送到網絡空間上去,也就成了網站數據備份的首選了,這裡提供兩種腳本:
6 ~2 ^) f! _/ R6 Y一種是網站數據庫導出並壓縮上傳,參考小夜Blog LinuxVPS自動每日備份文件和數據庫上傳FTP空間http://www.advertcn.com/thread-92776-1-1.html$ x: r7 t. B) j- m
一種是壓縮網站數據表名下的數據,前者較為嚴謹,後者就簡單方便,我個人使用是後者,腳本代碼如下:
  1. #!/bin/bash
    / p+ s# x7 |0 k2 H5 [& Y1 Q
  2. #你要修改的地方從這裡開始" X, k/ X+ L7 l7 i' u+ L' \
  3. MAIL_TO=發送數據庫的郵箱地址
    # L6 b- j1 u8 s/ X! M* L
  4. FTP_USER=FTP用戶名- `6 |* \4 Q$ c+ O6 ^+ X1 U
  5. FTP_PASS=FTP登陸密碼$ G1 B2 R% f2 ^! Q) D% C5 k
  6. FTP_IP=IP或域名
    9 l9 l1 K: P6 v2 A5 s2 T8 Q; m
  7. FTP_backup=FTP上的目錄,如/backup,需要手工創建
    . N0 I& y! x5 _  ^0 v/ o
  8. WEB_DATA=/home/wwwroot
    + X! u& w2 J* L! N3 @/ N9 G
  9. mysql_DATA=/usr/local/mysql/var- a# \% G! c! j3 l$ z2 ^- W
  10. yuming_DATA=/usr/local/nginx/conf! i+ k, e- I  Z0 A9 n( g
  11. #你要修改的地方從這裡結束- g1 h7 l! [9 L1 I
  12. 1 x$ I  N: L( V4 ^
  13. #定義數據庫的名字和舊數據庫的名字1 G/ S0 V) B( Z- M0 h7 ?" v
  14. DataBakName=Data_$(date +"%Y%m%d").tar.gz
    9 i4 D+ ^* r1 Q8 t; \0 [
  15. WebBakName=Web_$(date +%Y%m%d).tar.gz
    4 O: h# ?* `1 s
  16. yumingName=yuming_$(date +%Y%m%d).tar.gz# S! c1 I$ h/ q' y: ^) x
  17. OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz
    + r3 y% F5 _/ P0 Y$ s
  18. OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz
    9 Q) G. E$ d0 t% j5 u2 {% j
  19. Oldyuming=yuming_$(date -d -5day +"%Y%m%d").tar.gz
    / @! c9 `3 r4 w1 _' ~& I' U% L  c
  20. * m4 l4 W9 h/ _
  21. #刪除本地3天前的數據& i2 e  w0 M5 `  S; l# q0 x' o! Q
  22. rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz /home/backup/Web_$(date -d -3day +"%Y%m%d").tar.gz /home/backup/yuming_$(date -d -3day +"%Y%m%d").tar.gz
    # Y, u7 Z  l1 c6 p

  23. * F* B0 A# I; T
  24. cd /home/backup* s# |0 B- _! w' W7 I& E
  25. ( X/ ]: e& E+ z3 y0 ?$ I
  26. #停止mysql
    . H' p0 w( r. n, N
  27. service mysql stop
    4 n5 n, C$ e" C' Z
  28. : _( t7 T% g9 S
  29. #打包mysql目錄% x. P$ V. F" V3 w1 e9 a! _
  30. cd $mysql_DATA
    & E* m! k& n2 D" U3 \" n3 i1 l
  31. tar zcf /home/backup/$DataBakName ./*
    * E0 {: Z9 i* q/ z* X+ a* B

  32. - A( y/ I) T. @3 e
  33. #運行mysql! l! \. A2 X& f2 r; c. |5 `5 ^
  34. service mysql start
    - z6 T  X& }/ x

  35. # U" v/ F" ]7 ?8 W& k2 ~% f
  36. #壓縮網站數據
    ; l1 R$ V% A1 d. u+ W5 @
  37. cd $WEB_DATA
    . }4 Q$ F0 X  Q6 j; T% D
  38. tar zcf /home/backup/$WebBakName ./*2 X3 V0 o9 w' l% p. |% n" m
  39. " k% p( {! `: p! O- i1 A
  40. #壓縮域名信息
    ( ]% q5 i6 G$ v3 v( l0 P, @
  41. cd $yuming_DATA; D; ~& f* o0 w+ C: s% X7 g
  42. tar zcf /home/backup/$yumingName ./*  b7 u7 L  d2 Z! m1 X
  43. - T! @$ _. y# d  `: D( h
  44. #備份完發送郵件
    : A0 C8 y& Y7 K4 I
  45. echo "主題:wancheng" | mutt -s "內容:wancheng" $MAIL_TO
    7 O1 `6 Z  P( r- a; G
  46. 5 k0 a, B" s8 N' ~$ I; l% J5 Q
  47. #上傳到FTP空間,刪除FTP空間5天前的數據
    % |4 Z  T, l6 L& Z- Q
  48. cd /home/backup/ U; j5 b) `1 @4 ]$ R* ?1 o0 [3 v" ]
  49. ftp -v -n $FTP_IP << END
    9 f1 h. |4 k# D
  50. user $FTP_USER $FTP_PASS7 h9 w1 C7 {; k5 c
  51. type binary! c/ B$ y+ e9 z5 S' X$ s1 n
  52. cd $FTP_backup  E. |6 i) U: [
  53. delete $OldData
    9 D" r# x2 I  z3 ^9 H
  54. delete $OldWeb
    5 a8 e; _" ~' s1 M' V1 o2 s
  55. delete $Oldyuming
    9 \# r7 y- q9 L$ ?
  56. put $DataBakName
    0 P% U* ?+ _! \: t9 F6 a
  57. put $WebBakName7 I! z; j" V0 p; T5 B" U. S
  58. put $yumingName. Z5 c* f7 n  `
  59. bye& |5 [3 ?' D$ P1 O/ b$ Y
  60. END4 x/ y) J7 f3 X( U# i2 v, @. v
複製代碼
腳本的使用方法,非常簡單,將腳本保存並命名AutoDataFTP.sh,將AutoDataFTP.sh上傳到root下,並賦予權限 chmod +x /root/AutoDataFTP.sh,在home下創建一個目錄名為backup,設置好任務啟動時間,每日一備份,00 06 * * * /root/AutoDataFTP.sh ;表示每日6點鐘,執行該腳本裡的所有動作命令。
1 w9 N% O1 B0 A7 @0 H/ APS:如果發現數據已經被打包壓縮,但去遠程FTP上沒有上傳數據,可能是沒有安裝好ftp,在xshell下執行命令 yum install lftp 命令即可。
發表於 2011-11-6 02:54:16 | 顯示全部樓層
收藏了,很有價值的文章
回復 给力 爆菊

使用道具 舉報

發表於 2011-11-6 22:09:21 | 顯示全部樓層
有時候真是防不勝防啊
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2012-3-2 23:15:22 | 顯示全部樓層
回復 3# hlzone
" Y9 f7 @/ j+ x- w  S" q$ q% u6 |' M$ x, g% \, Q
! i& J  z. H- h1 f; M- c- V  S
    兄弟的廣告幣好像少了不少啊!
回復 给力 爆菊

使用道具 舉報

發表於 2012-3-3 13:01:20 | 顯示全部樓層
回復 4# woshigaozhen * i( o- {+ X9 i4 e* B' x

% m9 V1 |6 z: z
, ]  d  c; `0 D0 J7 c    沒事拿去競標了,每月大約消耗100個吧,再加上買些收費帖子,消耗的也比較厲害
回復 给力 爆菊

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 免费注册

本版積分規則

4um點基跨境網編創業社區

GMT+8, 2024-11-24 01:01

By DZ X3.5

小黑屋

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