过期域名预定抢注

 找回密碼
 免费注册

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

 火.. [複製鏈接]
發表於 2011-11-4 03:04:18 | 顯示全部樓層 |閱讀模式
俗語說:一朝被蛇咬十年怕草繩,一點也不假,本以為自己對LinuxVPS很懂,其實在老外面前還是小菜,"不怕偷,就怕惦記著",這不我的VPS頻頻遭到來自國外的弱口令掃瞄,一開始完全沒有防備,在他們嘗試了一萬多次之後,密碼被破了,恭喜,你得到了shell,瞬間把服務器的資料數據全部清空,這種情況真的很痛苦,所以我加強了防範,也許還有可能被破,但已經不是一件很容易的事情了。
, s; m. s! i7 ^8 A    根據我發生的被黑事件,假設我做好了防黑安全,很可能就安然無恙,就算被黑,如果網站數據有備份,我拿回shell後還是可以恢復網站數據的,鑒於此兩點,我們做好兩大安全防範即可:# h% N/ U) H2 \+ P
第一、LinuxVPS防黑安全常識
; @, v' |0 o4 |0 k1、修改SSH端口。防止服務器掃破密碼,首先就必須改端口,盡量把端口數值改高,例如8135,打開文件/etc/ssh/sshd_config,找到其中的#Port 22,修改為Port 8135;並使用命令 service sshd restart 重啟SSH,以後登陸ssh或winscp都需要在IP或域名後面加端口:8135。9 }1 A) j! N9 {+ q
2、禁止Root登陸。任意添加一個用戶名,例如luoping,命令:useradd luoping,再執行賦予密碼的命令:passwd 123456 ;緊接著修改/etc/ssh/sshd_config文件,第39行:#PermitRootLogin yes,去掉前面的#,並把yes改成no,然後,重啟SSH服務。以後,先使用vpsmm登陸,再su root即可得到ROOT管理權限。
' c! |  c, b7 h  M: Ylogin as: luoping4 u# D8 f1 M4 j
luoping@ip password:*****+ _# D  r# H) H1 C# Z( |6 D
Last login: Tue Oct 22 14:39:58 2010 from 1.2.3.4
/ L! I( B+ `* ]su root
  {/ T: y+ [& S1 v4 O4 APassword:*********** #注這裡輸入ROOT的密碼
  e; n4 B% C& F4 Q3、SSH密鑰登錄讓Linux VPS/服務器更安全
1 ]8 d5 T; b( x3 p4 U基於密鑰的安全驗證必須為用戶自己創建一對密鑰,並把共有的密鑰放在需要訪問的服務器上。當需要連接到SSH服務器上時,客戶端軟件就會向服務器發出請求,請求使用客戶端的密鑰進行安全驗證。服務器收到請求之後,先在該用戶的根目錄下尋找共有密鑰,然後把它和發送過來的公有密鑰進行比較。如果兩個密鑰一致,服務器就用公有的密鑰加密"質詢",並把它發送給客戶端軟件(putty,xshell等)。客戶端收到質詢之後,就可以用本地的私人密鑰解密再把它發送給服務器,這種方式是相當安全的。請參考:http://www.advertcn.com/thread-92786-1-1.html
8 k# P# H" m: k2 }$ O第二、網站數據自動備份FTP
) O6 i3 k1 q6 o# ~linux系統的功能非常強大,特別是定時器的作用,加上強大的腳本功能,幾乎能為你做任何事情,那麼自動打包壓縮網站數據並傳送到網絡空間上去,也就成了網站數據備份的首選了,這裡提供兩種腳本:
! |. \* _/ L! ?8 G. N# R, {一種是網站數據庫導出並壓縮上傳,參考小夜Blog LinuxVPS自動每日備份文件和數據庫上傳FTP空間http://www.advertcn.com/thread-92776-1-1.html
9 J7 Y% f' D1 f一種是壓縮網站數據表名下的數據,前者較為嚴謹,後者就簡單方便,我個人使用是後者,腳本代碼如下:
  1. #!/bin/bash4 n8 b- [& P7 u2 x& I4 |
  2. #你要修改的地方從這裡開始0 M3 ?, E0 ]+ ^4 h- i2 Q4 S
  3. MAIL_TO=發送數據庫的郵箱地址
    5 X& E6 b. p  Q. O  l2 Y6 c
  4. FTP_USER=FTP用戶名
    2 O* Z: Z  f# ]
  5. FTP_PASS=FTP登陸密碼1 R1 _) M! H* M. b$ n+ B5 Q- c, c
  6. FTP_IP=IP或域名
    . |( H$ l4 C  u" U7 t; n* ?$ O
  7. FTP_backup=FTP上的目錄,如/backup,需要手工創建. I4 Z4 @1 A* z+ z: M
  8. WEB_DATA=/home/wwwroot
    , u$ h) \# C+ r  M$ \# O3 O  T
  9. mysql_DATA=/usr/local/mysql/var
    4 s$ B! E( d( V& U* W! J3 ^0 j
  10. yuming_DATA=/usr/local/nginx/conf/ {% g" `: M' i1 X. x
  11. #你要修改的地方從這裡結束
    & S5 d* x5 i/ ?0 g$ w

  12. 2 u; `, N/ e/ M: U# T: ?
  13. #定義數據庫的名字和舊數據庫的名字
    4 Q" }# V- o. ~$ W  t1 p# w/ c
  14. DataBakName=Data_$(date +"%Y%m%d").tar.gz% M8 x% [, x( D2 V
  15. WebBakName=Web_$(date +%Y%m%d).tar.gz
    6 d0 p  K6 c8 j
  16. yumingName=yuming_$(date +%Y%m%d).tar.gz
    % [( z2 B/ k' y: g
  17. OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz2 Z! a. N4 D7 A) Q, ]' D1 |
  18. OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz' @; X$ ^/ s9 R
  19. Oldyuming=yuming_$(date -d -5day +"%Y%m%d").tar.gz
    - E1 ~( @9 u! ~9 y  x# v4 B
  20. . r* X, ^0 j' l: B
  21. #刪除本地3天前的數據
    4 h2 g. d% y  d" e- z3 x
  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
    " V' x( Q3 S0 m! ?3 \8 i

  23. 1 {, |- z: T- Q. V/ `" @
  24. cd /home/backup- d9 V& x( }1 d

  25. ( _# d' w7 q. H
  26. #停止mysql5 Z- ^; z* h2 r9 i
  27. service mysql stop
    ; H" Y4 s9 a2 x* _9 z4 d4 e

  28. / g( ?- z5 J0 l4 S
  29. #打包mysql目錄
      S) Y. v2 w3 S; ~$ V) \) k" P
  30. cd $mysql_DATA
    ) s) _: {. o$ b! T% L2 _
  31. tar zcf /home/backup/$DataBakName ./*/ k/ }0 i8 c. \/ o' O* e

  32. 4 [7 m( y2 u7 m. f5 k2 ^* G
  33. #運行mysql& ^) X) Y6 o& f$ f
  34. service mysql start% O# r9 x: I0 \6 L; V' {

  35. 5 R5 a' F& g  D- L9 j& t& E
  36. #壓縮網站數據
    % `8 f) _  g; w  I9 B2 Q- C
  37. cd $WEB_DATA2 o3 @* r9 a$ E( N
  38. tar zcf /home/backup/$WebBakName ./*" x1 d( d1 R9 c- d. y( |( N3 U

  39. 0 m1 D3 K: q' Z, S# g
  40. #壓縮域名信息% |) i9 d& |5 l/ v0 G/ t3 L& ~
  41. cd $yuming_DATA
    * G9 C4 q8 w$ q. ~
  42. tar zcf /home/backup/$yumingName ./*& U% O+ L+ y! Q$ l

  43. 1 T1 z# l; G# V2 d- x
  44. #備份完發送郵件
    % g( w7 m  d) z1 _, R
  45. echo "主題:wancheng" | mutt -s "內容:wancheng" $MAIL_TO: |! y' Y$ M- {3 _, z8 n+ q

  46. ) ?4 E' u& L/ g" W
  47. #上傳到FTP空間,刪除FTP空間5天前的數據7 R/ r4 C7 _: x' l( n
  48. cd /home/backup
    " K+ U# P! R8 G: O2 M
  49. ftp -v -n $FTP_IP << END
      ?7 [7 b+ g* j% x# F
  50. user $FTP_USER $FTP_PASS$ I6 x! R6 T% V% `/ H! t/ S! A, n# f
  51. type binary' ]  @' X- |  E
  52. cd $FTP_backup0 \* h4 b! B8 r$ o
  53. delete $OldData; Q5 L) o/ A. n, L
  54. delete $OldWeb
    9 @9 [2 T$ b; H3 q. A
  55. delete $Oldyuming* v2 j9 q$ `/ o; H* v4 N, W
  56. put $DataBakName
    + K5 R$ d' }1 @7 @5 K9 G
  57. put $WebBakName/ b- K/ T6 b. G0 Z
  58. put $yumingName" ~: N0 Y' |: T
  59. bye4 ?4 F' \: d/ w( m* T" b; K$ V* ~
  60. END& T% c1 E* Y5 [$ @* u3 S
複製代碼
腳本的使用方法,非常簡單,將腳本保存並命名AutoDataFTP.sh,將AutoDataFTP.sh上傳到root下,並賦予權限 chmod +x /root/AutoDataFTP.sh,在home下創建一個目錄名為backup,設置好任務啟動時間,每日一備份,00 06 * * * /root/AutoDataFTP.sh ;表示每日6點鐘,執行該腳本裡的所有動作命令。
2 P4 s  T* ?) q7 S7 vPS:如果發現數據已經被打包壓縮,但去遠程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 * I. {3 }9 g6 S0 O# i- n

2 G2 n2 l: x6 W& ?
! b# Y5 [% \) d% i* \    兄弟的廣告幣好像少了不少啊!
回復 给力 爆菊

使用道具 舉報

發表於 2012-3-3 13:01:20 | 顯示全部樓層
回復 4# woshigaozhen
; A: i' G7 c1 Q7 s8 S; E
  C: n# T: k7 S
0 p8 l+ o+ F; X+ e    沒事拿去競標了,每月大約消耗100個吧,再加上買些收費帖子,消耗的也比較厲害
回復 给力 爆菊

使用道具 舉報

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

本版積分規則

过期高净值品牌域名预定抢注

點基

GMT+8, 2025-11-28 18:22

By DZ X3.5

小黑屋

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