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