过期域名预定抢注

 找回密碼
 免费注册

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

 火.. [複製鏈接]
發表於 2011-11-4 03:04:18 | 顯示全部樓層 |閱讀模式
俗語說:一朝被蛇咬十年怕草繩,一點也不假,本以為自己對LinuxVPS很懂,其實在老外面前還是小菜,"不怕偷,就怕惦記著",這不我的VPS頻頻遭到來自國外的弱口令掃瞄,一開始完全沒有防備,在他們嘗試了一萬多次之後,密碼被破了,恭喜,你得到了shell,瞬間把服務器的資料數據全部清空,這種情況真的很痛苦,所以我加強了防範,也許還有可能被破,但已經不是一件很容易的事情了。& S/ l0 v% [6 J
    根據我發生的被黑事件,假設我做好了防黑安全,很可能就安然無恙,就算被黑,如果網站數據有備份,我拿回shell後還是可以恢復網站數據的,鑒於此兩點,我們做好兩大安全防範即可:
6 Z  k  m  c* L. B/ t2 x第一、LinuxVPS防黑安全常識
( d! R. ?& l9 c' l4 P1、修改SSH端口。防止服務器掃破密碼,首先就必須改端口,盡量把端口數值改高,例如8135,打開文件/etc/ssh/sshd_config,找到其中的#Port 22,修改為Port 8135;並使用命令 service sshd restart 重啟SSH,以後登陸ssh或winscp都需要在IP或域名後面加端口:8135。
2 V6 a: V7 K- V! U2、禁止Root登陸。任意添加一個用戶名,例如luoping,命令:useradd luoping,再執行賦予密碼的命令:passwd 123456 ;緊接著修改/etc/ssh/sshd_config文件,第39行:#PermitRootLogin yes,去掉前面的#,並把yes改成no,然後,重啟SSH服務。以後,先使用vpsmm登陸,再su root即可得到ROOT管理權限。
+ Q/ s4 f  ^+ J5 B1 ]( W4 J& Plogin as: luoping
/ K5 `5 ]' ?: |luoping@ip password:*****8 k$ V5 v' g4 S2 _
Last login: Tue Oct 22 14:39:58 2010 from 1.2.3.4
* U  L5 ?5 C. Y3 Asu root
% P) \3 T0 D2 |Password:*********** #注這裡輸入ROOT的密碼4 n- s+ E$ ?  Q' X: G
3、SSH密鑰登錄讓Linux VPS/服務器更安全
2 S9 O! k/ U! U* H1 E1 u4 U基於密鑰的安全驗證必須為用戶自己創建一對密鑰,並把共有的密鑰放在需要訪問的服務器上。當需要連接到SSH服務器上時,客戶端軟件就會向服務器發出請求,請求使用客戶端的密鑰進行安全驗證。服務器收到請求之後,先在該用戶的根目錄下尋找共有密鑰,然後把它和發送過來的公有密鑰進行比較。如果兩個密鑰一致,服務器就用公有的密鑰加密"質詢",並把它發送給客戶端軟件(putty,xshell等)。客戶端收到質詢之後,就可以用本地的私人密鑰解密再把它發送給服務器,這種方式是相當安全的。請參考:http://www.advertcn.com/thread-92786-1-1.html1 M( y/ P# Y2 Y% T/ i
第二、網站數據自動備份FTP6 {/ r# \- i8 W/ |/ `4 u, i$ m
linux系統的功能非常強大,特別是定時器的作用,加上強大的腳本功能,幾乎能為你做任何事情,那麼自動打包壓縮網站數據並傳送到網絡空間上去,也就成了網站數據備份的首選了,這裡提供兩種腳本:* r* |! E( C* F' G/ x
一種是網站數據庫導出並壓縮上傳,參考小夜Blog LinuxVPS自動每日備份文件和數據庫上傳FTP空間http://www.advertcn.com/thread-92776-1-1.html
8 P: i, A8 l+ r; a7 G0 c' S一種是壓縮網站數據表名下的數據,前者較為嚴謹,後者就簡單方便,我個人使用是後者,腳本代碼如下:
  1. #!/bin/bash
    * Y( ?5 W6 J. J; `: O0 H5 C  Y0 M1 s
  2. #你要修改的地方從這裡開始! p; A6 V3 Z+ I
  3. MAIL_TO=發送數據庫的郵箱地址
    " Y( D* T# q0 e; @' H9 {, ^" P
  4. FTP_USER=FTP用戶名# G# _1 l3 I  N" {" H8 u9 b0 m
  5. FTP_PASS=FTP登陸密碼
    # U2 [* ~" {# I% m
  6. FTP_IP=IP或域名
    3 r5 |0 |) x, o) I# L* ]3 K
  7. FTP_backup=FTP上的目錄,如/backup,需要手工創建% i% ^5 N  P4 F$ a% N
  8. WEB_DATA=/home/wwwroot4 X! {" v" x% ?+ A
  9. mysql_DATA=/usr/local/mysql/var( ~: x/ j& M" J' f+ j
  10. yuming_DATA=/usr/local/nginx/conf
    & z2 u2 z# T9 S9 a
  11. #你要修改的地方從這裡結束0 z6 D5 u2 P' i
  12. * W, i" t; c; |; a
  13. #定義數據庫的名字和舊數據庫的名字: y/ }% C4 f9 `# F, j# ]& d! k7 K
  14. DataBakName=Data_$(date +"%Y%m%d").tar.gz! E9 E/ m4 f; G: g, T
  15. WebBakName=Web_$(date +%Y%m%d).tar.gz" H5 Y! U& g" n9 K  ]
  16. yumingName=yuming_$(date +%Y%m%d).tar.gz8 T/ f+ O5 N7 _2 \" A* g
  17. OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz( {3 d' l8 F0 J% n- a7 f
  18. OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz1 g1 o, H$ u( U" f7 ~1 k- F& z
  19. Oldyuming=yuming_$(date -d -5day +"%Y%m%d").tar.gz' ~) \4 |. d. i7 [( J
  20. , P" V# Y: O! p" j
  21. #刪除本地3天前的數據2 ]% a0 u- q/ ~. S' s
  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.gz1 {: J$ ^4 A) |/ V5 {

  23. + X0 ~4 l/ D8 O- x: ^! q" \/ T
  24. cd /home/backup/ t  p% V2 V( }8 E
  25. / @" U$ a7 X8 F
  26. #停止mysql0 U! n& q% {  Z
  27. service mysql stop9 H) T; g! F, Q( B4 K) p+ i
  28. / `" _) K5 ?; a0 \, V: \
  29. #打包mysql目錄
    0 g. n6 B- f; m0 G) {3 o0 {8 D
  30. cd $mysql_DATA) f# Y4 m$ k* i0 p
  31. tar zcf /home/backup/$DataBakName ./*
    9 X$ x! w+ c  Z- F* M

  32. # U6 ?7 P9 p% }. w9 I3 y/ B
  33. #運行mysql
    , S2 a8 R3 V' X) _
  34. service mysql start
    6 M) B! m, S* M# r: H
  35. 7 ^2 u( q: M! C9 A7 e
  36. #壓縮網站數據; ~" u8 b! s( ^$ ^: s
  37. cd $WEB_DATA5 n$ d# N1 R- I) u5 p! E2 q
  38. tar zcf /home/backup/$WebBakName ./*0 z9 ]1 E! I, Y) U) ^

  39. 5 P9 a# k/ K, Q! p4 t
  40. #壓縮域名信息  p: U" ^# r8 L9 F; |* j
  41. cd $yuming_DATA& J9 k$ N$ w& i3 ^& c
  42. tar zcf /home/backup/$yumingName ./*8 t- t4 X4 d7 I  n) H4 r4 J
  43. ! z2 P7 c) C/ C% ^
  44. #備份完發送郵件/ \( Y. ]* f' ~0 u  H9 S6 _7 r
  45. echo "主題:wancheng" | mutt -s "內容:wancheng" $MAIL_TO: ?# q. Z( t& q# w7 s' `
  46. ; P0 \* }3 w! O$ {4 B8 W, b: x. g
  47. #上傳到FTP空間,刪除FTP空間5天前的數據9 V; v9 t$ L3 I) e7 N
  48. cd /home/backup: z! R+ |$ V& v* G
  49. ftp -v -n $FTP_IP << END+ B8 E/ F' T4 u& b/ b) k2 u
  50. user $FTP_USER $FTP_PASS
    4 d; N4 {2 B# s* k
  51. type binary- ?! M  P% h& ]7 Q/ W5 c# M
  52. cd $FTP_backup& E5 [4 G* h5 |& P! ?; u
  53. delete $OldData/ T4 P5 {5 ]3 [% n# Y. `
  54. delete $OldWeb/ c" Z" c. N9 m, X* ?* z
  55. delete $Oldyuming/ i9 O) V' }( T8 K4 E  v. M
  56. put $DataBakName2 S! Z5 ^: M0 _. K# \; i  A" l! ]
  57. put $WebBakName
    & A# C: n: g4 X$ Y$ |/ A5 l; C
  58. put $yumingName
    9 a* p( h+ j2 C. l! G* \
  59. bye
    ( ~! F; E" D1 [" s5 k* b
  60. END
    . ~( Z# J" B3 g
複製代碼
腳本的使用方法,非常簡單,將腳本保存並命名AutoDataFTP.sh,將AutoDataFTP.sh上傳到root下,並賦予權限 chmod +x /root/AutoDataFTP.sh,在home下創建一個目錄名為backup,設置好任務啟動時間,每日一備份,00 06 * * * /root/AutoDataFTP.sh ;表示每日6點鐘,執行該腳本裡的所有動作命令。
, J9 i+ G: o( z: [. Z. |8 uPS:如果發現數據已經被打包壓縮,但去遠程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   l: [5 [. F7 p# a% j
  C% K" K' u8 i; a1 [$ v

2 w+ R  g: Q, z0 N, `- }    兄弟的廣告幣好像少了不少啊!
回復 给力 爆菊

使用道具 舉報

發表於 2012-3-3 13:01:20 | 顯示全部樓層
回復 4# woshigaozhen 7 P8 r' s+ N# q" S1 p

: }3 _8 Y7 C  W& W6 P( K5 F$ _4 T& x% j7 q/ |8 H, F! {
    沒事拿去競標了,每月大約消耗100個吧,再加上買些收費帖子,消耗的也比較厲害
回復 给力 爆菊

使用道具 舉報

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

本版積分規則

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

點基跨境 數位編輯創業論壇

GMT+8, 2025-2-17 18:57

By DZ X3.5

小黑屋

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