LinuxVPS防黑安全常识之网站数据自动备份方法

  [复制链接]
查看: 1272   回复: 4
发表于 2011-11-4 03:04:18 | 显示全部楼层 |阅读模式
俗语说:一朝被蛇咬十年怕草绳,一点也不假,本以为自己对LinuxVPS很懂,其实在老外面前还是小菜,"不怕偷,就怕惦记着",这不我的VPS频频遭到来自国外的弱口令扫描,一开始完全没有防备,在他们尝试了一万多次之后,密码被破了,恭喜,你得到了shell,瞬间把服务器的资料数据全部清空,这种情况真的很痛苦,所以我加强了防范,也许还有可能被破,但已经不是一件很容易的事情了。
    根据我发生的被黑事件,假设我做好了防黑安全,很可能就安然无恙,就算被黑,如果网站数据有备份,我拿回shell后还是可以恢复网站数据的,鉴于此两点,我们做好两大安全防范即可:
第一、LinuxVPS防黑安全常识
1、修改SSH端口。防止服务器扫破密码,首先就必须改端口,尽量把端口数值改高,例如8135,打开文件/etc/ssh/sshd_config,找到其中的#Port 22,修改为Port 8135;并使用命令 service sshd restart 重启SSH,以后登陆ssh或winscp都需要在IP或域名后面加端口:8135。
2、禁止Root登陆。任意添加一个用户名,例如luoping,命令:useradd luoping,再执行赋予密码的命令:passwd 123456 ;紧接着修改/etc/ssh/sshd_config文件,第39行:#PermitRootLogin yes,去掉前面的#,并把yes改成no,然后,重启SSH服务。以后,先使用vpsmm登陆,再su root即可得到ROOT管理权限。
login as: luoping
luoping@ip password:*****
Last login: Tue Oct 22 14:39:58 2010 from 1.2.3.4
su root
Password:*********** #注这里输入ROOT的密码
3、SSH密钥登录让Linux VPS/服务器更安全
基于密钥的安全验证必须为用户自己创建一对密钥,并把共有的密钥放在需要访问的服务器上。当需要连接到SSH服务器上时,客户端软件就会向服务器发出请求,请求使用客户端的密钥进行安全验证。服务器收到请求之后,先在该用户的根目录下寻找共有密钥,然后把它和发送过来的公有密钥进行比较。如果两个密钥一致,服务器就用公有的密钥加密"质询",并把它发送给客户端软件(putty,xshell等)。客户端收到质询之后,就可以用本地的私人密钥解密再把它发送给服务器,这种方式是相当安全的。请参考:http://www.cnwebmasters.com/thread-92786-1-1.html
第二、网站数据自动备份FTP
linux系统的功能非常强大,特别是定时器的作用,加上强大的脚本功能,几乎能为你做任何事情,那么自动打包压缩网站数据并传送到网络空间上去,也就成了网站数据备份的首选了,这里提供两种脚本:
一种是网站数据库导出并压缩上传,参考小夜Blog LinuxVPS自动每日备份文件和数据库上传FTP空间http://www.cnwebmasters.com/thread-92776-1-1.html
一种是压缩网站数据表名下的数据,前者较为严谨,后者就简单方便,我个人使用是后者,脚本代码如下:
  1. #!/bin/bash
  2. #你要修改的地方从这里开始
  3. MAIL_TO=发送数据库的邮箱地址
  4. FTP_USER=FTP用户名
  5. FTP_PASS=FTP登陆密码
  6. FTP_IP=IP或域名
  7. FTP_backup=FTP上的目录,如/backup,需要手工创建
  8. WEB_DATA=/home/wwwroot
  9. mysql_DATA=/usr/local/mysql/var
  10. yuming_DATA=/usr/local/nginx/conf
  11. #你要修改的地方从这里结束

  12. #定义数据库的名字和旧数据库的名字
  13. DataBakName=Data_$(date +"%Y%m%d").tar.gz
  14. WebBakName=Web_$(date +%Y%m%d).tar.gz
  15. yumingName=yuming_$(date +%Y%m%d).tar.gz
  16. OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz
  17. OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz
  18. Oldyuming=yuming_$(date -d -5day +"%Y%m%d").tar.gz

  19. #删除本地3天前的数据
  20. 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

  21. cd /home/backup

  22. #停止mysql
  23. service mysql stop

  24. #打包mysql目录
  25. cd $mysql_DATA
  26. tar zcf /home/backup/$DataBakName ./*

  27. #运行mysql
  28. service mysql start

  29. #压缩网站数据
  30. cd $WEB_DATA
  31. tar zcf /home/backup/$WebBakName ./*

  32. #压缩域名信息
  33. cd $yuming_DATA
  34. tar zcf /home/backup/$yumingName ./*

  35. #备份完发送邮件
  36. echo "主题:wancheng" | mutt -s "内容:wancheng" $MAIL_TO

  37. #上传到FTP空间,删除FTP空间5天前的数据
  38. cd /home/backup
  39. ftp -v -n $FTP_IP << END
  40. user $FTP_USER $FTP_PASS
  41. type binary
  42. cd $FTP_backup
  43. delete $OldData
  44. delete $OldWeb
  45. delete $Oldyuming
  46. put $DataBakName
  47. put $WebBakName
  48. put $yumingName
  49. bye
  50. END
复制代码
脚本的使用方法,非常简单,将脚本保存并命名AutoDataFTP.sh,将AutoDataFTP.sh上传到root下,并赋予权限 chmod +x /root/AutoDataFTP.sh,在home下创建一个目录名为backup,设置好任务启动时间,每日一备份,00 06 * * * /root/AutoDataFTP.sh ;表示每日6点钟,执行该脚本里的所有动作命令。
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


    兄弟的广告币好像少了不少啊!
回复 支持 反对

使用道具 举报

发表于 2012-3-3 13:01:20 | 显示全部楼层
回复 4# woshigaozhen


    没事拿去竞标了,每月大约消耗100个吧,再加上买些收费帖子,消耗的也比较厉害
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则