<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>VPS侦探 &#187; VPS安全</title> <atom:link href="http://www.vpser.net/category/security/feed" rel="self" type="application/rss+xml" /><link>http://www.vpser.net</link> <description>致力于VPS主机推荐、VPS管理维护、VPS优惠信息及VPS相关的信息共享平台</description> <lastBuildDate>Fri, 30 Jul 2010 01:58:28 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9.2</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Linux VPS下简单解决CC攻击[转]</title><link>http://www.vpser.net/security/linux-vps-cc-attack.html</link> <comments>http://www.vpser.net/security/linux-vps-cc-attack.html#comments</comments> <pubDate>Tue, 08 Jun 2010 06:50:40 +0000</pubDate> <dc:creator>VPSer</dc:creator> <category><![CDATA[VPS安全]]></category> <category><![CDATA[CC攻击]]></category> <category><![CDATA[DiaHosting]]></category> <category><![CDATA[Linux]]></category><guid
isPermaLink="false">http://www.vpser.net/?p=1271</guid> <description><![CDATA[本文由DiaHosting的某位牛牛所写，DiaHosting那边的已经测试通过，VPS侦探暂未测试。
一，准备工作
1，登录进VPS控制面板，准备好随时重启VPS。
2，关闭Web Server先，过高的负载会导致后面的操作很难进行，甚至直接无法登录SSH。
3，以防万一，把设置的Web Server系统启动后自动运行去掉。
（如果已经无法登录进系统，并且重启后负载过高导致刚刚开机就已经无法登录，可联系管理员在母机上封掉VPS的IP或80端口，在母机上用虚拟控制台登录 进系统，然后进行2&#38;3的操作，之后解封）
二，找出攻击者IP
1，在网站根目录建立文件ip.php，写入下面的内容。
&#60;?php
$real_ip = getenv('HTTP_X_FORWARDED_FOR');
if(isset($real_ip)){
shell_exec("echo $real_ip &#62;&#62; real_ip.txt");
shell_exec("echo $_SERVER['REMOTE_ADDR'] &#62;&#62; proxy.txt");
}else{
shell_exec("echo $_SERVER['REMOTE_ADDR'] &#62;&#62; ips.txt");
}
echo '服务器受到攻击，正在收集攻击源，请在5分钟后访问本站，5分钟内多次访问本站有可能会被当作攻击源封掉IP。谢谢合作！';
?&#62;
2，设置伪静态，将网站下的所有访问都rewrite到ip.php。
Nginx规则：
rewrite (.*) /ip.php;
Lighttpd规则：
url.rewrite = (
"^/(.+)/?$" =&#62; "/ip.php"
)
3，启动Web Server开始收集IP
进行完1和2的设置后，启动Web Server，开始记录IP信息。
收集时间建议为3到5分钟，然后再次关闭Web Server。
real_ip.txt，这个文件中保存的IP有80%以上都相同的，这个IP就是攻击者实施攻击的平台的IP。
proxy.txt，这个文件中保存的是攻击者调用的代理服务器的IP，需要封掉。
ips.txt，这里记录的是未表现出代理服务器特征的IP，根据访问次数判断是否为攻击源。
三，对上一段的补充
如果VPS上启用了WEB日志，可以查看日志文件的增长速度来判断是哪个站点被攻击。
如果没有启用日志，并且站点数量很少，临时启用日志也很方便 。
如果没有启用日志，并且站点数量过多，可以使用临时的Web  Server配置文件，不绑定虚拟主机，设置一个默认的站点。然后在ip.php里加入下面一行
shell_exec(“echo $_SERVER['HTTP_HOST'] &#62;&#62;  domain.txt”);
domain.txt里将保存被访问过的域名，被CC攻击的站点将在里面占绝大多数。
四，开始封堵IP
建立文件ban.php
&#60;?
$threshold = 10;
$ips = array_count_values(file('ips.txt'));
$ban_num = 0;
foreach($ips as $ip=&#62;$num){
if($num &#62; $threshold){
$ip = trim($ip);
$cmd = "iptables -I INPUT -p tcp --dport 80 -s $ip -j [...]]]></description> <content:encoded><![CDATA[<p>本文由<a
href="http://www.vpser.net/go/diahosting" target="_blank">DiaHosting</a>的某位牛牛所写，<a
href="../go/diahosting" target="_blank">DiaHosting</a>那边的已经测试通过，<a
href="http://www.vpser.net/" target="_blank">VPS侦探</a>暂未测试。</p><p><strong><span
style="font-size: small;">一，准备工作</span></strong><br
/> 1，登录进VPS控制面板，准备好随时重启VPS。<br
/> 2，关闭Web Server先，过高的负载会导致后面的操作很难进行，甚至直接无法登录SSH。<br
/> 3，以防万一，把设置的Web Server系统启动后自动运行去掉。<br
/> （如果已经无法登录进系统，并且重启后负载过高导致刚刚开机就已经无法登录，可联系管理员在母机上封掉VPS的IP或80端口，在母机上用虚拟控制台登录 进系统，然后进行2&amp;3的操作，之后解封）</p><p><strong><span
style="font-size: small;">二，找出攻击者IP<span
id="more-1271"></span></span></strong></p><p>1，在网站根目录建立文件ip.php，写入下面的内容。</p><blockquote><p><code
id="code0">&lt;?php<br
/> $real_ip = getenv('HTTP_X_FORWARDED_FOR');<br
/> if(isset($real_ip)){<br
/> shell_exec("echo $real_ip &gt;&gt; real_ip.txt");<br
/> shell_exec("echo $_SERVER['REMOTE_ADDR'] &gt;&gt; proxy.txt");<br
/> }else{<br
/> shell_exec("echo $_SERVER['REMOTE_ADDR'] &gt;&gt; ips.txt");<br
/> }</code></p><p>echo '服务器受到攻击，正在收集攻击源，请在5分钟后访问本站，5分钟内多次访问本站有可能会被当作攻击源封掉IP。谢谢合作！';<br
/> ?&gt;</p></blockquote><p>2，设置伪静态，将网站下的所有访问都rewrite到ip.php。<br
/> Nginx规则：</p><blockquote><p><code
id="code1">rewrite (.*) /ip.php;</code></p></blockquote><p>Lighttpd规则：</p><blockquote><p><code
id="code2">url.rewrite = (<br
/> "^/(.+)/?$" =&gt; "/ip.php"<br
/> )</code></p></blockquote><p>3，启动Web Server开始收集IP<br
/> 进行完1和2的设置后，启动Web Server，开始记录IP信息。<br
/> 收集时间建议为3到5分钟，然后再次关闭Web Server。<br
/> real_ip.txt，这个文件中保存的IP有80%以上都相同的，这个IP就是攻击者实施攻击的平台的IP。<br
/> proxy.txt，这个文件中保存的是攻击者调用的代理服务器的IP，需要封掉。<br
/> ips.txt，这里记录的是未表现出代理服务器特征的IP，根据访问次数判断是否为攻击源。</p><p><strong><span
style="font-size: small;">三，对上一段的补充</span></strong><br
/> 如果VPS上启用了WEB日志，可以查看日志文件的增长速度来判断是哪个站点被攻击。<br
/> 如果没有启用日志，并且站点数量很少，临时启用日志也很方便 。<br
/> 如果没有启用日志，并且站点数量过多，可以使用临时的Web  Server配置文件，不绑定虚拟主机，设置一个默认的站点。然后在ip.php里加入下面一行</p><blockquote><p><code
id="code3">shell_exec(“echo $_SERVER['HTTP_HOST'] &gt;&gt;  domain.txt”);</code></p></blockquote><p>domain.txt里将保存被访问过的域名，被CC攻击的站点将在里面占绝大多数。</p><p><strong><span
style="font-size: small;">四，开始封堵IP</span></strong><br
/> 建立文件ban.php</p><blockquote><p><code
id="code4">&lt;?<br
/> $threshold = 10;<br
/> $ips = array_count_values(file('ips.txt'));<br
/> $ban_num = 0;<br
/> foreach($ips as $ip=&gt;$num){<br
/> if($num &gt; $threshold){<br
/> $ip = trim($ip);<br
/> $cmd = "iptables -I INPUT -p tcp --dport 80 -s $ip -j  DROP";<br
/> shell_exec($cmd);<br
/> echo "$ip baned!\n";<br
/> $ban_num ++;<br
/> }<br
/> }</p><p>$proxy_arr = array_unique(file('proxy.txt'));<br
/> foreach($proxy_arr as $proxy){<br
/> proxy = trim($proxy);<br
/> $cmd = "iptables -I INPUT -p tcp --dport 80 -s $proxy -j DROP";<br
/> shell_exec($cmd);<br
/> echo "$proxy baned!\n";<br
/> $ban_num ++;<br
/> }</p><p>echo "total: $ban_num ips\n";<br
/> ?&gt;</code></p></blockquote><p>用下面的命令执行脚本（确保php命令在PATH中）</p><blockquote><p><code
id="code5">php ban.php</code></p></blockquote><p>这个脚本依赖于第二段中ips.txt里保存的结果，当其中记录的IP访问次数超过10次，就被当作攻击源给屏蔽掉。如果是代理服务器，则不判断次数直接 封掉。<br
/> 封完IP之后，把所有的网站设置恢复正常，站点可以继续正常运行了。</p><p><strong><span
style="font-size: small;">五，一些细节</span></strong><br
/> 为保持对操作过程的描述尽量简洁，没有在上面的内容中加入过多的解释，留在这段统一讲述。<br
/> 1，关于“代理服务器”的一些本质<br
/> 两个与TCP&amp;HTTP协议相关的值，REMOTE_ADDR和HTTP_X_FORWARDED_FOR。<br
/> （1）REMOTE_ADDR总是取离Web服务器最接近的一台主机的IP，如果没有使用代理，这个值就是访问者本身的IP，如果使用了代理，这个值就是 代理服务器的IP，如果通过多个代理服务器进行的连接，这个值就是到达Web服务器前最后一台代理服务器的IP。<br
/> REMOTE_ADDR是由TCP/IP层决定的，不能修改不能伪造。<br
/> （2）HTTP_X_FORWARDED_FOR，因为这个值是属于HTTP部分，而不是TCP/IP，所以这个值不管是什么，都不影响数据的传输。事实 上，一般情况下，如果是访问者直接访问Web服务器，这个值为空；通过透明代理的时候，这个值会被代理服务器设置为访问者的IP；通过匿名代理连接时，这 个值可能为代理服务器的IP也可能是空的也有可能是随机的。<br
/> HTTP_X_FORWARDED_FOR可以被任意修改。大多数代理服务器都是透明代理，也就是说，会把这个值设置为最原始访问者的IP。</p><p>2，关于解决CC攻击的层面问题<br
/> 按处理效率从高到低排列。<br
/> （由于本文是针对VPS服务器所写，而VPS简单来说就是服务器的低端替代品，内存和CPU等资源普遍偏低，当然是处理效率越高越好。）<br
/> （1）网络传输层。也就是本文所用的iptables，这个工具本身是工作于系统内核，在建立网络连接时直接把攻击者的连接给否了。在这一层面上将攻击源 处理掉后，消耗掉的资源几乎可以忽略不计。<br
/> （2）Web Server层，大多数Web Server都可以设置禁止访问的IP。在这一层上解决的意义和上面的差不多，但是效率要差些。<br
/> （3）脚本层，从脚本程序上制定适合于本身的策略过滤掉攻击源。网络上有很多流传的在这一层面的解决方案，但是不太适用于VPS，而且设置难度可能要增加 几倍或者几十倍。</p><p>3，为什么不是从日志收集IP？<br
/> 主要是考虑两点，一是大多数VPS使用者都因为硬盘空间过小，经常清除日志很麻烦，而直接禁止了日志。<br
/> 二是如果从日志收集IP，脚本复杂程度要高很多，而且可能要根据情况做些调整，考虑到将要读到本文的人大多数都未必掌握更多的技术，本文的目的就是按部就 班的依本文进行操作，即可解决问题。</p><p><strong><span
style="font-size: small;">六，其他</span></strong><br
/> 本文版权归<a
href="http://www.vpser.net/go/diahosting" target="_blank">DiaHosting</a>所 有，转载请保留超链接。</p> ]]></content:encoded> <wfw:commentRss>http://www.vpser.net/security/linux-vps-cc-attack.html/feed</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Linux VPS上自动备份文件并发送到Gmail (适用G级数据的备份)(转)</title><link>http://www.vpser.net/security/vps-auto-bakup-send-by-gmail.html</link> <comments>http://www.vpser.net/security/vps-auto-bakup-send-by-gmail.html#comments</comments> <pubDate>Fri, 23 Apr 2010 01:16:00 +0000</pubDate> <dc:creator>VPSer</dc:creator> <category><![CDATA[VPS安全]]></category> <category><![CDATA[Gmail]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[VPS]]></category> <category><![CDATA[备份]]></category> <category><![CDATA[自动备份]]></category><guid
isPermaLink="false">http://www.vpser.net/?p=1091</guid> <description><![CDATA[一，安装所需程序
yum install -y mutt vixie-cron
二，设置mutt发信参数
$ vim ~/.muttrc
写入下面的内容
set envelope_from=yes
set from=bak@diavps.com
set realname="DiaBak"
set use_from=yes
然后设置要接收邮件的Gmail，把bak@diavps.com加入白名单。
三，设置脚本
注意这几个目录
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
这些目录下的文件可以分别每小时，每天，每周，每月自动执行一次。
如果是把脚本程序放置在上面的目录里，最好把权限设置为0700。
设置更复杂的执行条件可以使用crontab -e命令。详情请百度。
以每天执行为例
$ vim /etc/cron.daily/diabsk.sh
写入下面的内容
#!/bin/bash
# SETTING
TOEMAIL="bak@diavps.com";
COMMENT='blog database backup'
DIR='wordpress'
# END SETTING
TMP='/tmp/diabak/'${DIR}
ATTTMP='/tmp/diabakatt/'${DIR}
rm -rf $TMP
mkdir -p $TMP
cd $TMP
# Put files what you want to backup to $TMP
# Don't change anything below
YYYYMMDD=`date +%Y%m%d`
SUBJECT='DiaBak_of_'${DIR}'_'${YYYYMMDD};
rm -rf $ATTTMP
mkdir -p $ATTTMP
cd $ATTTMP
tar zcPf backup.tar.gz $TMP
rm -rf $TMP
split -b 20m -a 3 -d backup.tar.gz ${SUBJECT}.part
rm [...]]]></description> <content:encoded><![CDATA[<p><strong><span
style="font-size: medium;">一，安装所需程序</span></strong><br
/> yum install -y mutt vixie-cron</p><p><strong><span
style="font-size: medium;">二，设置mutt发信参数</span></strong><br
/> $ vim ~/.muttrc<br
/> 写入下面的内容<br
/> set envelope_from=yes<br
/> set from=bak@<a
href="http://www.vpser.net/go/diahosting" target="_blank">diavps</a>.com<br
/> set realname="DiaBak"<br
/> set use_from=yes<br
/> 然后设置要接收邮件的Gmail，把bak@<a
href="http://www.vpser.net/go/diahosting" target="_blank">diavps</a>.com加入白名单。<span
id="more-1091"></span></p><p><strong><span
style="font-size: medium;">三，设置脚本</span></strong><br
/> 注意这几个目录<br
/> /etc/cron.hourly<br
/> /etc/cron.daily<br
/> /etc/cron.weekly<br
/> /etc/cron.monthly<br
/> 这些目录下的文件可以分别每小时，每天，每周，每月自动执行一次。<br
/> 如果是把脚本程序放置在上面的目录里，最好把权限设置为0700。<br
/> 设置更复杂的执行条件可以使用crontab -e命令。详情请百度。</p><p>以每天执行为例<br
/> $ vim /etc/cron.daily/diabsk.sh<br
/> 写入下面的内容<br
/> #!/bin/bash</p><p># SETTING<br
/> <span
style="color: red;">TOEMAIL="bak@diavps.com";<br
/> COMMENT='blog database backup'<br
/> DIR='wordpress'</span><br
/> # END SETTING</p><p>TMP='/tmp/diabak/'${DIR}<br
/> ATTTMP='/tmp/diabakatt/'${DIR}</p><p>rm -rf $TMP<br
/> mkdir -p $TMP<br
/> cd $TMP</p><p><span
style="color: red;"># Put files what you want to backup to $TMP</span></p><p># Don't change anything below<br
/> YYYYMMDD=`date +%Y%m%d`<br
/> SUBJECT='DiaBak_of_'${DIR}'_'${YYYYMMDD};</p><p>rm -rf $ATTTMP<br
/> mkdir -p $ATTTMP<br
/> cd $ATTTMP</p><p>tar zcPf backup.tar.gz $TMP<br
/> rm -rf $TMP<br
/> split -b 20m -a 3 -d backup.tar.gz ${SUBJECT}.part<br
/> rm -f backup.tar.gz</p><p>for file in *<br
/> do<br
/> echo $COMMENT | mutt -a $file -s $SUBJECT $TOEMAIL<br
/> sleep 30s<br
/> done</p><p>rm -rf $ATTTMP</p><p>需要更改的内容已经加红<br
/> TOEMAIL为接收邮件的邮箱地址。<br
/> TOEMAIL为注释邮件，以邮件正文发送。<br
/> DIR为临时目录名，建议仅使用英文和数字。<br
/> # Put files what you want to backup to  $TMP，这一行下面的命令根据需要自己补充，比如备份数据库可以把SQL文件导出到$TMP目录，备份文件可以复制文件到$TMP目录。</p><p><strong><span
style="font-size: medium;">四，导出数据库的命令。</span></strong><br
/> 1.备份单个数据库<br
/> mysqldump --user=user --password=password --lock-all-tables dbname &gt;  backup.sql<br
/> 2.备份多个数据库<br
/> mysqldump --user=user --password=password --lock-all-tables --databases  dbname1 dbname2 &gt; backup.sql<br
/> 3.备份所有数据库<br
/> mysqldump --user=user --password=password --lock-all-tables  --all-databases &gt; backup.sql</p><p>--lock-all-tables选项可以在备份期间锁定数据库防止出现变化，进而导致多个有关系的表不同步，比如A表需要引用B表，备份完A表后，B 表发生了变化，之后才备份了B表，这样数据库就乱了。<br
/> 备份上百M的数据库也只用了几秒而已，所以这个选项对网站运行影响不大。</p><p><strong><span
style="font-size: medium;">五，重新组合备份的文件</span></strong><br
/> Linux下<br
/> $ cat DiaBak* &gt; bak.tar.gz<br
/> windows下<br
/> copy  DiaBak_of_testfile_20100421.part001/b+DiaBak_of_testfile_20100421.part002/b  bak.tar.gz<br
/> 注意分卷后面会有三位数字，cat命令会按这些数字的顺序重新组合文件，所以数字不能乱。<br
/> copy命令同理，注意数字顺序。</p><p><strong><span
style="font-size: medium;">六，其他</span></strong><br
/> 测试了一个600多M的文件，以20M的大小分成了31个包，通过脚本发送，用时十几分钟，期间网速保持在5Mbps到10Mbps之间，本机还有足够的 带宽，这个应该是GMAIL的上限了。<br
/> 有些邮件需要过一个多小时才在Gmail显示出来。31个包全部收到。<br
/> 如果哪位发现有比Gmail更适合备份的邮箱，期待与大家分享。</p><p>转载自：http://www.hostloc.com/thread-15597-1-1.html</p> ]]></content:encoded> <wfw:commentRss>http://www.vpser.net/security/vps-auto-bakup-send-by-gmail.html/feed</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>DDoS deflate - Linux下防御/减轻DDOS攻击</title><link>http://www.vpser.net/security/ddos-deflate.html</link> <comments>http://www.vpser.net/security/ddos-deflate.html#comments</comments> <pubDate>Mon, 19 Apr 2010 01:07:30 +0000</pubDate> <dc:creator>VPSer</dc:creator> <category><![CDATA[VPS安全]]></category> <category><![CDATA[APF]]></category> <category><![CDATA[DDoS]]></category> <category><![CDATA[DDoS deflate]]></category> <category><![CDATA[deflate]]></category> <category><![CDATA[iptables]]></category><guid
isPermaLink="false">http://www.vpser.net/?p=1074</guid> <description><![CDATA[前言
互联网如同现实社会一样充满钩心斗角，网站被DDOS也成为站长最头疼的事。在没有硬防的情况下，寻找软件代替是最直接的方法，比如用iptables，但是iptables不能在自动屏蔽，只能手动屏蔽。今天要说的就是一款能够自动屏蔽DDOS攻击者IP的软件：DDoS deflate。
DDoS  deflate介绍
DDoS  deflate是一款免费的用来防御和减轻DDoS攻击的脚本。它通过netstat监测跟踪创建大量网络连接的IP地址，在检测到某个结点超过预设的限 制时，该程序会通过APF或IPTABLES禁止或阻挡这些IP.
DDoS  deflate官方网站：http://deflate.medialayer.com/
如何确认是否受到DDOS攻击？
执行：
netstat -ntu &#124; awk '{print $5}' &#124; cut -d: -f1 &#124; sort &#124; uniq -c &#124; sort -n
执行后，将会显示服务器上所有的每个IP多少个连接数。
以下是我自己用VPS测试的结果：
li88-99:~# netstat -ntu &#124; awk '{print $5}' &#124; cut -d: -f1 &#124; sort &#124; uniq -c &#124; sort -n
1 114.226.9.132
1 174.129.237.157
1 58.60.118.142
1 Address
1 servers)
2 118.26.131.78
3 123.125.1.202
3 220.248.43.119
4 117.36.231.253
4 119.162.46.124
6 219.140.232.128
8 [...]]]></description> <content:encoded><![CDATA[<p><strong>前言</strong></p><p>互联网如同现实社会一样充满钩心斗角，网站被DDOS也成为站长最头疼的事。在没有硬防的情况下，寻找软件代替是最直接的方法，比如用iptables，但是iptables不能在自动屏蔽，只能手动屏蔽。今天要说的就是一款能够自动屏蔽DDOS攻击者IP的软件：<a
href="http://www.vpser.net/security/ddos-deflate.html" target="_blank">DDoS deflate</a>。</p><p><strong>DDoS  deflate介绍</strong></p><p><a
href="http://www.vpser.net/security/ddos-deflate.html" target="_blank">DDoS  deflate</a>是一款免费的用来防御和减轻DDoS攻击的脚本。它通过netstat监测跟踪创建大量网络连接的IP地址，在检测到某个结点超过预设的限 制时，该程序会通过APF或IPTABLES禁止或阻挡这些IP.</p><p>DDoS  deflate官方网站：<a
href="http://deflate.medialayer.com/" target="_blank">http://deflate.medialayer.com/</a></p><p><strong>如何确认是否受到DDOS攻击？<span
id="more-1074"></span></strong></p><p>执行：</p><pre>netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n</pre><p>执行后，将会显示服务器上所有的每个IP多少个连接数。</p><p>以下是我自己用VPS测试的结果：</p><pre>li88-99:~# netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
1 114.226.9.132
1 174.129.237.157
1 58.60.118.142
1 Address
1 servers)
2 118.26.131.78
3 123.125.1.202
3 220.248.43.119
4 117.36.231.253
4 119.162.46.124
6 219.140.232.128
8 220.181.61.31    <span style="color: #ffffff;">VPS侦探 http://www.vpser.net/</span>
2311 67.215.242.196</pre><p>每个IP几个、十几个或几十个连接数都还算比较正常，如果像上面成百上千肯定就不正常了。</p><p><strong>1、安装DDoS  deflate</strong></p><pre>wget http://www.inetbase.com/scripts/ddos/install.sh   //下载DDoS  deflate
chmod 0700 install.sh    //添加权限
./install.sh             //执行</pre><p><strong>2、配置DDoS  deflate</strong></p><p>下面是DDoS  deflate的默认配置位于/usr/local/ddos/ddos.conf ，内容如下：</p><pre>##### Paths of the script and other files
PROGDIR="/usr/local/ddos"
PROG="/usr/local/ddos/ddos.sh"
IGNORE_IP_LIST="/usr/local/ddos/ignore.ip.list"  //IP地址白名单
CRON="/etc/cron.d/ddos.cron"    //定时执行程序
APF="/etc/apf/apf"
IPT="/sbin/iptables"

##### frequency in minutes for running the script
##### Caution: Every time this setting is changed, run the script with --cron
#####          option so that the new frequency takes effect
FREQ=1   //检查时间间隔，默认1分钟

##### How many connections define a bad IP? Indicate that below.
NO_OF_CONNECTIONS=150     //最大连接数，超过这个数IP就会被屏蔽，一般默认即可

##### APF_BAN=1 (Make sure your APF version is atleast 0.96)
##### APF_BAN=0 (Uses iptables for banning ips instead of APF)
APF_BAN=1        //使用APF还是iptables。推荐使用iptables,将APF_BAN的值改为0即可。

##### KILL=0 (Bad IPs are'nt banned, good for interactive execution of script)
##### KILL=1 (Recommended setting)
KILL=1   //是否屏蔽IP，默认即可

##### An email is sent to the following address when an IP is banned.
##### Blank would suppress sending of mails
EMAIL_TO="root"   //当IP被屏蔽时给指定邮箱发送邮件，推荐使用，换成自己的邮箱即可

##### Number of seconds the banned ip should remain in blacklist.
BAN_PERIOD=600    //禁用IP时间，默认600秒，可根据情况调整</pre><p>用户可根据给默认配置文件加上的注释提示内容，修改配置文件。</p><p>喜欢折腾的可以用<a
href="http://www.vpser.net/opt/webserver-test.html" target="_blank">Web压力测试软件</a>测试一下效果，相信<a
href="http://www.vpser.net/security/ddos-deflate.html" target="_blank">DDoS deflate</a>还是能给你的VPS或服务器抵御一部分DDOS攻击，给你的网站更多的保护。</p> ]]></content:encoded> <wfw:commentRss>http://www.vpser.net/security/ddos-deflate.html/feed</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>Linux VPS上查找后门程序</title><link>http://www.vpser.net/security/linux-vps-find-backdoor.html</link> <comments>http://www.vpser.net/security/linux-vps-find-backdoor.html#comments</comments> <pubDate>Sat, 06 Feb 2010 01:07:31 +0000</pubDate> <dc:creator>VPSer</dc:creator> <category><![CDATA[VPS安全]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[VPS]]></category> <category><![CDATA[后门]]></category> <category><![CDATA[安全]]></category><guid
isPermaLink="false">http://www.vpser.net/?p=907</guid> <description><![CDATA[在初中和高中时对网络安全这方面很感兴趣，接触过的网络安全知识也都是些Windows下的，Linux下的接触比较少，但是很多VPSer们也想更多的了解Linux下面的安全设置，所以先在网上找些给大家恶补一下，我有时间也多恶补一下，多写些教程。
每个进程都会有一个PID，而每一个PID都会在/proc目录下有一个相应的目录，这是Linux（当前内核2.6）系统的实现。
一般后门程序，在ps等进程查看工具里找不到，因为这些常用工具甚至系统库基本上已经被动过手脚（网上流传着大量的rootkit。假如是内核级的木马，那么该方法就无效了）。
因为修改系统内核相对复杂（假如内核被修改过，或者是内核级的木马，就更难发现了），所以在/proc下，基本上还都可以找到木马的痕迹。
思路：
在/proc中存在的进程ID，在 ps 中查看不到（被隐藏），必有问题。
for i in /proc/[0-9]* ; do
讨论：
检查系统(Linux)是不是被黑，其复杂程度主要取决于入侵者“扫尾工作”是否做得充足。对于一次做足功课的入侵来说，要想剔除干净，将是一件分精密、痛苦的事情，通常这种情况，需要用专业的第三方的工具（有开源的，比如tripwire，比如aide）来做这件事情。
而专业的工具，部署、使用相对比较麻烦，也并非所有的管理员都能熟练使用。
实际上Linux系统本身已经提供了一套“校验”机制，在检查系统上的程序没有被修改。比如rpm包管理系统提供的 -V 功能：
rpm -Va
即可校验系统上所有的包，输出与安装时被修改过的文件及相关信息。但是rpm系统也可能被破坏了，比如被修改过。
转载自：http://www.bsdmap.com/2010/02/02/proc-usage/
]]></description> <content:encoded><![CDATA[<p>在初中和高中时对网络安全这方面很感兴趣，接触过的网络安全知识也都是些Windows下的，Linux下的接触比较少，但是很多VPSer们也想更多的了解Linux下面的安全设置，所以先在网上找些给大家恶补一下，我有时间也多恶补一下，多写些教程。</p><p>每个进程都会有一个PID，而每一个PID都会在/proc目录下有一个相应的目录，这是Linux（当前内核2.6）系统的实现。</p><p>一般后门程序，在ps等进程查看工具里找不到，因为这些常用工具甚至系统库基本上已经被动过手脚（网上流传着大量的rootkit。假如是内核级的木马，那么该方法就无效了）。</p><p>因为修改系统内核相对复杂（假如内核被修改过，或者是内核级的木马，就更难发现了），所以在/proc下，基本上还都可以找到木马的痕迹。</p><p>思路：<br
/> 在/proc中存在的进程ID，在 ps 中查看不到（被隐藏），必有问题。</p><p>for i in /proc/[0-9]* ; do<span
id="more-907"></span></p><p>讨论：</p><p>检查系统(Linux)是不是被黑，其复杂程度主要取决于入侵者“扫尾工作”是否做得充足。对于一次做足功课的入侵来说，要想剔除干净，将是一件分精密、痛苦的事情，通常这种情况，需要用专业的第三方的工具（有开源的，比如<a
href="http://sourceforge.net/projects/tripwire/" target="_blank">tripwire</a>，比如<a
title="Advanced Intrusion Detection Environment" href="http://sourceforge.net/projects/aide/" target="_blank">aide</a>）来做这件事情。</p><p>而专业的工具，部署、使用相对比较麻烦，也并非所有的管理员都能熟练使用。</p><p>实际上Linux系统本身已经提供了一套“校验”机制，在检查系统上的程序没有被修改。比如rpm包管理系统提供的 -V 功能：</p><p>rpm -Va</p><p>即可校验系统上所有的包，输出与安装时被修改过的文件及相关信息。但是rpm系统也可能被破坏了，比如被修改过。</p><p>转载自：<a
href="http://www.bsdmap.com/2010/02/02/proc-usage/">http://www.bsdmap.com/2010/02/02/proc-usage/</a></p> ]]></content:encoded> <wfw:commentRss>http://www.vpser.net/security/linux-vps-find-backdoor.html/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Linux VPS上DenyHosts阻止SSH暴力攻击</title><link>http://www.vpser.net/security/denyhosts.html</link> <comments>http://www.vpser.net/security/denyhosts.html#comments</comments> <pubDate>Thu, 23 Jul 2009 08:11:41 +0000</pubDate> <dc:creator>VPSer</dc:creator> <category><![CDATA[VPS安全]]></category> <category><![CDATA[DenyHosts]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[SSH]]></category> <category><![CDATA[VPS]]></category> <category><![CDATA[暴力攻击]]></category> <category><![CDATA[阻止SSH]]></category><guid
isPermaLink="false">http://www.vpser.net/?p=416</guid> <description><![CDATA[现在的互联网非常不安全，很多人没事就拿一些扫描机扫描ssh端口，然后试图连接ssh端口进行暴力破解（穷举扫描），所以建议vps主机的空间,尽量设置复杂的ssh登录密码，虽然在前段时间曾经介绍过Linux VPS禁止某个IP访问使用hosts.deny禁止某些IP访问，但是功能方面欠缺，如：不能自动屏蔽，那么有什么更好的办法吗，就可以使用denyhosts这款软件了，它会分析/var/log/secure（redhat，Fedora Core）等日志文件，当发现同一IP在进行多次SSH密码尝试时就会记录IP到/etc/hosts.deny文件，从而达到自动屏蔽该IP的目的。
DenyHosts官方网站为：http://denyhosts.sourceforge.net/
1、下载DenyHosts 并解压
# wget http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz
# tar zxvf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6
2、安装、配置和启动
# python setup.py install
默认是安装到/usr/share/denyhosts/目录的,进入相应的目录修改配置文件
# cd /usr/share/denyhosts/
# cp denyhosts.cfg-dist denyhosts.cfg
# cp daemon-control-dist daemon-control
默认的设置已经可以适合centos系统环境，你们可以使用vi命令查看一下denyhosts.cfg和daemon-control，里面有详细的解释
接着使用下面命令启动denyhosts程序
# chown root daemon-control
# chmod 700 daemon-control
# ./daemon-control start
如果要使DenyHosts每次重起后自动启动还需做如下设置：
# cd /etc/init.d
# ln -s /usr/share/denyhosts/daemon-control denyhosts
# chkconfig --add denyhosts
# chkconfig --level 2345 denyhosts on
或者执行下面的命令，将会修改/etc/rc.local文件：
# echo "/usr/share/denyhosts/daemon-control start" &#62;&#62; /etc/rc.local
DenyHosts配置文件denyhosts.cfg说明：
SECURE_LOG = /var/log/secure
 
#sshd日志文件，它是根据这个文件来判断的，不同的操作系统，文件名稍有不同。
 
HOSTS_DENY = /etc/hosts.deny
 
#控制用户登陆的文件
 
PURGE_DENY = 5m
 
#过多久后清除已经禁止的
 
BLOCK_SERVICE  = [...]]]></description> <content:encoded><![CDATA[<p>现在的互联网非常不安全，很多人没事就拿一些扫描机扫描ssh端口，然后试图连接ssh端口进行暴力破解（穷举扫描），所以建议vps主机的空间,尽量设置复杂的ssh登录密码，虽然在前段时间曾经介绍过<a
title="到《Linux VPS禁止某个IP访问》的永久链接" rel="bookmark" href="http://www.vpser.net/security/linux-vps-deny-ip.html">Linux VPS禁止某个IP访问</a>使用<span>hosts</span>.<span>deny禁止某些IP访问</span>，但是功能方面欠缺，如：不能自动屏蔽，那么有什么更好的办法吗，就可以使用denyhosts这款软件了，它会分析/var/log/secure（redhat，Fedora Core）等日志文件，当发现同一IP在进行多次SSH密码尝试时就会记录IP到/etc/hosts.deny文件，从而达到自动屏蔽该IP的目的。</p><p>DenyHosts官方网站为：<a
href="http://denyhosts.sourceforge.net/" target="_blank">http://denyhosts.sourceforge.net/</a></p><p>1、下载DenyHosts 并解压</p><p># wget <a
href="http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz">http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz</a><br
/> # tar zxvf DenyHosts-2.6.tar.gz<br
/> # cd DenyHosts-2.6</p><p>2、安装、配置和启动</p><p># python setup.py install<br
/> 默认是安装到/usr/share/denyhosts/目录的,进入相应的目录修改配置文件<span
id="more-416"></span></p><p># cd /usr/share/denyhosts/<br
/> # cp denyhosts.cfg-dist denyhosts.cfg<br
/> # cp daemon-control-dist daemon-control</p><p>默认的设置已经可以适合centos系统环境，你们可以使用vi命令查看一下denyhosts.cfg和daemon-control，里面有详细的解释<br
/> 接着使用下面命令启动denyhosts程序<br
/> # chown root daemon-control<br
/> # chmod 700 daemon-control<br
/> # ./daemon-control start</p><p>如果要使DenyHosts每次重起后自动启动还需做如下设置：<br
/> # cd /etc/init.d<br
/> # ln -s /usr/share/denyhosts/daemon-control denyhosts<br
/> # chkconfig --add denyhosts<br
/> # chkconfig --level 2345 denyhosts on<br
/> 或者执行下面的命令，将会修改/etc/rc.local文件：<br
/> # echo "/usr/share/denyhosts/daemon-control start" &gt;&gt; /etc/rc.local</p><p>DenyHosts配置文件denyhosts.cfg说明：</p><p>SECURE_LOG = /var/log/secure<br
/>  <br
/> #sshd日志文件，它是根据这个文件来判断的，不同的操作系统，文件名稍有不同。<br
/>  <br
/> HOSTS_DENY = /etc/hosts.deny<br
/>  <br
/> #控制用户登陆的文件<br
/>  <br
/> PURGE_DENY = 5m<br
/>  <br
/> #过多久后清除已经禁止的<br
/>  <br
/> BLOCK_SERVICE  = sshd<br
/>  <br
/> #禁止的服务名<br
/>  <br
/> DENY_THRESHOLD_INVALID = 1<br
/>  <br
/> #允许无效用户失败的次数<br
/>  <br
/> DENY_THRESHOLD_VALID = 10<br
/>  <br
/> #允许普通用户登陆失败的次数<br
/>  <br
/> DENY_THRESHOLD_ROOT = 5<br
/>  <br
/> #允许root登陆失败的次数<br
/>  <br
/> HOSTNAME_LOOKUP=NO<br
/>  <br
/> #是否做域名反解<br
/>  <br
/> DAEMON_LOG = /var/log/denyhosts</p><p>更多的说明请查看自带的README文本文件，好了以后维护VPS就会省一些心了，但是各位VPSer们注意了安全都是相对的哦，没有绝对安全，请定期或不定期的检查你的VPS主机，而且要定时备份你的数据哦。</p> ]]></content:encoded> <wfw:commentRss>http://www.vpser.net/security/denyhosts.html/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Linux VPS禁止某个IP访问</title><link>http://www.vpser.net/security/linux-vps-deny-ip.html</link> <comments>http://www.vpser.net/security/linux-vps-deny-ip.html#comments</comments> <pubDate>Mon, 06 Jul 2009 05:08:16 +0000</pubDate> <dc:creator>VPSer</dc:creator> <category><![CDATA[VPS安全]]></category> <category><![CDATA[GFW]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[VPS]]></category> <category><![CDATA[禁止IP访问]]></category><guid
isPermaLink="false">http://www.vpser.net/?p=383</guid> <description><![CDATA[今天在查看VPS侦探的VPS的SSH登录记录吓了一跳，居然与几个IP连续登录SSH字典猜root密码，现公布他们的名单：
62.75.214.93  gera125.server4you.de  德国/德国鬼子
203.215.252.189  香港特别行政区/无语。。。。
219.143.200.169  北京市电信 /在党中央还做坏事。。。。
60.12.193.134  浙江省湖州市网通  /
c953dc2c.virtua.com.br  201.83.220.44 巴西 /就你最多。。。。
其中几个还搭建了Nginx的环境，都没做站。
/etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的，通过他可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。
如果请求访问的主机名或IP不包含在/etc/hosts.allow中，那么tcpd进程就检查/etc/hosts.deny。看请求访问的主机名或IP有没有包含在hosts.deny文件中。如果包含，那么访问就被拒绝；如果既不包含在/etc/hosts.allow中，又不包含在/etc/hosts.deny中，那么此访问也被允许。
&#60;daemon list&#62;:&#60;client list&#62;[:&#60;option&#62;:&#60;option&#62;:...]
daemon list     服务进程名列表，如telnet的服务进程名为in.telnetd
client list     访问控制的客户端列表，可以写域名、主机名或网段，如.trubolinux.com.cn或者192.168.1.
option          可选选项，这里可以是某些命令，也可以是指定的日志文件
例子：hosts.allow
in.telnetd:.vpser.net
vsftpd:192.168.0.
sshd:192.168.0.0/255.255.255.0
/etc/hosts.allow里第一行vpser.net表示，只有vpser.net这个域里的主机允许访问TELNET服务，注意vpser.net前面的那个点(.)。
/etc/hosts.allow里第二行表示，只有192.168.0这个网段的用户允许访问FTP服务，注意0后面的点(.)。
/etc/hosts.allow里第三行表示，只有192.168.0这个网段的用户允许访问SSH服务，注意这里不能写为192.168.0.0/24。虽然在CISCO路由器种这两中写法是等同的。
在/etc/hosts.deny里加上：
sshd:62.75.214.93
sshd:203.215.252.189
sshd:219.143.200.169
sshd:60.12.193.134
sshd:201.83.220.44
sshd:c953dc2c.virtua.com.br
sshd:gera125.server4you.de
把他们访问SSH的全部给拒绝了，Linux的GFW也很强。
]]></description> <content:encoded><![CDATA[<p>今天在查看<a
href="http://www.vpser.net" target="_blank">VPS侦探</a>的<a
href="http://www.diavps.cn/client/aff.php?aff=002" target="_blank">VPS</a>的SSH登录记录吓了一跳，居然与几个IP连续登录SSH字典猜root密码，现公布他们的名单：</p><p>62.75.214.93  gera125.server4you.de  德国/德国鬼子</p><p>203.215.252.189  香港特别行政区/无语。。。。</p><p>219.143.200.169  北京市电信 /在党中央还做坏事。。。。</p><p>60.12.193.134  浙江省湖州市网通  /</p><p>c953dc2c.virtua.com.br  201.83.220.44 巴西 /就你最多。。。。</p><p>其中几个还搭建了Nginx的环境，都没做站。</p><p>/etc/<span>hosts</span>.allow和/etc/<span>hosts</span>.<span>deny</span>两个文件是控制远程访问设置的，通过他可以允许或者拒绝某个ip或者ip段的客户访问<span>linux</span>的某项服务。<span
id="more-383"></span></p><p>如果请求访问的主机名或IP不包含在/etc/hosts.allow中，那么tcpd进程就检查/etc/hosts.deny。看请求访问的主机名或IP有没有包含在hosts.deny文件中。如果包含，那么访问就被拒绝；如果既不包含在/etc/hosts.allow中，又不包含在/etc/hosts.deny中，那么此访问也被允许。</p><p>&lt;daemon list&gt;:&lt;client list&gt;[:&lt;option&gt;:&lt;option&gt;:...]</p><p>daemon list     服务进程名列表，如telnet的服务进程名为in.telnetd<br
/> client list     访问控制的客户端列表，可以写域名、主机名或网段，如.trubolinux.com.cn或者192.168.1.<br
/> option          可选选项，这里可以是某些命令，也可以是指定的日志文件</p><p>例子：hosts.allow<br
/> in.telnetd:.vpser.net<br
/> vsftpd:192.168.0.<br
/> sshd:192.168.0.0/255.255.255.0</p><p>/etc/hosts.allow里第一行vpser.net表示，只有vpser.net这个域里的主机允许访问TELNET服务，注意vpser.net前面的那个点(.)。<br
/> /etc/hosts.allow里第二行表示，只有192.168.0这个网段的用户允许访问FTP服务，注意0后面的点(.)。<br
/> /etc/hosts.allow里第三行表示，只有192.168.0这个网段的用户允许访问SSH服务，注意这里不能写为192.168.0.0/24。虽然在CISCO路由器种这两中写法是等同的。</p><p>在/etc/hosts.deny里加上：</p><p>sshd:62.75.214.93<br
/> sshd:203.215.252.189<br
/> sshd:219.143.200.169<br
/> sshd:60.12.193.134<br
/> sshd:201.83.220.44<br
/> sshd:c953dc2c.virtua.com.br<br
/> sshd:gera125.server4you.de</p><p>把他们访问SSH的全部给拒绝了，Linux的GFW也很强。</p> ]]></content:encoded> <wfw:commentRss>http://www.vpser.net/security/linux-vps-deny-ip.html/feed</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>VPS主机上备份网站和数据库</title><link>http://www.vpser.net/security/vps-backup-web-mysql.html</link> <comments>http://www.vpser.net/security/vps-backup-web-mysql.html#comments</comments> <pubDate>Wed, 01 Apr 2009 07:15:06 +0000</pubDate> <dc:creator>VPSer</dc:creator> <category><![CDATA[VPS安全]]></category> <category><![CDATA[VPS]]></category> <category><![CDATA[备份]]></category> <category><![CDATA[数据库]]></category> <category><![CDATA[网站]]></category><guid
isPermaLink="false">http://www.vpser.net/?p=155</guid> <description><![CDATA[现在看到越来越多的VPSer开始使用VPS，在使用VPS的时候一个很重要的任务就是VPS提供备份，虽然一些IDC也提供VPS的备份服务，但要不就是收费，都不太适合我们这些VPSer们使用。
今天介绍一下简单的方法为自己的VPS备份。
1、使用putty登录VPS，这里不多介绍了。
2、备份网站目录：
[root@www ~]# cd /web/www      //进入相应的目录
[root@www www]# tar zcvf vps.tar.gz vps   //使用tar打包且压缩vps文件夹，压缩后的文件名为：vps.tar.gz
[root@www www]#
3、备份数据库：
方法一：使用PHPmyadmin备份数据库方法二：使用mysqldump定时自动备份数据库
[root@www www]# vi backup-db.sh
#!/bin/sh
/bin/nice -n 19 /usr/bin/mysqldump -u vpsmysql --password=vpsmysqlpassword mysqlname -c &#124; /bin/nice -n 19 /bin/gzip -9 &#38;gt; /web/www/db-backup/vps-$(date '+%Y%m%d').sql.gz
rm -rf /web/www/db-backup/vps-$(date +%Y%m%d -d "7 days ago").sql.gz
#上面语句删除7天前的备份
上述脚本中-u后接数据库用户名， –password后接数据库密码，紧接着是数据库名，后面/web/www/db-backup/ 是备份的目录。
添加定时执行任务
[root@www ~]# crontab -e
59 23 * * * [...]]]></description> <content:encoded><![CDATA[<p>现在看到越来越多的VPSer开始使用VPS，在使用VPS的时候一个很重要的任务就是VPS提供备份，虽然一些IDC也提供VPS的备份服务，但要不就是收费，都不太适合我们这些VPSer们使用。</p><p>今天介绍一下简单的方法为自己的VPS备份。</p><p>1、使用putty登录VPS，这里不多介绍了。</p><p>2、备份网站目录：<span
id="more-155"></span></p><pre class="bash" style="font-family: monospace;"><span style="font-weight: bold; color: #7a0874;">[</span>root<span style="font-weight: bold; color: #000000;">@</span>www ~<span style="font-weight: bold; color: #7a0874;">]</span><span style="color: #666666; font-style: italic;"># cd /web/www      //进入相应的目录</span>
<span style="font-weight: bold; color: #7a0874;">[</span>root<span style="font-weight: bold; color: #000000;">@</span>www www<span style="font-weight: bold; color: #7a0874;">]</span><span style="color: #666666; font-style: italic;"># tar zcvf vps.tar.gz vps   //使用tar打包且压缩vps文件夹，压缩后的文件名为：vps.tar.gz</span>
<span style="font-weight: bold; color: #7a0874;">[</span>root<span style="font-weight: bold; color: #000000;">@</span>www www<span style="font-weight: bold; color: #7a0874;">]</span><span style="color: #666666; font-style: italic;">#</span></pre><p>3、备份数据库：</p><p>方法一：使用PHPmyadmin备份数据库</p><p><a
href="http://www.vpser.net/uploads/2009/04/vps-backup-web-mysql-1.jpg" target="_blank"><img
class="alignnone size-full wp-image-157" title="vps-backup-web-mysql-1" src="http://www.vpser.net/uploads/2009/04/vps-backup-web-mysql-1.jpg" alt="vps-backup-web-mysql-1" width="396" height="201" /></a></p><p><a
href="http://www.vpser.net/uploads/2009/04/vps-backup-web-mysql-2.jpg" target="_blank"><img
class="alignnone size-full wp-image-158" title="vps-backup-web-mysql-2" src="http://www.vpser.net/uploads/2009/04/vps-backup-web-mysql-2.jpg" alt="vps-backup-web-mysql-2" width="600" height="230" /></a></p><p><a
href="http://www.vpser.net/uploads/2009/04/vps-backup-web-mysql-3.jpg" target="_blank"><img
class="alignnone size-full wp-image-159" title="vps-backup-web-mysql-3" src="http://www.vpser.net/uploads/2009/04/vps-backup-web-mysql-3.jpg" alt="vps-backup-web-mysql-3" width="546" height="297" /></a></p><p><a
href="http://www.vpser.net/uploads/2009/04/vps-backup-web-mysql-4.jpg" target="_blank"><img
class="alignnone size-full wp-image-160" title="vps-backup-web-mysql-4" src="http://www.vpser.net/uploads/2009/04/vps-backup-web-mysql-4.jpg" alt="vps-backup-web-mysql-4" width="636" height="143" /></a></p><p><a
href="http://www.vpser.net/uploads/2009/04/vps-backup-web-mysql-5.jpg" target="_blank"><img
class="alignnone size-full wp-image-161" title="vps-backup-web-mysql-5" src="http://www.vpser.net/uploads/2009/04/vps-backup-web-mysql-5.jpg" alt="vps-backup-web-mysql-5" width="589" height="288" /></a></p><p>方法二：使用mysqldump定时自动备份数据库</p><pre class="bash" style="font-family: monospace;"><span style="font-weight: bold; color: #7a0874;">[</span>root<span style="font-weight: bold; color: #000000;">@</span>www www<span style="font-weight: bold; color: #7a0874;">]</span><span style="color: #666666; font-style: italic;"># vi backup-db.sh</span>
<span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="font-weight: bold; color: #000000;">/</span>bin<span style="font-weight: bold; color: #000000;">/</span><span style="font-weight: bold; color: #c20cb9;">nice</span> <span style="color: #660033;">-n</span> <span style="color: #000000;">19</span> <span style="font-weight: bold; color: #000000;">/</span>usr<span style="font-weight: bold; color: #000000;">/</span>bin<span style="font-weight: bold; color: #000000;">/</span>mysqldump <span style="color: #660033;">-u</span> vpsmysql <span style="color: #660033;">--password</span>=vpsmysqlpassword mysqlname <span style="color: #660033;">-c</span> <span style="font-weight: bold; color: #000000;">|</span> <span style="font-weight: bold; color: #000000;">/</span>bin<span style="font-weight: bold; color: #000000;">/</span><span style="font-weight: bold; color: #c20cb9;">nice</span> <span style="color: #660033;">-n</span> <span style="color: #000000;">19</span> <span style="font-weight: bold; color: #000000;">/</span>bin<span style="font-weight: bold; color: #000000;">/</span><span style="font-weight: bold; color: #c20cb9;">gzip</span> <span style="color: #660033;">-9</span> <span style="font-weight: bold; color: #000000;">&amp;</span>gt; <span style="font-weight: bold; color: #000000;">/</span>web<span style="font-weight: bold; color: #000000;">/</span>www<span style="font-weight: bold; color: #000000;">/</span>db-backup<span style="font-weight: bold; color: #000000;">/</span>vps-$<span style="font-weight: bold; color: #7a0874;">(</span><span style="font-weight: bold; color: #c20cb9;">date</span> <span style="color: #ff0000;">'+%Y%m%d'</span><span style="font-weight: bold; color: #7a0874;">)</span>.sql.gz
<span style="font-weight: bold; color: #c20cb9;">rm</span> <span style="color: #660033;">-rf</span> <span style="font-weight: bold; color: #000000;"><span style="font-weight: bold; color: #000000;">/</span>web<span style="font-weight: bold; color: #000000;">/</span>www<span style="font-weight: bold; color: #000000;">/</span>db-backup<span style="font-weight: bold; color: #000000;">/</span>vps-</span>$<span style="font-weight: bold; color: #7a0874;">(</span><span style="font-weight: bold; color: #c20cb9;">date</span> +<span style="font-weight: bold; color: #000000;">%</span>Y<span style="font-weight: bold; color: #000000;">%</span>m<span style="font-weight: bold; color: #000000;">%</span>d <span style="color: #660033;">-d</span> <span style="color: #ff0000;">"7 days ago"</span><span style="font-weight: bold; color: #7a0874;">)</span>.sql.gz
<span style="color: #666666; font-style: italic;">#上面语句删除7天前的备份</span></pre><p>上述脚本中-u后接数据库用户名， –password后接数据库密码，紧接着是数据库名，后面/web/www/db-backup/ 是备份的目录。</p><p>添加定时执行任务</p><pre class="bash" style="font-family: monospace;"><span style="font-weight: bold; color: #7a0874;">[</span>root<span style="font-weight: bold; color: #000000;">@</span>www ~<span style="font-weight: bold; color: #7a0874;">]</span><span style="color: #666666; font-style: italic;"># crontab -e</span>
<span style="color: #000000;">59</span> <span style="color: #000000;">23</span> <span style="font-weight: bold; color: #000000;">*</span> <span style="font-weight: bold; color: #000000;">*</span> <span style="font-weight: bold; color: #000000;">*</span> <span style="font-weight: bold; color: #000000;">/web/www</span><span style="font-weight: bold; color: #000000;">/</span>backup-db.sh</pre><pre class="bash" style="font-family: monospace;">每天的23：59分会自动备份数据库，且生成的数据库压缩按日期命名</pre><pre class="bash" style="font-family: monospace;">以上备份的信息，备份完了就赶快把备份下载到本地，毕竟，备份的数据都在VPS，不在身边。</pre>]]></content:encoded> <wfw:commentRss>http://www.vpser.net/security/vps-backup-web-mysql.html/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (user agent is rejected)
Database Caching 5/13 queries in 0.002 seconds using disk

Served from: www.vpser.net @ 2010-07-31 15:31:27 -->