过期域名预定抢注

 找回密碼
 免费注册

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

 火.. [複製鏈接]
發表於 2011-11-4 03:04:18 | 顯示全部樓層 |閱讀模式
俗語說:一朝被蛇咬十年怕草繩,一點也不假,本以為自己對LinuxVPS很懂,其實在老外面前還是小菜,"不怕偷,就怕惦記著",這不我的VPS頻頻遭到來自國外的弱口令掃瞄,一開始完全沒有防備,在他們嘗試了一萬多次之後,密碼被破了,恭喜,你得到了shell,瞬間把服務器的資料數據全部清空,這種情況真的很痛苦,所以我加強了防範,也許還有可能被破,但已經不是一件很容易的事情了。
7 R* k: i: s% O2 V    根據我發生的被黑事件,假設我做好了防黑安全,很可能就安然無恙,就算被黑,如果網站數據有備份,我拿回shell後還是可以恢復網站數據的,鑒於此兩點,我們做好兩大安全防範即可:) Y3 |9 C3 z# n3 m! Y
第一、LinuxVPS防黑安全常識1 ]* R: b6 }- `4 n
1、修改SSH端口。防止服務器掃破密碼,首先就必須改端口,盡量把端口數值改高,例如8135,打開文件/etc/ssh/sshd_config,找到其中的#Port 22,修改為Port 8135;並使用命令 service sshd restart 重啟SSH,以後登陸ssh或winscp都需要在IP或域名後面加端口:8135。6 P; N0 |0 K8 l" Y
2、禁止Root登陸。任意添加一個用戶名,例如luoping,命令:useradd luoping,再執行賦予密碼的命令:passwd 123456 ;緊接著修改/etc/ssh/sshd_config文件,第39行:#PermitRootLogin yes,去掉前面的#,並把yes改成no,然後,重啟SSH服務。以後,先使用vpsmm登陸,再su root即可得到ROOT管理權限。' g* H% ^* X: P
login as: luoping' j( r4 Q' g# E7 @
luoping@ip password:*****: L/ g/ [$ R" C" c! \
Last login: Tue Oct 22 14:39:58 2010 from 1.2.3.4: g! [3 Z3 Y7 e' A, r3 `
su root
6 Z2 @6 U1 p5 p  n% o9 CPassword:*********** #注這裡輸入ROOT的密碼
6 Q* ~" g$ X) F; `3、SSH密鑰登錄讓Linux VPS/服務器更安全! Q/ w  I. c+ v0 E
基於密鑰的安全驗證必須為用戶自己創建一對密鑰,並把共有的密鑰放在需要訪問的服務器上。當需要連接到SSH服務器上時,客戶端軟件就會向服務器發出請求,請求使用客戶端的密鑰進行安全驗證。服務器收到請求之後,先在該用戶的根目錄下尋找共有密鑰,然後把它和發送過來的公有密鑰進行比較。如果兩個密鑰一致,服務器就用公有的密鑰加密"質詢",並把它發送給客戶端軟件(putty,xshell等)。客戶端收到質詢之後,就可以用本地的私人密鑰解密再把它發送給服務器,這種方式是相當安全的。請參考:http://www.advertcn.com/thread-92786-1-1.html+ L' m) e9 P) h  ^5 N. X! k8 ?
第二、網站數據自動備份FTP% {  |" W; r7 j9 R  O" F/ u; A" w: L
linux系統的功能非常強大,特別是定時器的作用,加上強大的腳本功能,幾乎能為你做任何事情,那麼自動打包壓縮網站數據並傳送到網絡空間上去,也就成了網站數據備份的首選了,這裡提供兩種腳本:
4 M2 ^' J' w/ x一種是網站數據庫導出並壓縮上傳,參考小夜Blog LinuxVPS自動每日備份文件和數據庫上傳FTP空間http://www.advertcn.com/thread-92776-1-1.html" H% s& S& K* A% u) U: n2 }; R2 v
一種是壓縮網站數據表名下的數據,前者較為嚴謹,後者就簡單方便,我個人使用是後者,腳本代碼如下:
  1. #!/bin/bash
    2 a( z7 u7 ~* U9 g& j. z1 i
  2. #你要修改的地方從這裡開始
    6 j/ i  ~! _1 @7 @& f; C3 `- Q# N
  3. MAIL_TO=發送數據庫的郵箱地址
    1 A0 r! R( |0 t. h( l0 p% J7 r
  4. FTP_USER=FTP用戶名1 D2 ~& m& t4 C3 e  P
  5. FTP_PASS=FTP登陸密碼
    + d9 r' O4 Q6 t$ e: A) f
  6. FTP_IP=IP或域名
    3 V: [+ D& |+ J& |* X, E6 t5 g; ^: U
  7. FTP_backup=FTP上的目錄,如/backup,需要手工創建
    3 Z  S( Y$ r- B( m; z$ X: w# U
  8. WEB_DATA=/home/wwwroot' k( L2 b; D6 y; s
  9. mysql_DATA=/usr/local/mysql/var
    : E" I8 `- b7 b! ]0 m
  10. yuming_DATA=/usr/local/nginx/conf1 E/ O9 }) I* k7 i: n5 v4 X
  11. #你要修改的地方從這裡結束6 O% i3 C1 G+ D& A# z
  12. / a5 _3 ^! o1 \
  13. #定義數據庫的名字和舊數據庫的名字
    ) N/ Z+ P" j' O. F
  14. DataBakName=Data_$(date +"%Y%m%d").tar.gz
    0 Y# j4 j8 l* M% R. `
  15. WebBakName=Web_$(date +%Y%m%d).tar.gz
    & r& D4 `. z" g6 A
  16. yumingName=yuming_$(date +%Y%m%d).tar.gz
    : g1 Y$ c7 f' c. v4 M  i
  17. OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz
    9 T9 m* f$ `2 [: J( N5 |; o; R
  18. OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz
    2 C; m4 }" i$ P% R& k. q
  19. Oldyuming=yuming_$(date -d -5day +"%Y%m%d").tar.gz! l5 @# a+ j4 t* g! O5 ]& i

  20.   D. s: m6 `2 [: `+ d, w. U& C
  21. #刪除本地3天前的數據& j; d1 S5 _9 ]' d
  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
    5 l4 a' R3 j& g& K

  23. ; S/ F; }% d, X' \
  24. cd /home/backup5 S5 T( Q, o( E: Q
  25. 9 @& }. I$ z' t! z; ~
  26. #停止mysql0 p* E! r0 H" O' ~
  27. service mysql stop" T) i/ M) Y' D) Z4 u
  28. # I$ c- U3 y8 t' H& c
  29. #打包mysql目錄
    & ?% V! Q# F+ c  S0 @& n9 q# ^
  30. cd $mysql_DATA) W- j) K) J; Y; q" Y! @( A% t# D
  31. tar zcf /home/backup/$DataBakName ./*
    % j: Y& [2 }# E

  32. : L7 K6 n* n1 [3 `; A
  33. #運行mysql
    1 L5 n. v2 i: ?& v- `
  34. service mysql start( l1 N, r+ ]& b8 ~! ~. U, d
  35. - I' J3 z; _( g* m: K' P
  36. #壓縮網站數據
    ! x) Z& ~4 Z- @& ^" H$ Q, k
  37. cd $WEB_DATA
    . X" c7 i  `. {( [  |
  38. tar zcf /home/backup/$WebBakName ./*  `- [8 m# S/ T3 {) F

  39. + c! i1 B) ?3 H7 M3 h
  40. #壓縮域名信息! z. p% f+ j% ^; f% H
  41. cd $yuming_DATA0 `; B' j6 K9 p3 G
  42. tar zcf /home/backup/$yumingName ./*
    + }  S3 n! ?5 o" L" r: d: w
  43. 9 h5 ]( F( X9 p2 W
  44. #備份完發送郵件
    : X% Q% f8 x2 i: t& h3 M! T
  45. echo "主題:wancheng" | mutt -s "內容:wancheng" $MAIL_TO
    % q% h& z& N- l) f: r' }7 e5 N* t; u
  46. . p5 U' N5 g( }1 X% U
  47. #上傳到FTP空間,刪除FTP空間5天前的數據
    " z' [% P) e% a9 E
  48. cd /home/backup1 ]; ?. s; m& A1 |
  49. ftp -v -n $FTP_IP << END8 B3 w- u9 v* w. O: X: g
  50. user $FTP_USER $FTP_PASS1 f( c, G- N; f9 @, [* I) o
  51. type binary
    ! t% H9 q$ D& x7 W9 }6 B5 W
  52. cd $FTP_backup
    1 Q0 U, P1 c" v( }+ e: E
  53. delete $OldData- d; i9 a3 X9 x
  54. delete $OldWeb9 c" E) i( a1 K0 J2 ?! e
  55. delete $Oldyuming
    , @0 h# m  T& ]
  56. put $DataBakName
    ) e5 H; n9 u9 C" @  M
  57. put $WebBakName$ b4 `9 G7 e" G# O, j6 j
  58. put $yumingName5 N- K! ]* r: m
  59. bye
    8 g7 o; V; |, S, Q( O" o' c
  60. END
    6 j3 \5 S7 g! @2 z( U
複製代碼
腳本的使用方法,非常簡單,將腳本保存並命名AutoDataFTP.sh,將AutoDataFTP.sh上傳到root下,並賦予權限 chmod +x /root/AutoDataFTP.sh,在home下創建一個目錄名為backup,設置好任務啟動時間,每日一備份,00 06 * * * /root/AutoDataFTP.sh ;表示每日6點鐘,執行該腳本裡的所有動作命令。! g# J* c! Z9 Z  o
PS:如果發現數據已經被打包壓縮,但去遠程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
4 [3 R) F! P2 I4 X1 a2 F* n9 f7 Q' A5 R0 @8 D

! x7 ~1 W) n6 k' {4 f7 K  e, k6 L7 D    兄弟的廣告幣好像少了不少啊!
回復 给力 爆菊

使用道具 舉報

發表於 2012-3-3 13:01:20 | 顯示全部樓層
回復 4# woshigaozhen
" t# j; c; s: P# }$ \7 N* |  V) J# E9 C5 u3 P, l6 G
' _& q2 \% j9 W; @
    沒事拿去競標了,每月大約消耗100個吧,再加上買些收費帖子,消耗的也比較厲害
回復 给力 爆菊

使用道具 舉報

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

本版積分規則

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

點基

GMT+8, 2026-1-13 10:07

By DZ X3.5

小黑屋

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