技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當(dāng)前位置:主頁 > 教程 > 服務(wù)器類 >

linux服務(wù)器(nginx或者apache)限制IP訪問

來源:技術(shù)員聯(lián)盟┆發(fā)布時間:2018-10-08 12:00┆點擊:

近段時間一直飽受垃圾評論的攻擊,服務(wù)器一度負(fù)載太高而宕機,參見:WordPress垃圾評論防御記。開始試了很多方法都不能很好的解決問題,最后通過屏蔽垃圾評論IP的方式,算是解決了這個問題,當(dāng)然這個方法不是最好的,但是確實是非常實用的方法。

然后一些朋友就問我是怎么屏蔽這些垃圾評論的IP的,以及能否共享這些垃圾評論的IP,還有朋友問怎么提取自己博客的垃圾評論的IP,這個稍稍講解下,高手略過,我也是個菜鳥。

nginx環(huán)境下

新建 denyip.conf 文件,在服務(wù)器/usr/local/nginx/conf目錄下的nginx.conf里面,加上

include denyip.conf; 
將屏蔽的IP放到 denyip.conf 里面

deny 110.83.0.0/16; 

deny 110.84.111.0/24; 

deny 110.85.124.56;

保存之后將 denyip.conf 上傳到/usr/local/nginx/conf目錄下,弄好之后記得重啟nginx。

上面我列舉了3中屏蔽類型,第一行的是屏蔽110.83.*.*的所有IP,第二行的是屏蔽110.84.111.*的所有IP,第三行是只屏蔽110.85.124.56這個IP。

第一行的屏蔽的范圍較大,很容易誤攔,第三行的疲敝最穩(wěn)妥,但是IP越多導(dǎo)致文件會很大,也不算太可取,第二行的方式是我目前使用的,好處壞處介于2這之間,大家可以自由選擇。

垃圾評論IP的收集
有人問我如何收集這些垃圾評論IP的,其實很簡單,一個SQL就搞定,然后Excle處理下。

首先安裝Akismet插件,這個插件會把垃圾評論標(biāo)記為spam,只安裝這一個就可以了,其他任何防評論插件請勿安裝。

SELECT `comment_author_IP` FROM `wp_comments` WHERE `comment_approved`= 'spam' 
執(zhí)行好了之后,導(dǎo)出這些IP,保存csv格式,然后直接用Excle打開,排序,去重,就得到唯一的垃圾評論IP了。

得到垃圾評論了之后就可以按照上面的方式操作了。

apache環(huán)境下

空間支持 .htaccess

<Limit GET HEAD POST> 

order allow,deny 

deny from 110.85.104.152 

deny from 110.85.113 

deny from 110.85.113.0/24 

deny from 110.87 

deny from 110.87.0.0/16 

deny from 110.86.167.210 110.86.184.181 

deny from 110.86.185.0/24 110.86.187.0/24 

allow from all 

</Limit> 
apache下關(guān)于限制IP的寫法比較多種,IP開始的第一行,是最普通的限制唯一IP,第二行跟第三行表達(dá)的內(nèi)容是一樣的,限制110.85.113.* 下所有的IP;第四五行也是一樣的,限制110.87.*.* 下所有的IP;第六行是限制這2個IP,第7行就是顯示這兩個IP段;注意多個IP限制時用空格分開。

目前我收集的垃圾評論的IP
經(jīng)過大約一周時間的統(tǒng)計,目前收集了一批垃圾評論的IP,用純真IP批量跑了這些IP,其中以福建莆田市的居多,美國的也不少。如果你也飽受垃圾評論的攻擊,可以用用這個方法和IP,我會定期更新IP數(shù)據(jù)的。


iptables IP限制訪問 指定IP訪問

只允許指定的一個IP訪問服務(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

iptables 限制ip訪問

通過iptables限制9889端口的訪問(只允許192.168.1.201、192.168.1.202、192.168.1.203),其他ip都禁止訪問
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

如果你之前的防火墻設(shè)置了永久關(guān)閉,則需要解除

chkconfig --list 查看啟動服務(wù),找到要關(guān)閉服務(wù)名
chkconfig --level 235 服務(wù)名 off 【在等級3和5為開機運行服務(wù)】

系統(tǒng)運行級別有0—6,就在/etc/inittab中的0-6

等級0表示:表示關(guān)機

等級1表示:單用戶模式

等級2表示:無網(wǎng)絡(luò)連接的多用戶命令行模式

等級3表示:有網(wǎng)絡(luò)連接的多用戶命令行模式

等級4表示:不可用

等級5表示:帶圖形界面的多用戶模式

等級6表示:重新啟動2011/10/26