怎樣使用IPTABLES限制IP上傳下載速度,如何用iptables限速?我們先來(lái)看范例:
iptables限制某IP的上傳速度為1000KB/秒(8Mbps,流入服務(wù)器帶寬),即在此IP所在的服務(wù)器或VPS上wget的速度
iptables -A FORWARD -m limit -d 208.8.14.53 --limit 700/s --limit-burst 100 -j ACCEPT
iptables -A FORWARD -d 208.8.14.53 -j DROP
取消iptables限速:
iptables -D FORWARD -m limit -d 208.8.14.53 --limit 700/s --limit-burst 100 -j ACCEPT
iptables -D FORWARD -d 208.8.14.53 -j DROP
限制某IP的上傳速度為2000KB/秒(16Mbps,流入服務(wù)器帶寬),即在此IP所在的服務(wù)器或VPS上wget的速度
iptables -A FORWARD -m limit -d 208.8.14.53 --limit 1400/s --limit-burst 100 -j ACCEPT
iptables -A FORWARD -d 208.8.14.53 -j DROP
取消限制:
iptables -D FORWARD -m limit -d 208.8.14.53 --limit 1400/s --limit-burst 100 -j ACCEPT
iptables -D FORWARD -d 208.8.14.53 -j DROP
如果要限制某IP下載速度(即網(wǎng)友通過(guò)網(wǎng)頁(yè)下載的帶寬/速度)參考
iptables -A FORWARD -s 208.8.14.36 -m limit --limit 700/s -j ACCEPT
iptables -A FORWARD -s 208.8.14.36 -j DROP
Iptables 的limit匹配ctohome.com大致介紹
限制匹配數(shù)據(jù)包的頻率或速率,看清楚了,它是用來(lái)限制匹配的數(shù)據(jù)包的頻率和速率的.這里“l(fā)imit”這個(gè)詞經(jīng)常給別人“限制”的誤解, 其實(shí)準(zhǔn)確說(shuō),應(yīng)該是“按一定速率去匹配”,至于“限制”還是“放行”是后面 -j 動(dòng)作來(lái)實(shí)現(xiàn)的,limit 僅僅是個(gè) match 模塊,他的功能是匹配,匹配方式是按一定速率.
用iptables的limit模塊,目標(biāo)是ACCEPT.當(dāng)你設(shè)置300/s時(shí),它大約每3ms發(fā)出一個(gè)令牌,獲得令牌的包可以發(fā)出去,沒(méi)有獲得令牌的包只能等待下一個(gè)令牌到來(lái),這樣不會(huì)造成一些包丟失,更不會(huì)造成所謂“斷線”的.
以下2條是對(duì)icmp的burst限制
iptables -A INPUT -p icmp -m limit --limit 1/sec --limit-burst 10 -j ACCEPT
iptables -A INPUT -p icmp -j DROP
第一條ipables的意思是限制ping包每一秒鐘一個(gè),10個(gè)后重新開始.
同時(shí)可以限制IP碎片,每秒鐘只允許100個(gè)碎片,用來(lái)防止DoS攻擊.
iptables -A INPUT -f -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
下面ctohome.com詳細(xì)的講述一下iptables的limit模塊的功能:
限制 ping (echo-request) 傳入的速度
限制前, 可正常每 0.2 秒 ping 一次
ping your.linux.ip -i 0.2
限制每秒只接受一個(gè) icmp echo-request 封包
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 1 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
--limit 1/s 表示每秒一次; 1/m 則為每分鐘一次
--limit-burst 表示允許觸發(fā) limit 限制的最大次數(shù) (預(yù)設(shè) 5)
再以每 0.2 秒 ping 一次, 得到的響應(yīng)是每秒一次
ping your.linux.ip -i 0.2
下面規(guī)則亦可達(dá)到每秒只接受一個(gè) echo-request 封包
iptables -N pinglimit
iptables -A pinglimit -m limit --limit 1/s --limit-burst 1 -j ACCEPT
iptables -A pinglimit -j DROP
iptables -A INPUT -p icmp --icmp-type echo-request -j pinglimit
iptables限速原理解釋:
iptables limit 參數(shù)
· 限制特定封包傳入速度
· 限制特定端口口連入頻率
· iptables Log 記錄參數(shù)備忘
· 自定 Chain 使用備忘
· 防治 SYN-Flood 碎片攻擊
限制 ping (echo-request) 傳入的速度
限制前, 可正常每 0.2 秒 ping 一次
ping your.linux.ip -i 0.2
限制每秒只接受一個(gè) icmp echo-request 封包
iptables -A INPUT -p icmp –icmp-type echo-request -m limit –limit 1/s –limit-burst 1 -j ACCEPT
iptables -A INPUT -p icmp –icmp-type echo-request -j DROP
–limit 1/s 表示每秒一次; 1/m 則為每分鐘一次
–limit-burst 表示允許觸發(fā) limit 限制的最大次數(shù) (預(yù)設(shè) 5)
再以每 0.2 秒 ping 一次, 得到的響應(yīng)是每秒一次
ping your.linux.ip -i 0.2
限制 ssh 連入頻率
建立自訂 Chain, 限制 tcp 聯(lián)機(jī)每分鐘一次, 超過(guò)者觸發(fā) Log 記錄 (記錄在 /var/log/messages)
iptables -N ratelimit
iptables -A ratelimit -p tcp -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A ratelimit -p tcp –syn -m limit –limit 1/m –limit-burst 1 -j ACCEPT
iptables -A ratelimit -p tcp -j LOG –log-level “NOTICE” –log-prefix “[RATELIMIT]”
iptables -A ratelimit -p tcp -j DROP
引用自訂 Chain, 限制 ssh (tcp port 22) 連入頻率
iptables -A INPUT -p tcp –dport 22 -s 192.168.0.0/16 -j ACCEPT (特定 IP 來(lái)源不受限制)
iptables -A INPUT -p tcp –dport 22 -j ratelimit
sshd_config 設(shè)定備忘:
· LoginGraceTime 30 密碼輸入時(shí)限為 30 秒
· MaxAuthTries 2 最多只能輸入 3 次密碼
同理可證
iptables -N pinglimit
iptables -A pinglimit -m limit –limit 1/s –limit-burst 1 -j ACCEPT
iptables -A pinglimit -j DROP
iptables -A INPUT -p icmp –icmp-type echo-request -j pinglimit
亦可達(dá)到每秒只接受一個(gè) echo-request 封包
補(bǔ)充: 清除自訂 Chain
iptables -L -n –line-number
iptables -D INPUT n
iptables -F ratelimit
iptables -X ratelimit
防治 SYN-Flood 碎片攻擊
iptables -N syn-flood
iptables -A syn-flood -m limit –limit 100/s –limit-burst 150 -j RETURN
iptables -A syn-flood -j DROP
iptables -I INPUT -j syn-flood
模擬攻擊
wget http://www.xfocus.net/tools/200102/naptha-1.1.tgz
wget ftp://rpmfind.net/linux/freshrpms/redhat/7.0/libnet/libnet-1.0.1b-1.src.rpm
tar -zxf naptha-1.1.tgz
rpmbuild –recompile libnet-1.0.1b-1.src.rpm
cp -r /var/tmp/libnet-buildroot/usr/* /usr/local/
cd naptha-1.1
make
./synsend your.linux.host.ip 80 local.host.eth0.ip 0.1
若成功抵擋, 不久后會(huì)出現(xiàn) Can’t send packet!: Operation not permitted 的訊息
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
linux設(shè)置iptables禁止某個(gè)IP訪問(wèn)
方法一:
1.vi /etc/sysconfig/iptables里:RH-Firewall-1-INPUT - [0:0]下面添加一行
下面是只允許某個(gè)IP訪問(wèn)xx端口
- -A INPUT -s 192.168.5.244 -j DROP
2.重啟生效
#service iptables restart
以上參考:
http://www.vpser.net/security/linux-iptables.html
http://www.mzone.cc/article/636.html
http://blog.51yip.com/linux/1404.html
方法二:
1.先備份iptables
# cp /etc/sysconfig/iptables /var/tmp
添加拒絕IP
# iptables -I INPUT -s 118.109.231.217 -j DROP
以上是臨時(shí)設(shè)置。
2.然后保存iptables
# service iptables save
3.重啟防火墻
#service iptables restart
----------------下面是參考------------------------------------
1. 查看本機(jī)關(guān)于IPTABLES的設(shè)置情況
# iptables -L -n2. 清除原有規(guī)則
# iptables -F 清除預(yù)設(shè)表filter中的所有規(guī)則鏈的規(guī)則
# iptables -X 清除預(yù)設(shè)表filter中使用者自定鏈中的規(guī)則3. 保存設(shè)置規(guī)則(因配置隨系統(tǒng)重啟而失效)
# /etc/rc.d/init.d/iptables save
保存規(guī)則到/etc/sysconfig/iptables文件中, 也可手工編輯該文件.4. 設(shè)定預(yù)設(shè)規(guī)則
# iptables -p INPUT DROP
# iptables -p OUTPUT DROP
# iptables -p FORWARD DROP
上面的規(guī)則是不允許任何包通過(guò).5. 添加規(guī)則
# iptables -A INPUT -p tcp –dport 22 -j ACCEPT
# iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT
開啟22端口, 允許SSH登錄, 如開啟80端口:
# iptables -A INPUT -p tcp –dport 80 -j ACCEPT
# iptables -A OUTPUT -p tcp –sport 80 -j ACCEPT6. 禁止某個(gè)IP訪問(wèn)
# iptables -I INPUT -s x.x.x.x -j DROP也可進(jìn)行更細(xì)致的設(shè)置, 如只允許192.168.1.14的機(jī)器進(jìn)行SSH連接:
# iptables -A INPUT -p tcp –dport 22 -s 192.168.1.14 -j ACCEPT
如果要允許或限制一段IP地址可用192.168.1.0/24 表示192.168.1.1-255端的所有IP.防止同步包洪水(Sync Flood)
# iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT防止各種端口掃描
# iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPTPing 洪水攻擊(Ping of Death)
# iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
只允許指定的一個(gè)IP訪問(wèn)服務(wù)器
vi /etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -s 165.232.121.17 -j ACCEPT
-A INPUT -j DROP
COMMIT
如果你之前的防火墻設(shè)置了永久關(guān)閉,則需要解除
chkconfig --list 查看啟動(dòng)服務(wù),找到要關(guān)閉服務(wù)名
chkconfig --level 235 服務(wù)名 off 【在等級(jí)3和5為開機(jī)運(yùn)行服務(wù)】
系統(tǒng)運(yùn)行級(jí)別有0—6,就在/etc/inittab中的0-6
等級(jí)0表示:表示關(guān)機(jī)
等級(jí)1表示:?jiǎn)斡脩裟J?/p>
等級(jí)2表示:無(wú)網(wǎng)絡(luò)連接的多用戶命令行模式
等級(jí)3表示:有網(wǎng)絡(luò)連接的多用戶命令行模式
等級(jí)4表示:不可用
等級(jí)5表示:帶圖形界面的多用戶模式
等級(jí)6表示:重新啟動(dòng)2011/10/26
================ 以下為摘錄 ====================
又有人攻擊服務(wù)器了,沒(méi)有辦法又的去防,這里簡(jiǎn)單介紹一種限制指定IP訪問(wèn)的辦法。
單個(gè)IP的命令是
iptables -I INPUT -s 59.151.119.180 -j DROP
封IP段的命令是
iptables -I INPUT -s 211.1.0.0/16 -j DROP
iptables -I INPUT -s 211.2.0.0/16 -j DROP
iptables -I INPUT -s 211.3.0.0/16 -j DROP
封整個(gè)段的命令是
iptables -I INPUT -s 211.0.0.0/8 -j DROP
封幾個(gè)段的命令是
iptables -I INPUT -s 61.37.80.0/24 -j DROP
iptables -I INPUT -s 61.37.81.0/24 -j DROP
服務(wù)器啟動(dòng)自運(yùn)行
有三個(gè)方法:
1、把它加到/etc/rc.local中
2、vi /etc/sysconfig/iptables可以把你當(dāng)前的iptables規(guī)則放到/etc/sysconfig/iptables中,系統(tǒng)啟動(dòng)iptables時(shí)自動(dòng)執(zhí)行。
3、service iptables save 也可以把你當(dāng)前的iptables規(guī)則放/etc/sysconfig/iptables中,系統(tǒng)啟動(dòng)iptables時(shí)自動(dòng)執(zhí)行。
后兩種更好此,一般iptables服務(wù)會(huì)在network服務(wù)之前啟來(lái),更安全
解封:
iptables -L INPUT
iptables -L --line-numbers 然后iptables -D INPUT 序號(hào)
iptables 限制ip訪問(wèn)
通過(guò)iptables限制9889端口的訪問(wèn)(只允許192.168.1.201、192.168.1.202、192.168.1.203),其他ip都禁止訪問(wèn)
iptables -I INPUT -p tcp --dport 9889 -j DROP
iptables -I INPUT -s 192.168.1.201 -p tcp --dport 9889 -j ACCEPT
iptables -I INPUT -s 192.168.1.202 -p tcp --dport 9889 -j ACCEPT
iptables -I INPUT -s 192.168.1.203 -p tcp --dport 9889 -j ACCEPT
注意命令的順序不能反了。
聯(lián)系客服