服務(wù)器最高安全防御策略選擇與差異
隨著linx/bsd技術(shù)的普及與發(fā)展,大家都認(rèn)識(shí)到了開源系統(tǒng)所帶來的種種好處,比如免費(fèi),可定制化,高性能,高可擴(kuò)展,以及我們今天要研究的安全--一個(gè)永恒的話題,好了廢話不說了切入正題!
個(gè)人認(rèn)為如今系統(tǒng)的安全防御不應(yīng)該是放在某個(gè)層面或者某個(gè)點(diǎn)上,應(yīng)該從企業(yè)網(wǎng)站構(gòu)架,建設(shè)初期起就應(yīng)該有一個(gè)整體的規(guī)劃,全局的部署,要放防御機(jī)制從物理層配置到web應(yīng)用層最后到達(dá)系統(tǒng)內(nèi)核層,雖然沒必要搞的像國(guó)家安全部門一樣,但是最少我們可以利用現(xiàn)有的,開源的,免費(fèi)的,經(jīng)過測(cè)試的安全工具來加強(qiáng)我們的安全,當(dāng)然為了性能,成本,我們可以暫時(shí)的關(guān)閉一些安全防御功能,但是不能刪除,在遇到黑客攻擊時(shí)我們要開啟?。∠旅嫖覀兙蛠砜纯淳唧w有那些層面需要我們部署怎么樣的安全機(jī)制:
一、物理層防御
1,購(gòu)買的服務(wù)器,一定要是品牌dell,hp.ibm服務(wù)器,具有多電源,多磁盤RAID,機(jī)箱保護(hù)(打開報(bào)警,電源開關(guān)鎖門鎖),當(dāng)然為了數(shù)據(jù)安全如有磁盤加密芯片最好。
2,最好選擇光纖網(wǎng)路防止電磁泄漏,顯示器,鍵盤燈,usb接口等最好不要。
3,服務(wù)器放置的地點(diǎn)一定要符合各種電器標(biāo)準(zhǔn)的機(jī)房,防盜,專人看守。
二、網(wǎng)絡(luò)層防御(1-6層tcp/ip)
1, 靜態(tài)化mac或者啟用openvpn網(wǎng)絡(luò)徹底靜止arp協(xié)議,防止arp欺詐攻擊。
2,設(shè)置交換機(jī)安全,放置mac-端口表攻擊,把網(wǎng)絡(luò)劃分成各個(gè)專屬vlan。
3, 配置dhcp服務(wù)器放置ip 地址資源分配攻擊。限制每個(gè)網(wǎng)卡請(qǐng)求數(shù),租賃時(shí)間。
4, 如不是大規(guī)模網(wǎng)絡(luò)請(qǐng)不要分段IP使用路由器,直接交換機(jī),如有必要盡量使用手工配置route表,不要使用各種動(dòng)態(tài)配置路由表協(xié)議,防止協(xié)議漏洞攻擊。
5,全網(wǎng)科萊,tcpdump,sniff 等包分析人工監(jiān)控網(wǎng)絡(luò),發(fā)現(xiàn)非法網(wǎng)卡混雜監(jiān)聽,各種掃描,dos,ddos攻擊,已經(jīng)各種未知的攻擊。
6, 如條件允許請(qǐng)購(gòu)買專業(yè)的防止DDOS,非x86構(gòu)架防火墻最好是支持7層應(yīng)用層防火墻功能,如果帶寬沒那么大可以選擇diy freebsd+pf組成的防火墻,同時(shí)配置syn代理握手 進(jìn) 出 nat rnt過濾,防止外部,內(nèi)部,本機(jī)等攻擊(freebsd的polling還可以輪訓(xùn)網(wǎng)卡模式,對(duì)付高中斷的syn攻擊有奇效)。一般應(yīng)用層防火墻防御web用不到,非要部署也可以選擇freebsd的ipfw-classi或者iptable-7lay,但是一定要使用科萊,sniff進(jìn)行7層特診嗎的正則開發(fā)!要不現(xiàn)有的規(guī)則太落后了!之中對(duì)于ddos大規(guī)模攻擊就不是防火墻說能防御的啦,只有加大寬帶,聯(lián)合電信政府部門,購(gòu)買CDN全國(guó)分布服務(wù)器才能解決。
7,使用suricata(snort性能太差,過時(shí)了)開啟nvdia CUDA加速,pring加速,選用intel網(wǎng)卡開啟dma,miix2,隊(duì)列加速實(shí)現(xiàn)萬(wàn)兆流量入侵分析!同時(shí)支持IDS/IPS功能,當(dāng)然我們不僅僅要實(shí)現(xiàn)入侵檢測(cè)系統(tǒng)與防火墻的溝通,還可以實(shí)現(xiàn)入侵檢測(cè)系統(tǒng)與系統(tǒng)shell,聲音,mail 報(bào)警溝通!特別是滲透掃面的發(fā)現(xiàn),扼殺滲透攻擊與搖籃!
8,對(duì)于DNS是漏洞最多的網(wǎng)絡(luò)核心功能,所以沒有必要請(qǐng)不要自己使用bind搭建NDS服務(wù)器加速網(wǎng)絡(luò),直接使用網(wǎng)絡(luò)上的DNS就可以了,如果實(shí)在要部署,請(qǐng)選擇openbsd系統(tǒng)搭建,在代碼層防止溢出,或者使用后面講的mac,強(qiáng)制訪問安全控制加固!當(dāng)是一定要部署nds全網(wǎng)欺騙攻擊防御(使用網(wǎng)絡(luò)分析包工具來做),防止內(nèi)網(wǎng)中毒發(fā)送nds假包,欺騙劫持!
三、應(yīng)用層防御
1,所有的系統(tǒng),服務(wù)器軟件必須使用發(fā)行版默認(rèn)的版本,并且進(jìn)行md5,sha簽名認(rèn)證,并且有必要下載對(duì)應(yīng)的發(fā)行版源代碼使用gcc-4.6-4.7版本加參數(shù)-fstack-protect-all保護(hù)編譯安裝,優(yōu)化的級(jí)別也最好不要超過O2。還有就是必須修改源代碼的version.h把服務(wù)器軟件名字,版本打亂偽造好!比如nginx變成bws,gws,apache等,mysql變成redis,postgresl!
2,web服務(wù)器,數(shù)據(jù)庫(kù)服務(wù)器,緩存服務(wù)器,php應(yīng)用服務(wù)器必須分開來單獨(dú)電腦安裝,同時(shí)設(shè)置各自的專用賬號(hào)。方便以后進(jìn)行最小權(quán)限控制,以及目錄權(quán)限控制!
3,網(wǎng)站能靜態(tài)化最好,實(shí)在要?jiǎng)討B(tài),可以使用suhosin安全加固php虛擬機(jī),禁用各種沒用的函數(shù),使用tomoyo安全分析軟件分析網(wǎng)站正常使用時(shí),需要的各種權(quán)限,進(jìn)行php,mysql ,nginx,apapche最小權(quán)限化管理,分析出web根目錄最佳權(quán)限,防止各種溢出攻擊,同時(shí)對(duì)用戶輸入的所有數(shù)據(jù),圖片,選擇項(xiàng)進(jìn)行php輸入過濾,防止sql注入,夸張,拖庫(kù)等攻擊,如果可能請(qǐng)選擇NOsql數(shù)據(jù)庫(kù),比如redis代替msyql!
4,如果前段沒喲部署7層應(yīng)用層防火墻,那么我們可以使用nginx,apache設(shè)置并發(fā),連接控制防止ccs攻擊,同時(shí)所有的服務(wù)器軟件運(yùn)行必須在grsecurity selinux tomoyo等MAC強(qiáng)制訪問控制下運(yùn)行!
5,關(guān)于mac強(qiáng)制訪問其實(shí)很簡(jiǎn)單,就是在原有的自主訪問控制基礎(chǔ)上加入了更強(qiáng)大的控制功能層,通體來說加入了角色控制層 類型(主體客體)控制層 還有就是主要為了信息安全而設(shè)置的客體訪問級(jí)別控制,一般有如下工具:
selinux:全功能的selinux實(shí)現(xiàn)了 角色控制,tpyeenfore類型域控制 還有mls控制,但是我們常用的centos,rhel默認(rèn)只是開啟了typeenfore類控制,是selinux的閹割版,不管是角色控制,類型控制,還是msl控制無(wú)非就兩個(gè)四個(gè)步驟:
a,把角色控制,類型控制,msl控制的分類分組標(biāo)簽寫到文件安全擴(kuò)展屬性中去
b,使用自動(dòng)學(xué)習(xí)模式,或者手動(dòng)policiy文件書寫角色,類型,mls權(quán)限控制規(guī)則(在rhel,centos已經(jīng)提供了現(xiàn)有的常用軟件策略)
c,啟用permission調(diào)試模式,試運(yùn)行軟件,查看日志是由有違反規(guī)定的日志
d,調(diào)整策略,反復(fù)前兩部操作,知道無(wú)錯(cuò)誤
完整版strict可是用來實(shí)現(xiàn)用戶:角色:TE:mls四層控制,而且可以保護(hù)整個(gè)系統(tǒng),而不光是關(guān)鍵進(jìn)程!
Grsecurity:實(shí)現(xiàn)了角色控制,類似selinux-typeenfce功能,但是沒有mls功能,不過它具有很多selinux不可比擬的功能,比如在線磁盤分區(qū)read-only模式,trust-path控制,還有更恐怖的pax內(nèi)核防止溢出加固,簡(jiǎn)直是最完美的MAC了,本人給他打200分??!如果想實(shí)現(xiàn)系統(tǒng)的最高防御Grsecurity不可缺少?。∷彩强梢詫?duì)整個(gè)系統(tǒng)進(jìn)行保護(hù)的哦!
Tomoyo(ccs)以及suse的approm等都只是實(shí)現(xiàn)了跟rhel的selinux-targets策略實(shí)現(xiàn)的功能,對(duì)重點(diǎn)的進(jìn)程加固,不能對(duì)整個(gè)系統(tǒng)進(jìn)行保護(hù)!同時(shí)他們是基與路徑的,不用象selinux要給文件打上標(biāo)簽!!
最后freebsd開啟的Trustbsd項(xiàng)目mac了,起主要是實(shí)現(xiàn)了層控制的TE主體客體控制,mls/low,hig,equal 高層只能寫不能讀 低層只能讀不能寫,平等可以讀寫呵呵很簡(jiǎn)單把??!而biba模塊怎剛好相反,高層能讀不能寫,低層能寫不能讀!
總之,強(qiáng)制訪問其實(shí)就是系統(tǒng)程序權(quán)限防火墻!個(gè)人建議在rhel,centos上開啟selinux,其他linux開啟grsecurity,freebsd則由于做防火墻,沒有人登陸,沒有服務(wù)器程序不用開啟MAC!
四、系統(tǒng)的層防御
1,我們要選擇一個(gè)合適的系統(tǒng),目前供我們選擇的系統(tǒng)有rhel,centos,oracle-linux,debian,ubuntu,freebsd,openbsd,netbsd,suse等,個(gè)人認(rèn)為:
防火墻系統(tǒng):為了性能選擇freebsd+pf為了安全選擇openbsd+pf.(應(yīng)用層過濾ipfw-classic)或者panabit可惜是收費(fèi)的呵呵
嵌入式cpu防火墻:netbsd+pf/npf
web服務(wù)器:還是免費(fèi)的centos吧
數(shù)據(jù)庫(kù):oracle-linux
靜態(tài)web,緩存服務(wù)器:freebsd/centos
vps商(host):centos
vps客戶機(jī)(guest):debian
openstack私有云:ubuntu
大規(guī)模并行計(jì)算:sentific linux
總體來說就是,性能為主使用rhel/centos系列 安全為重選用debian+grsecurity加固 防火墻穩(wěn)定性為重bsd系列。
2,除了rhel有商業(yè)支持的系統(tǒng)外,其他的免費(fèi)系統(tǒng)都要精心內(nèi)核的精簡(jiǎn)編譯,去除所有沒用的驅(qū)動(dòng),功能,調(diào)試,加入grsecutity ccs安全加固MAC!同時(shí)設(shè)置sysctl.內(nèi)核參數(shù)加大抗DDOS,縮短timewait,加大tcp,upd緩存等優(yōu)化參數(shù)。
3,刪除所有系統(tǒng)中無(wú)用的用戶,bin/sbin,開啟grsecurity 的trust-path功能,任何人只能運(yùn)行經(jīng)過root認(rèn)證的程序,關(guān)閉sysctl關(guān)于mac 實(shí)時(shí)控制功能,對(duì)于不需要更改的配置文件,靜態(tài)頁(yè)面可以開啟grsecurity read-only分區(qū)功能,誰(shuí)也不能更改文件了,包括自己!
4,啟用md5,sha簽名關(guān)鍵文件包括內(nèi)核,內(nèi)核模塊,配置文件,關(guān)鍵常用的程序,防止rootkit,木馬,可以使用工具前面 或者自己手動(dòng)shell批處理!
5,開啟grsecurity,或者selinux 角色控制影藏所有的本用戶無(wú)關(guān)進(jìn)程,開啟/proc等虛擬文件系統(tǒng)安全防護(hù),包括/tmp,開啟grsecurity pax放溢出,放鏈接攻擊,隨機(jī)地址等保護(hù)!
6,設(shè)置基本的linux/freebsd 文件管理權(quán)限,用戶權(quán)限,chattr +i 保護(hù)! 關(guān)閉沒用的服務(wù)器軟件,ssh服務(wù)器盡量不要使用,非要使用請(qǐng)使用knock敲門,打開防火墻通道,使用ssh!
7, 定制安全的可靠的服務(wù)器版本,漏洞,安全補(bǔ)丁升級(jí),隨時(shí)關(guān)注網(wǎng)絡(luò)漏洞列表。
五、制度防御
1,密碼制度,密碼長(zhǎng)度必須設(shè)置為16位或者32位 md5 16 32位迷惑,同時(shí)必須滿足字母大小寫,特殊符號(hào),數(shù)字等。。高強(qiáng)度密碼,定期更換密碼。還可以參考之前寫過的“一次性密碼”文章。使用一次性密碼!
2,離職人員的安全重設(shè)機(jī)制,防止離職人員密碼,機(jī)密文件泄漏,重要文件不管是存放還是備份必須使用truecrypt高強(qiáng)度加密??!特別是數(shù)據(jù)庫(kù)加密!
3,在職人員的安全審核制度,防止在職人員訪問高度機(jī)密文件,非法操作,硬盤復(fù)制等不安全舉動(dòng)與系統(tǒng)非法操作(開啟系統(tǒng)audit功能)。
4,定期備份,災(zāi)難演戲,滲透測(cè)試,穩(wěn)定性能測(cè)試!
5, 定期舉行安全防御與攻擊學(xué)習(xí)培訓(xùn),組成安全小組,或者小圈子進(jìn)行討論,創(chuàng)新思維,培養(yǎng)安全人才。