国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關(guān)注微信公眾號(hào)

代理服務(wù)器的架設(shè)與維護(hù)(二)
2007-01-24   


五、安全保障

  物理安全的保護(hù)

  供電:該服務(wù)器放在我校網(wǎng)絡(luò)中心主機(jī)房,有雙路供電。UPS可以保證在沒(méi)有市電供應(yīng)下5小時(shí)不中斷服務(wù)。

  物理隔離:網(wǎng)絡(luò)中心24小時(shí)有專人值班,進(jìn)入主機(jī)房需要登記。

  服務(wù)器軟件安全保護(hù)

  操作系統(tǒng)選用了FreeBSD。Freebsd本身幾乎沒(méi)有任何安全漏洞。根據(jù)服務(wù)最少化原則,出國(guó)代理上目前使用的服務(wù)有ssh ntp socks5 squid幾種。其中ssh沒(méi)有使用freebsd自帶的openssh,而是使用了ssh.com出的非商業(yè)版的ssh服務(wù)器軟件。這個(gè)版本的ssh服務(wù)器軟件相對(duì)openssh有更安全效率更高的優(yōu)勢(shì)。而且對(duì)于非商業(yè)應(yīng)用是免費(fèi)的。 服務(wù)器通過(guò)ntp服務(wù)與某網(wǎng)絡(luò)時(shí)間服務(wù)器進(jìn)行時(shí)間同步,這是為了保證日志文件記錄事件發(fā)生時(shí)間的準(zhǔn)確性。另2個(gè)為必須提供的代理服務(wù)。其余服務(wù)沒(méi)有打開(kāi)。執(zhí)行ps命令確認(rèn)沒(méi)有任何多余進(jìn)程。

  對(duì)SYN-Flood及掃描的防護(hù)

  SYN Flood是當(dāng)前最流行的DoS(拒絕服務(wù)攻擊)與DdoS(分布式拒絕服務(wù)攻擊)的方式之一,這是一種利用TCP協(xié)議缺陷,發(fā)送大量偽造的TCP連接請(qǐng)求,從而使得被攻擊方資源耗盡(CPU滿負(fù)荷或內(nèi)存不足)的攻擊方式。

  [img:01091db545]http://www.frontfree.net/articles/pages/0000000597/tcpconnection.gif[/img:01091db545]

  TCP協(xié)議的三次握手過(guò)程是這樣的:

  首先,請(qǐng)求端(客戶端)發(fā)送一個(gè)包含SYN標(biāo)志的TCP報(bào)文,SYN即同步(Synchronize),同步報(bào)文會(huì)指明客戶端使用的端口以及TCP連接的初始序號(hào);
  第二步,服務(wù)器在收到客戶端的SYN報(bào)文后,將返回一個(gè)SYN+ACK的報(bào)文,表示客戶端的請(qǐng)求被接受,同時(shí)TCP序號(hào)被加一,ACK即確認(rèn)(Acknowledgement)。
  第三步,客戶端也返回一個(gè)確認(rèn)報(bào)文ACK給服務(wù)器端,同樣TCP序列號(hào)被加一,到此一個(gè)TCP連接完成。假設(shè)一個(gè)用戶向服務(wù)器發(fā)送了SYN報(bào)文后突然死機(jī)或掉線,那么服務(wù)器在發(fā)出SYN+ACK應(yīng)答報(bào)文后是無(wú)法收到客戶端的ACK報(bào)文的(第三次握手無(wú)法完成),這種情況下服務(wù)器端一般會(huì)重試(再次發(fā)送SYN+ACK給客戶端)并等待一段時(shí)間后丟棄這個(gè)未完成的連接,這段時(shí)間的長(zhǎng)度我們稱為SYN Timeout,一般來(lái)說(shuō)這個(gè)時(shí)間是分鐘的數(shù)量級(jí)(大約為30秒-2分鐘);一個(gè)用戶出現(xiàn)異常導(dǎo)致服務(wù)器的一個(gè)線程等待1分鐘并不是什么很大的問(wèn)題,但如果有一個(gè)惡意的攻擊者大量模擬這種情況,服務(wù)器端將為了維護(hù)一個(gè)非常大的半連接列表而消耗非常多的資源----數(shù)以萬(wàn)計(jì)的半連接,即使是簡(jiǎn)單的保存并遍歷也會(huì)消耗非常多的CPU時(shí)間和內(nèi)存,何況還要不斷對(duì)這個(gè)列表中的IP進(jìn)行SYN+ACK的重試。
  實(shí)際上如果服務(wù)器的TCP/IP棧不夠強(qiáng)大,最后的結(jié)果往往是堆棧溢出崩潰。即使服務(wù)器端的系統(tǒng)足夠強(qiáng)大,服務(wù)器端也將忙于處理攻擊者偽造的TCP連接請(qǐng)求而無(wú)暇理睬客戶的正常請(qǐng)求(畢竟客戶端的正常請(qǐng)求比率非常之小),從而造成DoS。

  在freebsd的可以調(diào)整的內(nèi)核參數(shù)中有下面2項(xiàng):net.inet.tcp.blackhole和net.inet.udp.blackhole。相應(yīng)的描述如下:The blackhole sysctl(8) MIB is used to control system behaviour when connection requests are received on TCP or UDP ports where there is no socket listening. Normal behaviour, when a TCP SYN segment is received on a port where there is no socket accepting connections, is for the system to return a RST segment, and drop the connection. The connecting system will see this as a `Connection reset by peer`. By setting the TCP blackhole MIB to a numeric value of one, the incoming SYN segment is merely dropped, and no RST is sent, making the system appear as a blackhole. By setting the MIB value to two, any segment arriving on a closed port is dropped without returning a RST. This provides some degree of protection against stealth port scans.In the UDP instance, enabling blackhole behaviour turns off the sending of an ICMP port unreachable message in response to a UDP datagram which arrives on a port where there is no socket listening. It must be noted that this behaviour will prevent remote systems from running traceroute(8) to a system. The blackhole behaviour is useful to slow down anyone who is port scanning a system, attempting to detect vulnerable services on a system. It could potentially also slow down someone who is attempting a denial of service attack.

  根據(jù)上面描述可以將net.inet.tcp.blackhole和net.inet.udp.blackhole設(shè)置為2和1,這樣將防止半開(kāi)式的端口掃描,并且能對(duì)syn-flood有初步的防護(hù)。

  在內(nèi)核的配置文件中有options TCP_DROP_SYNFIN這個(gè)選項(xiàng)。通過(guò)加入這個(gè)參數(shù),可以防止通過(guò)TCP/IP堆棧對(duì)操作系統(tǒng)進(jìn)行識(shí)別。可以將安全問(wèn)題中的”information gathering”解決 。
六、優(yōu)化

  內(nèi)核的優(yōu)化

  FreeBSD有很豐富的可以自定義的內(nèi)核的參數(shù)。默認(rèn)的內(nèi)核為了保證通用性和穩(wěn)定性,有大量?jī)?yōu)化性能的參數(shù)沒(méi)有加入。

  我校Chinanet代理服務(wù)器操作系統(tǒng)內(nèi)核部分優(yōu)化參數(shù)如下:

  options MAXDSIZ=`(1024*1024*1024)`
  options MAXSSIZ=`(1024*1024*1024)`
  options DFLDSIZ=`(1024*1024*1024)`
  options CPU_ENABLE_SSE
  options PANIC_REBOOT_WAIT_TIME=16

  前三行是對(duì)freebsd下運(yùn)行的應(yīng)用程序可以使用的最大的內(nèi)存資源作限制,默認(rèn)為128M。由于出國(guó)代理服務(wù)器軟件squid占用內(nèi)存巨大,默認(rèn)的配置顯然不能滿足要求,所以要使用自定義的配置。這個(gè)配置允許單一進(jìn)程占用1G的內(nèi)存資源。

  第四行是打開(kāi)對(duì)SSE/MMX2指令集的支持。通過(guò)加入這一參數(shù),出國(guó)代理的性能提高了約1%。即單位時(shí)間內(nèi)吞吐量增加了1%。

  第5行是在內(nèi)核發(fā)生嚴(yán)重錯(cuò)誤的時(shí)候自動(dòng)重新啟動(dòng)的時(shí)間。這個(gè)參數(shù)保證了服務(wù)器出現(xiàn)嚴(yán)重的軟件錯(cuò)誤后能自動(dòng)恢復(fù)。

  Cache policy
  在本文的第三部分中提到了出國(guó)代理使用的cache policy。

  cache_replacement_policy heap LFUDA cache替換策略
  memory_replacement_policy heap LRU 內(nèi)存替換策略

  HP公司曾經(jīng)對(duì)squid作過(guò)詳細(xì)的測(cè)試。

  參考該文檔,對(duì)我校出國(guó)代理作了相應(yīng)的調(diào)整。默認(rèn)的cache_replacement_policy 和memory_replacement_policy都是LRU。這個(gè)算法用在cache上效率相對(duì)較低。經(jīng)過(guò)實(shí)際測(cè)試,使用LFUDA(Least Frequently Used with Dynamic Aging)作為cache replacement policy,cache的命中率最高。使用heap LRU作為memory replacement policy,memory cache命中率最高。使用工具測(cè)得加入出國(guó)代理后,對(duì)使用代理的用戶來(lái)說(shuō),Chinanet的出口帶寬達(dá)到了5-7M,已經(jīng)遠(yuǎn)遠(yuǎn)高于4M的實(shí)際帶寬。確實(shí)起到了cache的作用。

  對(duì)于磁盤(pán)IO的優(yōu)化

  前文提到freebsd的磁盤(pán)性能不佳。除使用raid技術(shù)之外,squid本身有unlinkd 和diskd兩個(gè)子進(jìn)程來(lái)專門(mén)負(fù)責(zé)對(duì)磁盤(pán)作操作。配置文件中的cache_dir ufs /usr/local/squid/cache 25000 16 256 這行指定了squid可以使用25G的硬盤(pán)空間來(lái)作為緩存。Ufs指定了使用unlinkd作為對(duì)磁盤(pán)做操作的進(jìn)程。Unlinkd只負(fù)責(zé)刪除文件的操作,diskd負(fù)責(zé)所有的操作。Squid的相應(yīng)文檔上建議使用diskd。但是經(jīng)過(guò)測(cè)試,使用diskd雖然能提高系統(tǒng)的性能,但是會(huì)使squid進(jìn)程變得不穩(wěn)定。基于保證穩(wěn)定性的考慮,選擇使用unlinkd作為對(duì)磁盤(pán)操作的進(jìn)程。

  Cache peer

  Squid支持多臺(tái)服務(wù)器進(jìn)行協(xié)同工作,組成cache peer。美國(guó)的National Laboratory for Applied Network Research、UCSD、The National Science Foundation建立了相應(yīng)的cache peer組織(http://www.ircache.net)。我校Chinanet代理服務(wù)器將該組織中的2臺(tái)服務(wù)器設(shè)置為slibing模式來(lái)調(diào)用,將我校另外一臺(tái)cernet線路上的服務(wù)器設(shè)置為域名以.edu.cn結(jié)尾的parent模式。訪問(wèn)過(guò)程是這樣的:如果客戶端提交來(lái)的請(qǐng)求是以.edu.cn結(jié)尾的,首先查詢cache中是否有,如果沒(méi)有則請(qǐng)求cernet線路上的服務(wù)器去讀取相應(yīng)資源。

  對(duì)于其他的域名,則首先查詢本身的cache,如果沒(méi)有則查詢slibing的cache,如果還沒(méi)有,則自己主動(dòng)去獲取該資源。與ircache的協(xié)調(diào)使用ICP(Internet Cache Protoclol),與cernet線路服務(wù)器協(xié)調(diào)使用HTCP(Hypertext Caching Protocol)。對(duì)ICP的描述在RFC2186、RFC2187,對(duì)HTCP的描述在http://icp.ircache.net/htcp.txt。HTCP更有利于提高cache的性能,但是對(duì)系統(tǒng)的配置有要求,ICP相對(duì)簡(jiǎn)單。所以,選擇使用ICP與ircache的服務(wù)器協(xié)同工作,使用HTCP與學(xué)校cernet服務(wù)器協(xié)同工作。

熱詞搜索:

上一篇:代理服務(wù)器的架設(shè)與維護(hù)(一)
下一篇:簡(jiǎn)單、輕松的HP ProLiant刀片服務(wù)器管理

分享到: 收藏
主站蜘蛛池模板: 泽州县| 韶关市| 栾川县| 宿州市| 平陆县| 四平市| 苏尼特左旗| 迁安市| 济宁市| 新巴尔虎右旗| 仪陇县| 安福县| 枝江市| 凤台县| 和田县| 河池市| 禄丰县| 平乡县| 莱芜市| 巴马| 南和县| 蒙城县| 璧山县| 沧州市| 临海市| 平果县| 株洲市| 新余市| 阜新市| 射阳县| 民和| 彝良县| 通州市| 阳春市| 桂平市| 威宁| 麦盖提县| 宁强县| 张家港市| 舟曲县| 锡林郭勒盟|