linux怎么利用CSF防火墻屏蔽惡意請(qǐng)求
防火墻借由監(jiān)測(cè)所有的封包并找出不符規(guī)則的內(nèi)容,可以防范電腦蠕蟲或是木馬程序的快速蔓延。本篇文章主要介紹了linux利用CSF防火墻屏蔽惡意請(qǐng)求,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
問題
最近不知道為什么,惡意代理的請(qǐng)求數(shù)越來越多,明明我返回的都是403Forbidden,但是由于數(shù)量實(shí)在龐大,還是消耗了我大量的帶寬和資源。之前的方法已經(jīng)沒有用了,想了半天還是研究研究防火墻吧,雖然僅僅靠Apache也能對(duì)某些IP進(jìn)行黑名單設(shè)置,但是感覺還是有點(diǎn)麻煩的。比如最常見的用iptables,或者是ufw,雖然都能很好的做到管理,但是他們基本都需要一條一條的加,十分麻煩。
網(wǎng)上搜索了下,找到了一個(gè)挺方便的小工具–CSF(ConfigServer & Security Firewall),這個(gè)工具據(jù)說除了能夠方便的管理IP blacklist,而且也能稍加配置抵御一定量的DDOS攻擊。
安裝
工具本身可以在csf工具的官網(wǎng)上下載。
下載并解壓后可以參考其中的install.txt的說明進(jìn)行安裝,講的簡(jiǎn)潔而且詳細(xì),注意給權(quán)限就行。需要說明的是,這個(gè)工具其實(shí)也是基于iptables,只是簡(jiǎn)化了命令而已。
關(guān)于ddos的防護(hù)
根據(jù)readme.txt的描述,進(jìn)行ddos防護(hù)的功能主要是靠/etc/csf/csf.conf中的配置進(jìn)行控制的,尤其是當(dāng)中的PORTFLOOD參數(shù),一般都進(jìn)行如下設(shè)置:
#Syntax for the PORTFLOOD setting:
#PORTFLOOD is a comma separated list of:
port;protocol;hit count*;interval seconds
#So, a setting of PORTFLOOD = "22;tcp;5;300,80;tcp;20;5" means:
#1. If more than 5 connections to tcp port 22 within 300 seconds, then block
#that IP address from port 22 for at least 300 seconds after the last packet is
#seen, i.e. there must be a "quiet" period of 300 seconds before the block is
#lifted
#2. If more than 20 connections to tcp port 80 within 5 seconds, then block
#that IP address from port 80 for at least 5 seconds after the last packet is
#seen, i.e. there must be a "quiet" period of 5 seconds before the block is
#lifted
這個(gè)可以根據(jù)個(gè)人需要修改。
關(guān)于black list
blacklist 就在/etc/csf/csf.deny里,可以有多種書寫方式,在該文件的頂部描述的十分清楚:
###############################################################################
# Copyright 2006-2017, Way to the Web Limited
# URL: http://www.configserver.com
# Email: sales@waytotheweb.com
###############################################################################
# The following IP addresses will be blocked in iptables
# One IP address per line
# CIDR addressing allowed with a quaded IP (e.g. 192.168.254.0/24)
# Only list IP addresses, not domain names (they will be ignored)
#
# Note: If you add the text "do not delete" to the comments of an entry then
# DENY_IP_LIMIT will ignore those entries and not remove them
#
# Advanced port+ip filtering allowed with the following format
# tcp/udp|in/out|s/d=port|s/d=ip
#
# See readme.txt for more information regarding advanced port filtering
#
簡(jiǎn)要概括就是每一行代表一個(gè)ip,也可以代表一個(gè)ip段(CIDR),而且我們也可以加注釋,甚至可以指定端口和協(xié)議。
最后,在做出修改后想要生效記得用csf -r命令。
針對(duì)惡意代理請(qǐng)求的防護(hù)方案
當(dāng)然,我用這個(gè)的目的是為了根本解決之前的惡意代理占用帶寬的問題。有了這個(gè)工具,就可以十分輕松的進(jìn)行控制了,思路如下:
首先,搜索Apache的log(/var/log/apache2/access.log),查找所有應(yīng)被屏蔽的log條目(我這里指的是所有被403的請(qǐng)求)。
然后,提取每條Log記錄對(duì)應(yīng)的ip地址。
對(duì)結(jié)果進(jìn)行排序去重,生成black list。
blacklist 寫入csf.deny
重啟csf防護(hù)服務(wù)。
實(shí)現(xiàn)起來超級(jí)簡(jiǎn)單:
復(fù)制代碼 代碼如下:
root@server:~# cat /var/log/apache2/access.log |grep \ 403\ |awk '{print $1}'|sort|uniq >> /etc/csf/csf.deny
可以手動(dòng)查看下結(jié)果是否正確,確認(rèn)之后既可以csf -r重啟服務(wù)了。
補(bǔ)充閱讀:防火墻主要使用技巧
一、所有的防火墻文件規(guī)則必須更改。
盡管這種方法聽起來很容易,但是由于防火墻沒有內(nèi)置的變動(dòng)管理流程,因此文件更改對(duì)于許多企業(yè)來說都不是最佳的實(shí)踐方法。如果防火墻管理員因?yàn)橥话l(fā)情況或者一些其他形式的業(yè)務(wù)中斷做出更改,那么他撞到槍口上的可能性就會(huì)比較大。但是如果這種更改抵消了之前的協(xié)議更改,會(huì)導(dǎo)致宕機(jī)嗎?這是一個(gè)相當(dāng)高發(fā)的狀況。
防火墻管理產(chǎn)品的中央控制臺(tái)能全面可視所有的防火墻規(guī)則基礎(chǔ),因此團(tuán)隊(duì)的所有成員都必須達(dá)成共識(shí),觀察誰(shuí)進(jìn)行了何種更改。這樣就能及時(shí)發(fā)現(xiàn)并修理故障,讓整個(gè)協(xié)議管理更加簡(jiǎn)單和高效。
二、以最小的權(quán)限安裝所有的訪問規(guī)則。
另一個(gè)常見的安全問題是權(quán)限過度的規(guī)則設(shè)置。防火墻規(guī)則是由三個(gè)域構(gòu)成的:即源(IP地址),目的地(網(wǎng)絡(luò)/子網(wǎng)絡(luò))和服務(wù)(應(yīng)用軟件或者其他目的地)。為了確保每個(gè)用戶都有足夠的端口來訪問他們所需的系統(tǒng),常用方法是在一個(gè)或者更多域內(nèi)指定打來那個(gè)的目標(biāo)對(duì)象。當(dāng)你出于業(yè)務(wù)持續(xù)性的需要允許大范圍的IP地址來訪問大型企業(yè)的網(wǎng)絡(luò),這些規(guī)則就會(huì)變得權(quán)限過度釋放,因此就會(huì)增加不安全因素。服務(wù)域的規(guī)則是開放65535個(gè)TCP端口的ANY。防火墻管理員真的就意味著為黑客開放了65535個(gè)攻擊矢量?
三、根據(jù)法規(guī)協(xié)議和更改需求來校驗(yàn)每項(xiàng)防火墻的更改。
在防火墻操作中,日常工作都是以尋找問題,修正問題和安裝新系統(tǒng)為中心的。在安裝最新防火墻規(guī)則來解決問題,應(yīng)用新產(chǎn)品和業(yè)務(wù)部門的過程中,我們經(jīng)常會(huì)遺忘防火墻也是企業(yè)安全協(xié)議的物理執(zhí)行者。每項(xiàng)規(guī)則都應(yīng)該重新審核來確保它能符合安全協(xié)議和任何法規(guī)協(xié)議的內(nèi)容和精神,而不僅是一篇法律條文。
四、當(dāng)服務(wù)過期后從防火墻規(guī)則中刪除無用的規(guī)則。
規(guī)則膨脹是防火墻經(jīng)常會(huì)出現(xiàn)的安全問題,因?yàn)槎鄶?shù)運(yùn)作團(tuán)隊(duì)都沒有刪除規(guī)則的流程。業(yè)務(wù)部門擅長(zhǎng)讓你知道他們了解這些新規(guī)則,卻從來不會(huì)讓防火墻團(tuán)隊(duì)知道他們不再使用某些服務(wù)了。了解退役的服務(wù)器和網(wǎng)絡(luò)以及應(yīng)用軟件更新周期對(duì)于達(dá)成規(guī)則共識(shí)是個(gè)好的開始。運(yùn)行無用規(guī)則的報(bào)表是另外一步。黑客喜歡從來不刪除規(guī)則的防火墻團(tuán)隊(duì)。
linux防火墻屏蔽惡意請(qǐng)求相關(guān)文章: