新聞中心
隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)攻擊威脅也越來(lái)越大,其中DOS攻擊是攻擊者最常用的一種攻擊方式。DOS攻擊可以讓目標(biāo)系統(tǒng)無(wú)法正常運(yùn)行,甚至導(dǎo)致系統(tǒng)崩潰。針對(duì)DOS攻擊,Linux系統(tǒng)提供了一些實(shí)用的技巧,本文將詳細(xì)介紹這些技巧。

創(chuàng)新互聯(lián)專注于企業(yè)營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、丹東網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為丹東等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
1.開(kāi)啟SYN Cookie
SYN Cookie是一種可以防范DOS攻擊的技術(shù),它可以防止攻擊者利用TCP協(xié)議中的漏洞發(fā)起SYN攻擊。開(kāi)啟SYN Cookie可以減少服務(wù)器的負(fù)載,提高系統(tǒng)的安全性。在Linux系統(tǒng)中,可以使用以下命令開(kāi)啟SYN Cookie:
sysctl -w net.ipv4.tcp_syncookies=1
2.配置IPTables
IPTables可以對(duì)網(wǎng)絡(luò)流量進(jìn)行過(guò)濾和防火墻配置,通過(guò)合理配置可以防范DOS攻擊。以下是一些常見(jiàn)的IPTables配置:
– 針對(duì)ICMP泛洪攻擊,可以使用以下命令開(kāi)啟ICMP反向路徑過(guò)濾:
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
iptables -A INPUT -p icmp -m limit –limit 1/s –limit-burst 10 -j ACCEPT
iptables -A INPUT -p icmp -j DROP
– 針對(duì)SYN攻擊,可以使用以下IPTables配置:
iptables -N syn-flood
iptables -A INPUT -p tcp –syn -j syn-flood
iptables -I syn-flood -p tcp -m limit –limit 3/s –limit-burst 10 -j RETURN
iptables -A syn-flood -j DROP
3.使用DDoS防護(hù)軟件
除了參數(shù)配置,Linux系統(tǒng)還有很多可以提高防范DOS攻擊的工具和軟件,其中DDoS防護(hù)軟件是比較常用的一種。DDoS防護(hù)軟件可以實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)流量,自動(dòng)阻擋攻擊者的攻擊,并記錄攻擊日志。常見(jiàn)的DDoS防護(hù)軟件有CloudFlare、Incapsula等,可以根據(jù)需求選擇合適的軟件進(jìn)行安裝。
4.使用Apache或Nginx等Web服務(wù)器
Apache或Nginx等Web服務(wù)器都是比較出色的服務(wù)器軟件,它們?cè)谀J(rèn)的情況下已經(jīng)對(duì)DOS攻擊做了一些防范措施。比如Apache服務(wù)器會(huì)對(duì)單個(gè)IP地址的訪問(wèn)進(jìn)行限制,Nginx服務(wù)器在處理非法請(qǐng)求時(shí)會(huì)立即關(guān)閉連接等。如果需要進(jìn)一步加強(qiáng)Web服務(wù)器的防范能力,可以對(duì)服務(wù)器進(jìn)行加固和優(yōu)化。
DOS攻擊是一種網(wǎng)絡(luò)攻擊方式,可以讓目標(biāo)系統(tǒng)無(wú)法正常運(yùn)行。為了防范DOS攻擊,Linux系統(tǒng)提供了一些實(shí)用的技巧,比如開(kāi)啟SYN Cookie、配置IPTables、使用DDoS防護(hù)軟件和使用Apache或Nginx等Web服務(wù)器。通過(guò)合理的配置和選擇工具,可以讓Linux系統(tǒng)更加安全可靠,提高系統(tǒng)的可用性和穩(wěn)定性。
相關(guān)問(wèn)題拓展閱讀:
- 常見(jiàn)的DOS攻擊手段有哪些
- 關(guān)于Linux的安全問(wèn)題
常見(jiàn)的DOS攻擊手段有哪些
ICMP (Internet Control Message Protocol,Internet控制信息協(xié)議)在Internet上用于錯(cuò)誤處理和傳遞控制森敬信息。它的功能之一是與主機(jī)聯(lián)系,御咐通過(guò)發(fā)送一個(gè)”回音請(qǐng)求”(echo request)信息包看看主機(jī)是鎮(zhèn)春純否”活著”。最普通的ping程序就是這個(gè)功能。而在TCP/IP的RFC文檔中對(duì)包的更大尺寸都有嚴(yán)格限制規(guī)定,許多操作系統(tǒng)的TCP/IP協(xié)議棧都規(guī)定ICMP 包大小為64KB,且在對(duì)包的標(biāo)題頭進(jìn)行讀取之后,要根據(jù)該標(biāo)題頭里包含的信息來(lái)為有效載荷生成緩沖區(qū)?!盤(pán)ing of Death” 就是故意產(chǎn)生畸形的測(cè)試Ping(Packet Internet Groper)包,聲稱自己的尺寸超過(guò) ICMP 上限,也就是加載的尺寸超過(guò) 64KB上限,使未采取保護(hù)措施的網(wǎng)絡(luò)系統(tǒng)出現(xiàn)內(nèi)存分配錯(cuò)誤,導(dǎo)致 TCP/IP 協(xié)議棧崩潰,最終接收方蕩機(jī)
DoS是Denial of
Service的簡(jiǎn)稱,即拒絕服務(wù),造成DoS的攻擊行為被稱為DoS攻擊,其目的是使計(jì)算機(jī)或網(wǎng)絡(luò)無(wú)法提供正常的服務(wù)。最常見(jiàn)的DoS攻擊有計(jì)算機(jī)網(wǎng)絡(luò)寬帶攻擊和連通性攻擊。
DoS攻擊是指故意的攻擊
網(wǎng)絡(luò)協(xié)議
實(shí)現(xiàn)的缺陷或直接通過(guò)野蠻手段殘忍地耗盡被攻擊對(duì)象的資源,目的是讓目標(biāo)計(jì)算機(jī)或網(wǎng)絡(luò)無(wú)法提供正常的服務(wù)或資源訪問(wèn),使目標(biāo)系統(tǒng)服務(wù)系統(tǒng)停止響應(yīng)甚至崩潰,而在此攻擊中并不包括侵入目標(biāo)服務(wù)器或目標(biāo)
網(wǎng)絡(luò)設(shè)備
。這些服務(wù)資源包括
網(wǎng)絡(luò)帶寬
,文件系統(tǒng)空間容量,開(kāi)放的進(jìn)程或者允許的連接。這種攻擊會(huì)導(dǎo)致資源的匱乏,無(wú)論計(jì)算機(jī)的處理速度多快、內(nèi)存容量多大、網(wǎng)絡(luò)帶寬的速度多快都無(wú)法避免這種攻擊嘩粗帶來(lái)的后果。
常見(jiàn)類型如下:
之一種:SYN flood(SYN泛洪)
SYN泛洪是一種DOS攻擊,攻擊者向目標(biāo)系統(tǒng)發(fā)送一系列SYN請(qǐng)求,企圖使用大量服務(wù)器資源使系統(tǒng)對(duì)合法流量無(wú)響應(yīng)。
第二種:Teardrop Attacks(淚滴攻擊)
淚滴攻擊涉及亂埋鎮(zhèn)黑客向
受害液備者
的機(jī)器發(fā)送重疊的,超大的有效載荷的破碎和混亂的IP片段。由于TCP/IP碎片重新組裝的方式存在錯(cuò)誤,因此顯然會(huì)導(dǎo)致操作系統(tǒng)和服務(wù)器崩潰。所有操作系統(tǒng)的許多類型的服務(wù)器都容易受到這種類型的DOS攻擊,包括Linux。
第三種:Low-rate Denial-of-Service attacks(低速拒絕服務(wù)攻擊)
這是非常致命的DoS攻擊!低速率DoS攻擊旨在利用TCP的慢速時(shí)間動(dòng)態(tài),能夠執(zhí)行重傳超時(shí)機(jī)制以降低TCP
吞吐量
。簡(jiǎn)而言之,黑客可以通過(guò)發(fā)送高速率和密集突發(fā)來(lái)反復(fù)進(jìn)入RTO狀態(tài)來(lái)創(chuàng)建TCP溢出-同時(shí)在慢速RTO時(shí)間尺度上。受害節(jié)點(diǎn)處的TCP吞吐量將大幅降低,而黑客的
平均速率
較低,因此難以被檢測(cè)到。
第四種:Internet Control Message Protocol flood(Internet控制消息協(xié)議(ICMP)泛洪)
Internet控制消息協(xié)議是一種用于IP操作,診斷和錯(cuò)誤的無(wú)連接協(xié)議。ICMP
Flood-發(fā)送異常大量的任何類型的ICMP數(shù)據(jù)包,可能會(huì)淹沒(méi)嘗試處理每個(gè)傳入ICMP請(qǐng)求的目標(biāo)服務(wù)器,這可能導(dǎo)致拒絕-目標(biāo)服務(wù)器的服務(wù)條件。
第五種:Peer-to-peer attacks(點(diǎn)對(duì)點(diǎn)攻擊)
點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)是一種分布式網(wǎng)絡(luò),其中網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)充當(dāng)資源的供應(yīng)者和消費(fèi)者,與集中式客戶端-服務(wù)器模型相反,客戶端-服務(wù)器或操作系統(tǒng)節(jié)點(diǎn)請(qǐng)求訪問(wèn)中央服務(wù)器提供的資源。
貌似這問(wèn)題見(jiàn)到過(guò),書(shū)本上的題目吧?
報(bào)文竊聽(tīng)歸于ICMP一類,死亡之ping是典棚世歷型的DOS攻擊,ping ***.***.***.*** -t -l ?(曾經(jīng)是中美黑客大戰(zhàn)中國(guó)人海戰(zhàn)術(shù)的表現(xiàn))
淚滴攻擊利用那些在TCP/IP堆棧實(shí)現(xiàn)中信任返卜IP碎片中的包的標(biāo)題頭所包含的信息來(lái)實(shí)現(xiàn)自己的攻擊
DSYN洪水,在短鏈搜時(shí)間內(nèi)收到同一個(gè)IP的重復(fù)SYN報(bào)文進(jìn)行攻擊(大量)
所以是B D
關(guān)于Linux的安全問(wèn)題
給Grub設(shè)了密碼(通常在裝系統(tǒng)時(shí)設(shè)定缺笑銷),在第二步按”e”時(shí),
就會(huì)提示你輸入Grub密碼,輸對(duì)了才能修改伏游啟動(dòng)參數(shù).
所以給Grub設(shè)個(gè)升早密碼就好了.
(要使用resuce光盤(pán)來(lái)恢復(fù)密碼,就只有BIOS能抵抗了,其實(shí)Windows密碼不也可以用啟動(dòng)光盤(pán)輕松破譯嗎?)
一、關(guān)閉不必要的服務(wù)
Linux的服務(wù)分為兩種,一種是由inetd超級(jí)服務(wù)器來(lái)啟動(dòng)的,如:ftp、telnet等;對(duì)于這些服務(wù)來(lái)說(shuō),系統(tǒng)并不總是運(yùn)行telnetd、 ftpd等服務(wù)進(jìn)程,而是由inetd進(jìn)程監(jiān)聽(tīng)這些服務(wù)的服務(wù)端口,一旦有服務(wù)請(qǐng)求到達(dá)就啟動(dòng)對(duì)應(yīng)的服務(wù)進(jìn)程(如:telnetd等)來(lái)提供服務(wù)。另外一種是獨(dú)立的服務(wù)器,系統(tǒng)一直運(yùn)行有對(duì)應(yīng)的服務(wù)進(jìn)程。
關(guān)閉這兩種服務(wù)的方法是不同的,陵陵對(duì)于inetd啟動(dòng)的進(jìn)程:
inetd超級(jí)服務(wù)器的配置文件為/etc/inetd.conf,該文件指示了inetd應(yīng)該監(jiān)聽(tīng)哪些服務(wù)請(qǐng)求,并在請(qǐng)求時(shí)啟動(dòng)對(duì)應(yīng)的服務(wù)。因此只要通過(guò)編輯/etc/inetd.conf文件就可以實(shí)現(xiàn)關(guān)閉不需要的服務(wù),例如希望關(guān)閉pop3服務(wù),則在編輯/etc/inetd.conf文件以前文件中有如下的內(nèi)容:
pop-3 stream tcp nowait root /usr/in/tcpd ipop3d
要關(guān)閉pop3服務(wù)則在該行前添加注釋符即可:
#pop-3 stream tcp nowait root /usr/in/tcpd ipop3d
通過(guò)編輯該文件,實(shí)現(xiàn)關(guān)閉不需要的服務(wù)(例如我的系統(tǒng)我僅僅開(kāi)放了telnet和ftp服務(wù))以后,則需要重新啟動(dòng)inetd超級(jí)服務(wù)器。首先找到inetd的進(jìn)程號(hào):
# ps ax|grep inetd
358 ? S 0:00 inetd
然后重新啟動(dòng)inetd服務(wù)器:
# kill -HUP 358
最后因?yàn)閕netd.conf應(yīng)該不允許枝汪敏普通用戶讀寫(xiě),因此設(shè)置其訪問(wèn)權(quán)限為600:
chmod 600 /etc/inetd.conf
而且該文件應(yīng)該不被任何用戶修改,包括root用戶。因此為了防止用戶錯(cuò)誤的修改該文件,為該文件添加不可修改位:
chattr i /etc/inetd.conf
對(duì)于獨(dú)立服務(wù)器,則需要通過(guò)/usr/in/ntsysv命令來(lái)修改:
只需要服務(wù)前面通過(guò)空格鍵來(lái)選擇是否在系統(tǒng)啟動(dòng)時(shí)啟動(dòng)該服務(wù)猛枝就可以實(shí)現(xiàn)關(guān)閉某個(gè)服務(wù)器,如:希望系統(tǒng)關(guān)閉dhcpd服務(wù),則通過(guò)上下鍵選中該服務(wù)器,然后通過(guò)空格鍵去掉該服務(wù)前內(nèi)的星號(hào)即表示系統(tǒng)啟動(dòng)時(shí)不開(kāi)放該服務(wù)。若希望了解某個(gè)服務(wù)的具體含義,可以選擇該服務(wù)以后按F1鍵來(lái)查看該服務(wù)的含義。
設(shè)置完畢以后,只有希望打開(kāi)的服務(wù)前的內(nèi)才會(huì)有星號(hào)。然后通過(guò)Tab鍵選擇OK,按空格鍵。重新啟動(dòng)機(jī)器。
重新啟動(dòng)機(jī)器以后,可以通過(guò)下面的命令來(lái)察看系統(tǒng)打開(kāi)了哪些服務(wù),來(lái)決定是否已經(jīng)關(guān)閉了不需要的服務(wù),例如我僅僅希望提供telnet服務(wù)則:
$ netstat -ln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN
raw 0 0 0.0.0.0:1 0.0.0.0:* 7
raw 0 0 0.0.0.0:6 0.0.0.0:* 7
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
從上面的命令輸出可以看到系統(tǒng)僅僅開(kāi)放了23號(hào)端口,也就是telnet服務(wù)。
二、控制使用開(kāi)放的服務(wù)的用戶
在上面提到的/etc/inetd.conf的配置文件中,我們看到pop3服務(wù)配置一行的最后兩個(gè)字段為:
/usr/in/tcpd ipop3d
很顯然,pop3的服務(wù)器程序?yàn)閕pop3d,那么/usr/in/tcpd又是什么含義呢?這是一個(gè)稱為T(mén)cp wrapper的安全程序。該程序用來(lái)在啟動(dòng)某個(gè)服務(wù)以前查看兩個(gè)配置文件來(lái)決定該用戶是否允許使用該服務(wù)。在/etc目錄下,有兩個(gè)文件: hosts.deny hosts.allow。
通過(guò)配置這兩個(gè)文件,你可以指定哪些客戶機(jī)允許使用這些服務(wù)。配置這兩個(gè)文件是通過(guò)一種簡(jiǎn)單的訪問(wèn)控制語(yǔ)言來(lái)實(shí)現(xiàn)的,訪問(wèn)控制語(yǔ)句的基本格式為: 程序名列表,主機(jī)名/IP地址列表。
程序名列表指定一個(gè)或者多個(gè)提供相應(yīng)服務(wù)的程序的名字,名字之間用逗號(hào)或者空格分隔,可以在inetd.conf文件里查看提供相應(yīng)服務(wù)的程序名:如上面的文件示例中,pop所在行的最后一項(xiàng)就是所需的程序名:ipop3d。
主機(jī)名/IP地址列表指定允許或者禁止使用該服務(wù)的一個(gè)或者多個(gè)主機(jī)的標(biāo)識(shí),主機(jī)名之間用逗號(hào)或空格分隔。程序名和主機(jī)地址都可以使用通配符,實(shí)現(xiàn)方便的指定多項(xiàng)服務(wù)和多個(gè)主機(jī)。 當(dāng)服務(wù)請(qǐng)求到達(dá)服務(wù)器時(shí),訪問(wèn)控制軟件就按照下列順序查詢這兩個(gè)文件,直到遇到一個(gè)匹配為止:
1. 當(dāng)在/etc/hosts.allow里面有一項(xiàng)與請(qǐng)求服務(wù)的主機(jī)地址項(xiàng)匹配,那么就允許該主機(jī)獲取該服務(wù)
2. 否則,如果在/etc/hosts.deny里面有一項(xiàng)與請(qǐng)求服務(wù)的主機(jī)地址項(xiàng)匹配,就禁止該主機(jī)使用該項(xiàng)服務(wù)
3. 若均沒(méi)有匹配,則允許使用該服務(wù)。若相應(yīng)的配置文件不存在,訪問(wèn)控制軟件就認(rèn)為是一個(gè)空文件,所以可以通過(guò)刪除或者移走配置文件實(shí)現(xiàn)對(duì)所有主機(jī)關(guān)閉所有服務(wù)。
在文件中,空白行或者以#開(kāi)頭的行被忽略,你可以通過(guò)在行前加 # 實(shí) 現(xiàn)注釋功能。Linux提供了下面靈活的方式指定進(jìn)程或者主機(jī)列表:
1. 一個(gè)以”.”起始的域名串,如 .amms.ac.cn 那么
www.amms.ac.cn
就和這一項(xiàng)匹配成功
2. 以.結(jié)尾的IP串如 202.37.152. 那么IP地址包括202.37.152.的主機(jī)都與這一項(xiàng)匹配
3. 格式為n.n.n.n/m.m.m.m表示網(wǎng)絡(luò)/掩碼,如果請(qǐng)求服務(wù)的主機(jī)的IP地址與掩碼的位與的結(jié)果等于n.n.n.n 那么該主機(jī)與該項(xiàng)匹配。
4. ALL表示匹配所有可能性
5. EXPECT表示除去后面所定義的主機(jī)。如:list_1 EXCEPT list_2 表示list_1主機(jī)列表中除去List_2所列 出的主機(jī)
6. LOCAL表示匹配所有主機(jī)名中不包含.的主機(jī)
上面的幾種方式只是Linux提供的方式中的幾種,但是對(duì)于我們的一般應(yīng)用來(lái)說(shuō)是足夠了。我們通過(guò)舉幾個(gè)例子來(lái)說(shuō)明這個(gè)問(wèn)題:
例一:我們只希望允許同一個(gè)局域網(wǎng)的機(jī)器使用服務(wù)器的ftp功能,而禁止上面的ftp服務(wù)請(qǐng)求,本地局域網(wǎng)由 202.39.154. 、202.39.153. 和202.39.152. 三個(gè)網(wǎng)段組成。在hosts.deny文件中,我們定義禁止所有機(jī)器請(qǐng)求所有服務(wù): ALL:ALL 在hosts.allow文件中,我們定義只允許局域網(wǎng)訪問(wèn)ftp功能:
in.ftpd: 202.39..39.153. 202.39.152.
這樣,當(dāng)非局域網(wǎng)的機(jī)器請(qǐng)求ftp服務(wù)時(shí),就會(huì)被拒絕。而局域網(wǎng)的機(jī)器可以使用ftp服務(wù)。
然后重新啟動(dòng)你的 inetd進(jìn)程:
/etc/rc.d/init.d/inet restart
但是hosts.deny|allow文件只控制/etc/inetd.conf文件中包含的服務(wù)的訪問(wèn)這些服務(wù)有/usr/bin/tcpd管理,監(jiān)聽(tīng)接入的網(wǎng)絡(luò)請(qǐng)求,然后與在hosts.allow和hosts.deny的中的服務(wù)比較,然后做出允許或拒絕的決定。
最后因?yàn)閔osts.allow|hosts.deny應(yīng)該不允許普通用戶讀寫(xiě),因此設(shè)置其訪問(wèn)權(quán)限為600:
chmod 600 /etc/hosts.*
并且該文件應(yīng)該不被任何用戶修改,包括root用戶。因此為了防止用戶錯(cuò)誤的修改該文件,為該文件添加不可修改位:
chattr i /etc/hosts.*
三、”/etc/exports”文件設(shè)置
如果通過(guò)NFS把文件共享出來(lái),那么一定要配置”/etc/exports”文件,使得訪問(wèn)限制盡可能的嚴(yán)。這就是說(shuō),不要用通配符,不允許對(duì)根目錄有寫(xiě)權(quán)限,而且盡可能只給只讀權(quán)限。編輯exports文件(vi /etc/exports)加入:
例如:
/dir/to/export host1.mydomain.com(ro,root_squash)
/dir/to/export host2.mydomain.com(ro,root_squash)
“/dir/to/export”是你想共享出來(lái)的目錄,host.mydomain.com是允許訪問(wèn)這個(gè)目錄的計(jì)算機(jī)。
代表只讀,代表不允許對(duì)根目錄進(jìn)行寫(xiě)操作。使這些改變生效,你還要運(yùn)行 “/usr/in/exportfs -a”命令。
注意:在服務(wù)器上裝NFS服務(wù)是會(huì)有安全隱患的,就我個(gè)人而言,不建議你使用NFS。
四、禁止使用控制臺(tái)程序
一個(gè)最簡(jiǎn)單而且最常用的保證系統(tǒng)安全的方法就是禁止使用所有的控制臺(tái)程序,如:shutdown和halt??梢赃\(yùn)行下面的命令來(lái)實(shí)現(xiàn):
# rm -f /etc/security/console.apps/servicename
這里servicename是你要禁止的控制臺(tái)程序名。除非你使用xdm,否則不要把xserver文件刪掉,如果這樣除了root之外,沒(méi)有人可以啟動(dòng) X服務(wù)器了。(如果使用xdm啟動(dòng)X服務(wù)器,這時(shí)root是唯一需要啟動(dòng)X服務(wù)器的用戶,這才有必要把xserver文件刪掉)。例如:
# rm -f /etc/security/console.apps/halt
# rm -f /etc/security/console.apps/poweroff
# rm -f /etc/security/console.apps/reboot
# rm -f /etc/security/console.apps/shutdown
# rm -f /etc/security/console.apps/xserver (如果刪除,只有root可以啟動(dòng)X).
這些命令就可以禁止所有的控制臺(tái)程序:halt、poweroff、reboot和shutdown。記住,只有裝了Xwindow,刪除xerver文件才會(huì)有效果。
五、”/etc/aliases”文件
aliases文件可能會(huì)造成安全隱患。例如:很多的軟件產(chǎn)商都把 “decode”這個(gè)別名放在aliases文件里。這樣做的目的是為了方便通過(guò)email傳送二進(jìn)制文件。在發(fā)送郵件的時(shí)候,用戶把二進(jìn)制文件用 “uuencode”轉(zhuǎn)成ASCII文件,然后把結(jié)果發(fā)給接收端的”decode”。由這個(gè)別名讓郵件信息通過(guò)”/usr/bin/uuencode”程序把二進(jìn)制文件重新轉(zhuǎn)換成ASCII文件。如果允許”decode”出現(xiàn)在aliases文件中,可以想象將會(huì)有什么樣的安全隱患。
把定義”decode”這個(gè)別名的行從aliases文件中刪除。同樣地,每一個(gè)會(huì)運(yùn)行程序的別名都要好好查看一下,很有可能要把它們刪除掉。要使改動(dòng)生效,還必須運(yùn)行:
# /usr/bin/newaliases
編輯aliases文件(vi /etc/aliases),刪除或注釋掉下面這些行:
# Basic system aliases — these MUST be present.
MAILER-DAEMON: postmaster
postmaster: root
# General redirections for pseudo accounts.
bin: root
daemon: root
#games: root
#ingres: root
nobody: root
#system: root
#toor: root
#uucp: root
# Well-known aliases.
#manager: root
#dumper: root
#operator: root
# trap decode to catch security attacks
#decode: root
# Person who should get roots mail
#root: marc
最后記得運(yùn)行”/usr/bin/newaliases”使改變生效。
六、使系統(tǒng)對(duì)ping沒(méi)有反應(yīng)
防止你的系統(tǒng)對(duì)ping請(qǐng)求做出反應(yīng),對(duì)于網(wǎng)絡(luò)安全很有好處,因?yàn)闆](méi)人能夠ping你的服務(wù)器并得到任何反應(yīng)。TCP/IP協(xié)議本身有很多的弱點(diǎn),黑客可以利用一些技術(shù),把傳輸正常數(shù)據(jù)包的通道用來(lái)偷偷地傳送數(shù)據(jù)。使你的系統(tǒng)對(duì)ping請(qǐng)求沒(méi)有反應(yīng)可以把這個(gè)危險(xiǎn)減到最小。用下面的命令:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
運(yùn)行完這個(gè)命令后,系統(tǒng)對(duì)ping就沒(méi)有反應(yīng)了??梢园堰@一行加到”/etc/rc.d/rc.local”文件中去,這樣當(dāng)系統(tǒng)重新啟動(dòng)的時(shí)候,該命令就會(huì)自動(dòng)運(yùn)行。對(duì)ping命令沒(méi)有反應(yīng),至少可以把絕大多數(shù)的黑客排除到系統(tǒng)之外,因?yàn)楹诳筒豢赡苤滥愕姆?wù)器在哪里。重新恢復(fù)對(duì)ping的響應(yīng),可以用下面的命令:
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all”
七、不要顯示系統(tǒng)提示信息
如果你不想讓遠(yuǎn)程登錄的用戶看到系統(tǒng)的提示信息,你可以改變”/etc/inetd.conf”文件中的telnet設(shè)置:
telnet stream tcp nowait root /usr/in/tcpd in.telnetd -h
在末尾加上”-h”參數(shù)可以讓daemon不顯示任何系統(tǒng)信息,只顯示登錄提示。當(dāng)然,只有在服務(wù)器上裝了telnet服務(wù)器才有這樣做的必要。
八、”/etc/host.conf”文件
Linux用解析器(resolver)庫(kù)把主機(jī)名翻譯成IP地址?!?etc/host.conf”文件定義主機(jī)名是怎樣解析的。”/etc/host.conf”文件中的項(xiàng)告訴解析器庫(kù)用什么服務(wù),以什么順序解析主機(jī)名。
編輯”host.conf”文件(vi /etc/host.conf)加入下面這些行:
# Lookup names via DNS first then fall back to /etc/hosts.
order bind,hosts
# We have machines with multiple IP addresses.
multi on
# Check for IP address spoofing.
nospoof on
order選項(xiàng)指明的是選擇服務(wù)的順序。上面”order bind, hosts”說(shuō)的是解析器庫(kù)解析文件名的時(shí)候先查詢域名服務(wù)器,然后再查看”/etc/hosts”文件。因?yàn)樾阅芎桶踩系脑?,更好將解析器?kù)的查找順序設(shè)成先查域名服務(wù)器(bind)。當(dāng)然也要先安裝了DNS/BIND軟件,否則這樣配置根本沒(méi)有任何作用。
multi選項(xiàng)決定在”/etc/hosts”文件中出現(xiàn)的主機(jī)能不能有多個(gè)IP地址(多個(gè)網(wǎng)絡(luò)界面)。具有多個(gè)IP網(wǎng)絡(luò)界面的主機(jī)被稱為具有多個(gè)網(wǎng)絡(luò)界面(multiomed),因?yàn)橥瑫r(shí)有多個(gè)IP地址也就意味著這臺(tái)主機(jī)有多個(gè)網(wǎng)絡(luò)界面。例如:網(wǎng)關(guān)服務(wù)器就有多個(gè)IP地址,必須把這個(gè)選項(xiàng)設(shè)成ON。
nospoof選項(xiàng)指明不允許IP偽裝。IP偽裝是把自己偽裝成別的計(jì)算機(jī)去欺騙其它的計(jì)算機(jī),獲得它的信任。這種攻擊方法把自己偽裝成別的服務(wù)器,并且與其它客戶機(jī)、服務(wù)器和大型數(shù)據(jù)存儲(chǔ)系統(tǒng)建立網(wǎng)絡(luò)連接或其它類型的網(wǎng)絡(luò)活動(dòng)。不管對(duì)任何類型的服務(wù)器,這個(gè)選項(xiàng)都要設(shè)成ON。
九、防止源路由
路由和路由協(xié)議會(huì)導(dǎo)致一些問(wèn)題。IP源路徑路由(IP source routing),也就是IP包包含到達(dá)底目的地址的詳細(xì)路徑信息,是非常危險(xiǎn)的,因?yàn)楦鶕?jù)RFC 1122規(guī)定目的主機(jī)必須按原路徑返回這樣的IP包。如果黑客能夠偽造原路徑路由的信息包,那么它就能截取返回的信息包,并且欺騙你的計(jì)算機(jī),讓它覺(jué)得正在和它交換信息的是可以信任的主機(jī)。我強(qiáng)烈建議你禁止IP原路徑路由以避免這個(gè)安全漏洞。
用下面的命令在你的服務(wù)器上禁止IP原路徑路由:
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $f
done
把上面的命令加到”/etc/rc.d/rc.local”文件中去,你就不用在系統(tǒng)重新啟動(dòng)之后再把這些命令敲一遍。注意,上面的命令將禁止所有的網(wǎng)絡(luò)界面(lo、ethN、pppN,等等)的源路徑路由包。
十、使TCP SYN Cookie保護(hù)生效
“SYN Attack”是一種拒絕服務(wù)(DoS)的攻擊方式,會(huì)消耗掉系統(tǒng)中的所有資源,迫使服務(wù)器重新啟動(dòng)。拒絕服務(wù)(這種攻擊方式用巨大的信息流來(lái)消耗系統(tǒng)的資源,以至于服務(wù)器不能夠響應(yīng)正常的連接請(qǐng)求)是很容易被黑客利用的。在2.1系列的內(nèi)核中,”syn cookie”只是一個(gè)可選項(xiàng),并沒(méi)有使其生效。想要使其生效必須用下面的命令:
# echo 1 > /proc/sys/net/ipv4/tcp_syncookies
把這個(gè)命令加入”/etc/rc.d/rc.local”文件中,等下次系統(tǒng)重新啟動(dòng)的時(shí)候就不必重新敲一遍了。如果打算安裝IPCHAINS防火墻,你就沒(méi)有必要用這個(gè)命令,因?yàn)樗呀?jīng)包含在防火墻的腳本文件里了。
十一、特殊的帳號(hào)
禁止中不必要的預(yù)置帳號(hào)(每次升級(jí)或安裝完都要檢查一下)。Linux系統(tǒng)中就提供這樣一些你可能不需要的預(yù)置帳號(hào)。如果確實(shí)不需要這些帳號(hào),就把它們刪掉。系統(tǒng)中有越多的帳號(hào),就越容易受到攻擊。
我們假定你已經(jīng)在系統(tǒng)中使用shadow口令。如果不是這樣,更好在系統(tǒng)中加上shadow口令的支持,因?yàn)檫@樣系統(tǒng)會(huì)更安全。如果你是按照上一章介紹的方法安裝服務(wù)器,那么在”安全驗(yàn)證配置”這一步就已經(jīng)選上”Enable Shaow Passwords”這個(gè)選項(xiàng)了。
在系統(tǒng)中刪除一個(gè)用戶可以用這個(gè)命令:
# userdel username
在系統(tǒng)中刪除一個(gè)組可以用這個(gè)命令:
# groupdel username
之一步 用下面的命令刪除一些不必要的用戶:
# userdel adm
# userdel lp
# userdel sync
# userdel shutdown
# userdel halt
# userdel news
# userdel uucp
# userdel operator
# userdel games (如果不用X Window服務(wù)器,可以刪除這個(gè)用戶)
# userdel gopher
# userdel ftp (如果沒(méi)安裝匿名ftp服務(wù)器,可以刪除這個(gè)用戶)
第二步 輸入下面的命令刪除一些不必要的組:
# groupdel adm
# groupdel lp
# groupdel news
# groupdel uucp
# groupdel games (delete this group if you don use X Window Server).
# groupdel dip
# groupdel pppusers
# groupdel popusers (delete this group if you don use pop server for email).
# groupdel slipusers
第三步
“不允許改變”位可以用來(lái)保護(hù)文件使其不被意外地刪除或重寫(xiě),也可以防止有些人創(chuàng)建這個(gè)文件的符號(hào)連接。刪除”/etc/passwd”、 “/etc/shadow”、”/etc/group”或”/etc/gshadow”都是黑客的攻擊方法。給口令文件和組文件設(shè)置不可改變位,可以用下面的命令:
# chattr i /etc/passwd
# chattr i /etc/shadow
# chattr i /etc/group
# chattr i /etc/gshadow
注意:如果將來(lái)要在口令或組文件中增加或刪除用戶,就必須先清除這些文件的不可改變位,否則就不能做任何改變。如果沒(méi)有清除這些文件的不可改變位,安裝那些會(huì)自動(dòng)在口令文件和組文件中加入新用戶的rpm軟件包的時(shí)候,在安裝過(guò)程中就會(huì)出現(xiàn)出錯(cuò)的提示。
十二、防止任何人都可以用su命令成為root
如果不想任何人都可以用”su”命令成為root或只讓某些用戶有權(quán)使用”su”命令,那么在”/etc/pam.d/su”文件中加入下面兩行。建議盡量限制用戶通過(guò)”su”命令成為root。
之一步
編輯su文件(vi /etc/pam.d/su)在文件的頭部加入下面兩行:
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
加入這兩行之后,”/etc/pam.d/su”文件變?yōu)椋?/p>
#%PAM-1.0
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
auth required /lib/security/pam_pwdb.so shadow nullok
account required /lib/security/pam_pwdb.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_pwdb.so shadow use_authtok nullok
session required /lib/security/pam_pwdb.so
session optional /lib/security/pam_xauth.so
這兩行的意思是只有”wheel”組的成員才能用su命令成為root。注意,”wheel”組是系統(tǒng)中用于這個(gè)目的的特殊帳號(hào)。不能用別的組名。
第二步
在”/etc/pam.d/su”配置文件中定義有”wheel”組,現(xiàn)在介紹一下怎樣讓一些用戶可以用”su”命令成為”root”。下面是一個(gè)例子,讓admin用戶成為”wheel”組的成員,這樣就可以用”su”命令成為”root”:
# usermod -G10 admin
“G”是表示用戶所在的其它組?!?0″是”wheel”組的ID值,”admin”是我們加到”wheel”組的用戶。用同樣的命令可以讓其他的用戶可以用su命令成為root。
十三、 把rpm程序轉(zhuǎn)移到一個(gè)安全的地方,并改變默認(rèn)的訪問(wèn)許可
一旦在上用rpm命令安裝完所有需要的軟件,更好把rpm程序轉(zhuǎn)移到一個(gè)安全的地方,如:軟盤(pán)或其它你認(rèn)為安全的地方。因?yàn)槿绻腥巳肭至四愕姆?wù)器,他就不能用rpm命令安裝那些有害的軟件。當(dāng)然,如果將來(lái)要用rpm安裝新的軟件,你就要把rpm程序拷回原來(lái)的目錄。把rpm程序移到軟盤(pán)上,用下面的命令:
# mount /dev/fd0 /mnt/floppy/
# mv /bin/rpm /mnt/floppy/
# umount /mnt/floppy
注意:千萬(wàn)不要把rpm程序從系統(tǒng)中卸載掉,否則以后就不能重新安裝它,因?yàn)榘惭brpm程序或其它軟件包本身就要用rpm命令。
還有一點(diǎn)要注意的是,把rpm命令的訪問(wèn)許可從默認(rèn)的755改成700。這樣非root用戶就不能使用rpm命令了。特別是考慮到萬(wàn)一在安裝完新軟件之后忘了把rpm程序移到一個(gè)安全的地方,這樣做就更有必要了。
改變”/bin/rpm”默認(rèn)的訪問(wèn)權(quán)限,用下面這個(gè)命令:
# chmod 700 /bin/rpm
十四、登錄shell
為了方便重復(fù)輸入很長(zhǎng)的命令,bash shell可以在”~/.bash_history”文件(”~/”是家目錄,每個(gè)用戶都是不一樣的)中存500個(gè)曾經(jīng)輸入過(guò)的命令。每一個(gè)有自己帳號(hào)的用戶,在自己的家目錄中,都會(huì)有”.bash_history”文件??赡軙?huì)有這種情況,用戶在不該輸入口令的地方輸入了口令,而輸入的口令會(huì)在 “.bash_history”文件中保存下來(lái)。而且”.bash_history”文件越大這種可能性也越大。
在”/etc/profile”文件中HISTFILESIZE和HISTSIZE這兩行決定了系統(tǒng)中所有用戶的 “.bash_history”文件可以保存多少命令。我建議把”/etc/profile”文件中的HISTFILESIZE和HISTSIZE都設(shè)成一個(gè)比較小的值,如:20。
編輯profile文件(vi /etc/profile),把這些行改成:
HISTFILESIZE=20
HISTSIZE=20
這樣每個(gè)用戶家目錄下的”.bash_history”就最多只能存20個(gè)命令。如果黑客試圖在用戶的”~/.bash_history”文件中發(fā)現(xiàn)一些口令,他就沒(méi)有什么機(jī)會(huì)了。
十五、改變”/etc/rc.d/init.d/”目錄下的腳本文件的訪問(wèn)許可
改變啟動(dòng)和停止daemon的腳本文件的權(quán)限。
# chmod -R 700 /etc/rc.d/init.d/*
這樣只有root可以讀、寫(xiě)和執(zhí)行這個(gè)目錄下的腳本。我想一般用戶沒(méi)有什么必要知道腳本文件的內(nèi)容。
注意:如果你安裝或升級(jí)了一個(gè)程序,要用到”/etc/rc.d/init.d/”中system V腳本,不要忘記再檢查一下改變和檢查這個(gè)腳本文件的許可。
安全是針對(duì)性枯槐陪很強(qiáng)的問(wèn)題,根據(jù)linux版本不同的。
比明兄如 suse 是默認(rèn)配沒(méi)蠢置也是安全性高的。
關(guān)于linux dos攻擊防范的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開(kāi)發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)成都老牌IDC服務(wù)商,專注四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,可選線路電信、移動(dòng)、聯(lián)通等。
網(wǎng)站標(biāo)題:Linux系統(tǒng)防范DOS攻擊的實(shí)用技巧(linuxdos攻擊防范)
當(dāng)前地址:http://m.fisionsoft.com.cn/article/ccocppe.html


咨詢
建站咨詢
