|
俗语说:一朝被蛇咬十年怕草绳,一点也不假,本以为自己对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.advertcn.com/thread-92786-1-1.html
第二、网站数据自动备份FTP
linux系统的功能非常强大,特别是定时器的作用,加上强大的脚本功能,几乎能为你做任何事情,那么自动打包压缩网站数据并传送到网络空间上去,也就成了网站数据备份的首选了,这里提供两种脚本:
一种是网站数据库导出并压缩上传,参考小夜Blog LinuxVPS自动每日备份文件和数据库上传FTP空间http://www.advertcn.com/thread-92776-1-1.html,
一种是压缩网站数据表名下的数据,前者较为严谨,后者就简单方便,我个人使用是后者,脚本代码如下:- #!/bin/bash
- #你要修改的地方从这里开始
- MAIL_TO=发送数据库的邮箱地址
- FTP_USER=FTP用户名
- FTP_PASS=FTP登陆密码
- FTP_IP=IP或域名
- FTP_backup=FTP上的目录,如/backup,需要手工创建
- WEB_DATA=/home/wwwroot
- mysql_DATA=/usr/local/mysql/var
- yuming_DATA=/usr/local/nginx/conf
- #你要修改的地方从这里结束
- #定义数据库的名字和旧数据库的名字
- DataBakName=Data_$(date +"%Y%m%d").tar.gz
- WebBakName=Web_$(date +%Y%m%d).tar.gz
- yumingName=yuming_$(date +%Y%m%d).tar.gz
- OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz
- OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz
- Oldyuming=yuming_$(date -d -5day +"%Y%m%d").tar.gz
- #删除本地3天前的数据
- 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
- cd /home/backup
- #停止mysql
- service mysql stop
- #打包mysql目录
- cd $mysql_DATA
- tar zcf /home/backup/$DataBakName ./*
- #运行mysql
- service mysql start
- #压缩网站数据
- cd $WEB_DATA
- tar zcf /home/backup/$WebBakName ./*
- #压缩域名信息
- cd $yuming_DATA
- tar zcf /home/backup/$yumingName ./*
- #备份完发送邮件
- echo "主题:wancheng" | mutt -s "内容:wancheng" $MAIL_TO
- #上传到FTP空间,删除FTP空间5天前的数据
- cd /home/backup
- ftp -v -n $FTP_IP << END
- user $FTP_USER $FTP_PASS
- type binary
- cd $FTP_backup
- delete $OldData
- delete $OldWeb
- delete $Oldyuming
- put $DataBakName
- put $WebBakName
- put $yumingName
- bye
- 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 命令即可。 |
|