<?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; iptables</title>
	<atom:link href="http://www.deepvps.com/tag/iptables/feed" rel="self" type="application/rss+xml" />
	<link>http://www.deepvps.com</link>
	<description>专注VPS技术，关注前端技术</description>
	<lastBuildDate>Sat, 04 Feb 2023 14:00:33 +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>利用iptables防止php-ddos对外udp发包</title>
		<link>http://www.deepvps.com/use-iptables-to-prevent-php-ddos.html</link>
		<comments>http://www.deepvps.com/use-iptables-to-prevent-php-ddos.html#comments</comments>
		<pubDate>Sun, 01 Apr 2012 16:22:21 +0000</pubDate>
		<dc:creator>deepvps</dc:creator>
				<category><![CDATA[VPS安全]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[php-ddos]]></category>
		<category><![CDATA[udp]]></category>

		<guid isPermaLink="false">http://www.deepvps.com/?p=1082</guid>
		<description><![CDATA[最近一段时间php-ddos泛滥，尤其是织梦dede一堆洞洞，你懂得。其实，我们可以利用iptables，从根源上禁止php-ddos对外发包。
这样你就不必担心你的VPS或者虚拟空间因为漏洞问题被植入php-ddos，对外发送大量的数据包而被主机商关闭。 
# iptables -I OUTPUT -p udp &#8211;dport 53 -d 8.8.8.8 -j ACCEPT
# iptables -I OUTPUT -p udp &#8211;dport 53 -d 8.8.4.4 -j ACCEPT

“53”，为DNS所需要的UDP端口，“8.8.8.8”部分为DNS IP，根据您服务器的设定来定，若您不知您当前服务器使用的DNS IP，可在SSH中执行以下命令获取：
# cat /etc/resolv.conf &#124;grep nameserver &#124;awk &#8216;NR==1{print $2 }&#8217;
禁止本机对外发送UDP包
# iptables -A OUTPUT -p udp -j DROP
]]></description>
			<content:encoded><![CDATA[<p>最近一段时间php-ddos泛滥，尤其是织梦dede一堆洞洞，你懂得。其实，我们可以利用iptables，从根源上禁止php-ddos对外发包。</p>
<p>这样你就不必担心你的VPS或者虚拟空间因为漏洞问题被植入php-ddos，对外发送大量的数据包而被主机商关闭。 </p>
<blockquote><p><span style="color: #008000;"># iptables -I OUTPUT -p udp &#8211;dport 53 -d 8.8.8.8 -j ACCEPT<br />
# iptables -I OUTPUT -p udp &#8211;dport 53 -d 8.8.4.4 -j ACCEPT</span></p></blockquote>
<p><span id="more-1082"></span><br />
“53”，为DNS所需要的UDP端口，“8.8.8.8”部分为DNS IP，根据您服务器的设定来定，若您不知您当前服务器使用的DNS IP，可在SSH中执行以下命令获取：</p>
<blockquote><p><span style="color: #008000;"># cat /etc/resolv.conf |grep nameserver |awk &#8216;NR==1{print $2 }&#8217;</span></p></blockquote>
<p>禁止本机对外发送UDP包</p>
<blockquote><p><span style="color: #008000;"># iptables -A OUTPUT -p udp -j DROP</span></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.deepvps.com/use-iptables-to-prevent-php-ddos.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>VSFTP开启PASV模式</title>
		<link>http://www.deepvps.com/vsftpd-enable-pasv-mode.html</link>
		<comments>http://www.deepvps.com/vsftpd-enable-pasv-mode.html#comments</comments>
		<pubDate>Thu, 08 Mar 2012 14:30:25 +0000</pubDate>
		<dc:creator>deepvps</dc:creator>
				<category><![CDATA[VPS入门]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[PASV]]></category>
		<category><![CDATA[VSFTP]]></category>

		<guid isPermaLink="false">http://www.deepvps.com/?p=1065</guid>
		<description><![CDATA[今天deepvps配置一个VPS的VSFTP后，发FTP居然不能用。连接FTP的时候提示PASV 模式失败，尝试 PORT  模式。后来发现是iptables防火墙挡住了PASV的端口。放开端口就好了。

VSFTP的配置很简单，不再多说。但在有iptables的情况下，要开启pasv模式，是要作一些配置的。
/etc/vsftpd/vsftpd.conf
未尾添加：
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40080
pasv_promiscuous=YES
/etc/sysconfig/iptables
加入：
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 40000:40080 -j ACCEPT
重启iptables &#38; vsftpd，就可以使用pasv模式了。

]]></description>
			<content:encoded><![CDATA[<p>今天deepvps配置一个VPS的VSFTP后，发FTP居然不能用。连接FTP的时候提示PASV 模式失败，尝试 PORT  模式。后来发现是iptables防火墙挡住了PASV的端口。放开端口就好了。</p>
<div>
<p>VSFTP的配置很简单，不再多说。但在有iptables的情况下，要开启pasv模式，是要作一些配置的。</p>
<p>/etc/vsftpd/vsftpd.conf<span id="more-1065"></span><br />
未尾添加：</p>
<blockquote><p>pasv_enable=YES<br />
pasv_min_port=40000<br />
pasv_max_port=40080<br />
pasv_promiscuous=YES</p></blockquote>
<p>/etc/sysconfig/iptables<br />
加入：</p>
<blockquote><p>-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT<br />
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 40000:40080 -j ACCEPT</p></blockquote>
<p>重启iptables &amp; vsftpd，就可以使用pasv模式了。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.deepvps.com/vsftpd-enable-pasv-mode.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>VPS的简单安全措施三步曲</title>
		<link>http://www.deepvps.com/vps-simple-security-measures.html</link>
		<comments>http://www.deepvps.com/vps-simple-security-measures.html#comments</comments>
		<pubDate>Fri, 14 Jan 2011 14:26:48 +0000</pubDate>
		<dc:creator>deepvps</dc:creator>
				<category><![CDATA[VPS安全]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[VPS]]></category>
		<category><![CDATA[安全措施]]></category>
		<category><![CDATA[端口]]></category>
		<category><![CDATA[简单]]></category>
		<category><![CDATA[防火墙]]></category>

		<guid isPermaLink="false">http://www.deepvps.com/?p=700</guid>
		<description><![CDATA[一、开防火墙，不用的端口都禁止掉
/etc/init.d/iptables start //简单的规则如下所示，具体的大家根据情况自己变通
/sbin/iptables -F
/sbin/iptables -A INPUT -p tcp -i vnet0 &#8211;dport ssh -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i vnet0 &#8211;dport 80 -j ACCEPT
/sbin/iptables -A INPUT -i vnet0 -m state &#8211;state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p ICMP -j DROP
/sbin/iptables -A INPUT -i vnet0 -j DROP
最简单几条iptables，修改好之后重启iptables 。 
/etc/init.d/iptables restart
二、改ssh端口，注意防火墙要开这个端口，别悲剧的也给禁止了，原则上改为5000以上端口为宜。
vi /etc/ssh/sshd_config //搜索 Port 把后面的数字改为你想要的端口号，Port前面如有#号，删除掉。
三、禁止root登录，注意要先创建普通用户，不然也会悲剧的
vi /etc/ssh/sshd_config //搜索PermitRootLogin把后面的yes改为no，前面如有#号，删除掉。
第二，三步完成之后重启ssh
service sshd restart
]]></description>
			<content:encoded><![CDATA[<p>一、开防火墙，不用的端口都禁止掉</p>
<blockquote><p>/etc/init.d/iptables start //简单的规则如下所示，具体的大家根据情况自己变通</p>
<p>/sbin/iptables -F<br />
/sbin/iptables -A INPUT -p tcp -i vnet0 &#8211;dport ssh -j ACCEPT<br />
/sbin/iptables -A INPUT -p tcp -i vnet0 &#8211;dport 80 -j ACCEPT<br />
/sbin/iptables -A INPUT -i vnet0 -m state &#8211;state ESTABLISHED,RELATED -j ACCEPT<br />
/sbin/iptables -A INPUT -p ICMP -j DROP<br />
/sbin/iptables -A INPUT -i vnet0 -j DROP</p></blockquote>
<p>最简单几条iptables，修改好之后重启iptables 。 </p>
<blockquote><p>/etc/init.d/iptables restart</p></blockquote>
<p><span id="more-700"></span>二、改ssh端口，注意防火墙要开这个端口，别悲剧的也给禁止了，原则上改为5000以上端口为宜。</p>
<blockquote><p>vi /etc/ssh/sshd_config //搜索 Port 把后面的数字改为你想要的端口号，Port前面如有#号，删除掉。</p></blockquote>
<p>三、禁止root登录，注意要先创建普通用户，不然也会悲剧的</p>
<blockquote><p>vi /etc/ssh/sshd_config //搜索PermitRootLogin把后面的yes改为no，前面如有#号，删除掉。</p></blockquote>
<p>第二，三步完成之后重启ssh</p>
<blockquote><p>service sshd restart</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.deepvps.com/vps-simple-security-measures.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>用 iptables 屏蔽来自某个国家的 IP</title>
		<link>http://www.deepvps.com/block-traffic-from-a-specific-country-using-iptables.html</link>
		<comments>http://www.deepvps.com/block-traffic-from-a-specific-country-using-iptables.html#comments</comments>
		<pubDate>Thu, 26 Aug 2010 15:20:18 +0000</pubDate>
		<dc:creator>deepvps</dc:creator>
				<category><![CDATA[VPS安全]]></category>
		<category><![CDATA[IPdeny]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[屏蔽IP]]></category>

		<guid isPermaLink="false">http://www.deepvps.com/?p=508</guid>
		<description><![CDATA[星期六我们一位客户受到攻击，我们的网络监测显示有连续6小时的巨大异常流量，我们立即联系了客户，没有得到回应，我们修改和限制了客户的 VPS，使得个别 VPS 受攻击不会对整个服务器和其他 VPS 用户造成任何影响，我们一直保持这个 VPS 为开通状态（尽管一直受攻击），攻击又持续了24小时，星期天攻击仍在继续，我们忍无可忍，但是仍然无法联系到客户，我们向客户网站的另一负责人询问是否需要我们介入来帮助解决，这位负责人答应后我们立即投入到与 DDoS 的战斗中（我们动态扫描屏蔽坏 IP，现在客户网站已恢复。整个过程很有意思，以后有时间再写一篇博客来描述）。登录到客户 VPS 第一件事情就是查当前连接和 IP，来自中国的大量 IP 不断侵占80端口，典型的 DDos. 所以第一件事是切断攻击源，既然攻击只攻80端口，那有很多办法可以切断，直接关闭网站服务器、直接用防火墙/iptables 切断80端口或者关闭所有连接、把 VPS 网络关掉、换一个 IP，&#8230;，等等。因为攻击源在国内，所以 VPSee 决定切断来自国内的所有访问，这样看上去网站好像是被墙了而不是被攻击了，有助于维护客户网站的光辉形象。那么如何屏蔽来自某个特定国家的 IP 呢？
方法很容易，先到 IPdeny 下载以国家代码编制好的 IP 地址列表，比如下载 cn.zone：
# wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone
有了国家的所有 IP 地址，要想屏蔽这些 IP 就很容易了，直接写个脚本逐行读取 cn.zone 文件并加入到 iptables 中：
#!/bin/bash
# Block traffic from a specific country
# written by vpsee.com

COUNTRY = "cn"
IPTABLES = /sbin/iptables
EGREP = /bin/egrep

if [...]]]></description>
			<content:encoded><![CDATA[<p>星期六我们一位客户受到攻击，我们的网络监测显示有连续6小时的巨大异常流量，我们立即联系了客户，没有得到回应，我们修改和限制了客户的 VPS，使得个别 VPS 受攻击不会对整个服务器和其他 VPS 用户造成任何影响，我们一直保持这个 VPS 为开通状态（尽管一直受攻击），攻击又持续了24小时，星期天攻击仍在继续，我们忍无可忍，但是仍然无法联系到客户，我们向客户网站的另一负责人询问是否需要我们介入来帮助解决，这位负责人答应后我们立即投入到与 DDoS 的战斗中（我们动态扫描屏蔽坏 IP，现在客户网站已恢复。整个过程很有意思，以后有时间再写一篇博客来描述）。<span id="more-508"></span>登录到客户 VPS 第一件事情就是查当前连接和 IP，来自中国的大量 IP 不断侵占80端口，典型的 DDos. 所以第一件事是切断攻击源，既然攻击只攻80端口，那有很多办法可以切断，直接关闭网站服务器、直接用防火墙/iptables 切断80端口或者关闭所有连接、把 VPS 网络关掉、换一个 IP，&#8230;，等等。因为攻击源在国内，所以 VPSee 决定切断来自国内的所有访问，这样看上去网站好像是被墙了而不是被攻击了，有助于维护客户网站的光辉形象。那么如何屏蔽来自某个特定国家的 IP 呢？</p>
<p>方法很容易，先到 <a href="http://www.ipdeny.com/ipblocks/" target="_blank">IPdeny</a> 下载以国家代码编制好的 IP 地址列表，比如下载 cn.zone：</p>
<pre># wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone</pre>
<p>有了国家的所有 IP 地址，要想屏蔽这些 IP 就很容易了，直接写个脚本逐行读取 cn.zone 文件并加入到 iptables 中：</p>
<pre>#!/bin/bash
# Block traffic from a specific country
# written by vpsee.com

COUNTRY = "cn"
IPTABLES = /sbin/iptables
EGREP = /bin/egrep

if [ "$(id -u)" != "0" ]; then
   echo "you must be root" 1&gt;&amp;2
   exit 1
fi

resetrules() {
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
}

resetrules

for c in $COUNTRY
do
        country_file = $c.zone

        IPS = $($EGREP -v "^#|^$" $country_file)
        for ip in $IPS
        do
           echo "blocking $ip"
           $IPTABLES -A INPUT -s $ip -j DROP
        done
done

exit 0</pre>
<p>好 IP 和坏 IP 都被屏蔽掉了，这种办法当然不高明，屏蔽 IP 也没有解决被攻击的问题，但是是解决问题的第一步，屏蔽了攻击源以后我们才有带宽、时间和心情去检查 VPS 的安全问题。公布一份我们客户被攻击的网络流量图，在18点到0点所有带宽都被攻击流量占用，这时候客户无法登录 VPS，访问者也无法访问网站：</p>
<p><a href="http://www.deepvps.com/wp-content/uploads/auto_save_image/2010/08/232018GHJ.png"><img title="ddos" src="http://www.deepvps.com/wp-content/uploads/auto_save_image/2010/08/232018GHJ.png" alt="" width="410" height="121" /></a></p>
<p>转载自：<a href="http://www.vpsee.com/2010/08/block-traffic-from-a-specific-country-using-iptables/" target="_blank">http://www.vpsee.com/2010/08/block-traffic-from-a-specific-country-using-iptables/</a></p>
<p><script src="http://china-addthis.googlecode.com/svn/trunk/addthis.js" type="text/javascript"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.deepvps.com/block-traffic-from-a-specific-country-using-iptables.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DDoS deflate &#8211; Linux下防御/减轻DDOS攻击</title>
		<link>http://www.deepvps.com/ddos-deflate.html</link>
		<comments>http://www.deepvps.com/ddos-deflate.html#comments</comments>
		<pubDate>Mon, 19 Apr 2010 01:53:33 +0000</pubDate>
		<dc:creator>deepvps</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.deepvps.com/?p=399</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 220.181.61.31   [...]]]></description>
			<content:encoded><![CDATA[<p><strong>前言</strong></p>
<p>互联网如同现实社会一样充满钩心斗角，网站被DDOS也成为站长最头疼的事。在没有硬防的情况下，寻找软件代替是最直接的方法，比如用iptables，但是iptables不能在自动屏蔽，只能手动屏蔽。今天要说的就是一款能够自动屏蔽DDOS攻击者IP的软件：<a href="http://www.deepvps.com/ddos-deflate.html" target="_blank">DDoS deflate</a>。<span id="more-399"></span></p>
<p><strong>DDoS deflate介绍</strong></p>
<p><a href="http://www.deepvps.com/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攻击？</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    VPS侦探 http://www.vpser.net/
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.deepvps.com/webserver-test.html" target="_blank">Web压力测试软件</a>测试一下效果，相信<a href="http://www.deepvps.com/ddos-deflate.html" target="_blank">DDoS deflate</a>还是能给你的VPS或服务器抵御一部分DDOS攻击，给你的网站更多的保护。</p>
<p>转载自：VPS侦探 <a href="http://www.vpser.net/">http://www.VPSer.Net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.deepvps.com/ddos-deflate.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
