亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁(yè) > 知識(shí)庫(kù) > FreeBSD下創(chuàng)建安全的Web服務(wù)器

FreeBSD下創(chuàng)建安全的Web服務(wù)器

熱門(mén)標(biāo)簽:信陽(yáng)外呼系統(tǒng)廠家 地圖標(biāo)注多個(gè)城市 駐馬店電話自動(dòng)外呼系統(tǒng)怎么樣 南京自動(dòng)外呼系統(tǒng)有哪些 赤峰防封電銷卡 地圖標(biāo)注山峰最低高度 人工電銷和ai機(jī)器人的區(qū)別 北海智能電銷機(jī)器人公司 地圖標(biāo)注與注記總結(jié)

序言

一、系統(tǒng)和服務(wù)程序的安裝
1. 系統(tǒng)安裝
2. 服務(wù)程序安裝

二、系統(tǒng)安全設(shè)置
1. 用戶控制
2. 文件訪問(wèn)控制
3. 系統(tǒng)服務(wù)和端口控制
4. 日志管理和控制
5. 文件指紋檢測(cè)
6. 系統(tǒng)指紋泄露和防范
7. 系統(tǒng)內(nèi)核安全
8. 系統(tǒng)安全優(yōu)化

三、服務(wù)程序的安全設(shè)置
1. Apache安全設(shè)置
2. PHP安全設(shè)置
3. Mysql安全設(shè)置
4. vsFTPd安全設(shè)置
5. SSH的安全設(shè)置

四、防火墻的安裝和設(shè)置
1. 安裝ipfw
2. 配置ipfw

五、Unix/Linux上的后門(mén)技術(shù)和防范
1. 帳號(hào)后門(mén)
2. shell后門(mén)
3. cron服務(wù)后門(mén)
4. rhosts后門(mén)
5. Login后門(mén)
6. Bind后門(mén)
7. 服務(wù)后門(mén)
8. rootkit后門(mén)
9. 內(nèi)核后門(mén)
10. 其他后門(mén)

六、結(jié)束語(yǔ)

附錄


序言

在我們跑Web服務(wù)器的時(shí)候,大家可能都會(huì)一致認(rèn)為使用Linux+Mysql+Apache+PHP整個(gè)開(kāi)源的系統(tǒng)是比較好的選擇,但是我個(gè)人認(rèn)為這是不合理的,首先要根據(jù)你的應(yīng)用來(lái)覺(jué)得你使用什么服務(wù)。假如你需要跑Oracle等大型應(yīng)用的話,而且Oracle在Linux下是支持的比較好的,那么使用Linux是個(gè)好的選擇,因?yàn)樵贔reeBSD下安裝Oracle是個(gè)非常麻煩的事情。那么如果是跑普通的網(wǎng)站應(yīng)用的話,我覺(jué)得使用FreeBSD+ Mysql+Apache+PHP是個(gè)好的選擇,因?yàn)閷?duì)于一個(gè)網(wǎng)站來(lái)講,穩(wěn)定安全是第一位的,否則你的網(wǎng)站什么時(shí)候被人修改了都不知道怎么回事,或者被黑客入侵,把數(shù)據(jù)修改或者刪除,那就糟糕了,畢竟現(xiàn)在什么紅客、黑客的一堆,不能不防。當(dāng)然,不是說(shuō)Linux不安全,但是在Linux下集成了很多不安全的程序,導(dǎo)致了它的不安全,但如果設(shè)置的好,Linux一樣可以很安全。在中國(guó)網(wǎng)絡(luò)應(yīng)急響應(yīng)中心(http://www.cert.org.cn)這幾個(gè)月的數(shù)據(jù)來(lái)看,每個(gè)月被入侵成功最高的是Linux系統(tǒng),占百分之六十多,然后過(guò)來(lái)是Windows系統(tǒng),占百分之三十多,而FreeBSD的入侵比例是百分之幾。

任何系統(tǒng)都可以很安全,也可以很不安全,關(guān)鍵是管理員怎么做的,世界上沒(méi)有最安全的系統(tǒng),只有更安全的系統(tǒng)。下面的文章就是
在FreeBSD平臺(tái)上構(gòu)建一個(gè)比較安全的Web服務(wù)器,希望對(duì)網(wǎng)管和網(wǎng)絡(luò)安全愛(ài)好者能有一些啟發(fā),權(quán)當(dāng)拋磚引玉,希望能夠有更好闡述的文章。


一、系統(tǒng)和服務(wù)程序的安裝


1. 系統(tǒng)安裝

為了保證系統(tǒng)的安全,我們系統(tǒng)準(zhǔn)備采用最新的FreeBSD版本,首先是安全,系統(tǒng)兼容性也比較好,這個(gè)主要是個(gè)人習(xí)慣和需求,為了簡(jiǎn)單起見(jiàn),這里我們選用了最新的FreeBSd5.3版本進(jìn)行安裝。整個(gè)安裝過(guò)程我就不講了,如果不清楚的朋友可以參考FreeBSD中文手冊(cè)(http://www.freebsd.org.cn),整個(gè)過(guò)程不是很復(fù)雜,雖然沒(méi)有Windows/Linux的系統(tǒng)安全簡(jiǎn)單,但是比起有些Unix的安裝來(lái)講是人性許多的。安裝中必須把基本包和內(nèi)核源代碼都裝上,為了以后編譯內(nèi)核方便,如果另外,如果喜歡使用ports安裝軟件的話,還要把ports裝上,但是盡量一些沒(méi)有必要的程序不要裝。如果要安裝 Webmin等,還要把perl等包裝上。系統(tǒng)文件拷貝完以后,會(huì)要求配置一些設(shè)置,比如把IP地址、名字服務(wù)器等設(shè)好,不要打開(kāi)IPv6,不需要 DHCP等服務(wù),不要系統(tǒng)默認(rèn)的FTP服務(wù),配置 /etc/inetd.conf 時(shí)把SSH服務(wù)打開(kāi),方便我們進(jìn)行遠(yuǎn)程管理,如果不想使用inetd這個(gè)超級(jí)服務(wù)來(lái)管理的話,可以關(guān)閉它,在/etc/rc.conf中添加 inetd_enable="NO",然后設(shè)置sshd_enable="YES"一樣可以打開(kāi)SSH服務(wù),后面我們會(huì)詳細(xì)談到SSH的設(shè)置。

系統(tǒng)裝完后,在 /etc/inetd.conf 中把除了ssh之外的服務(wù)全部關(guān)閉,特別是telnet和rlogin等服務(wù),一定要慎重,否則很可能每幾天系統(tǒng)就被入侵了。安裝完系統(tǒng)后,建議對(duì)系統(tǒng)進(jìn)行升級(jí),比如使用 make world 或 cvsup 把系統(tǒng)內(nèi)核和ports進(jìn)行升級(jí)。這個(gè)步驟和Windows裝完后打補(bǔ)丁差不多。


2. 服務(wù)程序安裝

系統(tǒng)裝完以后,就開(kāi)始安裝我們的應(yīng)用軟件,我們的方針還是最新的軟件是最安全的,比如能夠防止一些老版本中的溢出等等。我們基本就是要讓我們的系統(tǒng)有數(shù)據(jù)庫(kù),同時(shí)能夠處理Web服務(wù),同時(shí)能夠遠(yuǎn)程對(duì)網(wǎng)站進(jìn)行文件管理的FTP服務(wù)。我們基本選擇的程序都是比較通常的程序。另外,為了有個(gè)可視化的管理工具,我們同時(shí)也可以安裝一個(gè)基于瀏覽器的管理工具Webmin,方便沒(méi)有ssh客戶端等等的時(shí)候進(jìn)行管理。

首先我們選用的Web服務(wù)是Apache httpd 2.0.53,這是目前的最新版本,當(dāng)然你也可以考慮1.3的版本,主要是看個(gè)人習(xí)慣。我們網(wǎng)站是PHP程序編寫(xiě),所以要安裝PHP,版本是 4.3.11,也是最新的版本,如果你的網(wǎng)站程序需要PHP5的支持,那么可以下載php5.0.4。數(shù)據(jù)庫(kù)還是最快速的Mysql,選擇的版本是最新的 4.0.23,如果你需要外鍵、事務(wù)、子查詢、存儲(chǔ)過(guò)程等的支持,那么你可以考慮4.1和5.0的版本。最后我們的FTP選擇最安全的vsFTPd,因?yàn)樗亲畎踩焖俚模以诰钟蚓W(wǎng)中測(cè)試它的最高創(chuàng)數(shù)速率能夠達(dá)到10MB/S,proFTPd只有8MB/S,vsFTPd針對(duì)小型FTP服務(wù)器支持非常好,畢竟我用戶不多,幾個(gè)更新網(wǎng)站而已,當(dāng)然,如果你喜歡簡(jiǎn)單方便,也可以考慮使用FreeBSD自帶的FTPd,功能和易用性也是不錯(cuò)的。如果你用戶比較多,并且功能要求比較高,建議使用proFTPd、pure-FTPd、wu-FTPd等,但有些FTPd不是非常安全,選擇時(shí)候一定要慎重考慮。

服務(wù)器程序列表:
Apache 2.0.53 下載地址:http://httpd.apache.org
PHP 4.3.11 下載地址:http://www.php.net
Mysql 4.0.23 下載地址:http://dev.mysql.com
vsFTPd 2.0.2 下載地址:http://vsftpd.beasts.org

反正最少的服務(wù)+最少的端口+安全的設(shè)置 = 最大的安全,盡量能夠不需要使用的服務(wù)就不要安裝,比如telnetd、rlogind等,那么相反會(huì)對(duì)服務(wù)器安全構(gòu)成威脅。

安裝以上程序你可以采用手工編譯安裝,也可以采用FreeBSD的ports 來(lái)進(jìn)行安裝,這看個(gè)人愛(ài)好,我個(gè)人比較喜歡使用手工安裝,如果不明白具體安裝的朋友可以參考我的Blog上關(guān)于安裝Apache+PHP+Mysql的方法。



二、系統(tǒng)安全設(shè)置


1. 用戶控制

盡量少的用戶,我們的FTP帳戶是和系統(tǒng)帳戶綁定在一起的,所以我們添加用戶的時(shí)候先建立一個(gè)目錄,然后把新建的用戶主目錄指向到該目錄下。假設(shè)我需要一個(gè)用戶能夠管理我的網(wǎng)站,而我網(wǎng)站的目錄是在 /usr/www 目錄下,那么我們新建立的用戶 www_user 的主目錄就指向 /usr/www 目錄,同時(shí)它的shell是沒(méi)有的:/usr/sbin/nologin ,主要是為了防止它通過(guò)ssh登陸到系統(tǒng)。同時(shí)FTP的密碼也要設(shè)置的非常復(fù)雜,防止黑客通過(guò)暴力破解獲得FTP權(quán)限。另外還要說(shuō)道我們的root用戶的密碼,我想最少應(yīng)該不要少于10位的數(shù)字+字母+字符的密碼(我的密碼是18位),否則是非常不安全的,如果密碼簡(jiǎn)單,那么黑客通過(guò)短時(shí)間的暴力破解 SSH中的root帳戶,不用幾天,系統(tǒng)就可能被攻破了,同時(shí)也建議最少一個(gè)月更改一次root用戶的密碼。(強(qiáng)烈建議一般帳戶不要有登陸系統(tǒng)的權(quán)限,就是把shell設(shè)為/usr/sbin/nologin)
一般如果要使用root權(quán)限建議建立一個(gè)屬于wheel組的小用戶,然后登陸后通過(guò)su命令提升為root用戶進(jìn)行管理,如果黑客通過(guò)破解了我們普通用戶的權(quán)限后登陸系統(tǒng),也不能直接通過(guò)root權(quán)限進(jìn)行管理,這是一種安全防范的簡(jiǎn)單方法。


2. 文件訪問(wèn)控制

有時(shí)候被黑客入侵后拿到了小權(quán)限用戶,比如傳了一個(gè)WebShell到系統(tǒng)中,那么對(duì)方很可能會(huì)把 /etc/passwd 等內(nèi)容直接讀取出來(lái),同時(shí)查看/etc/master.passwd中對(duì)加密后的root用戶的密碼hash進(jìn)行破解,最后拿到密碼進(jìn)行登陸系統(tǒng)。那么我們就要控制部分文件只有root能夠訪問(wèn),其他用戶無(wú)權(quán)訪問(wèn)。比如uname,gcc等,如果黑客拿到小權(quán)限用戶后就會(huì)查看系統(tǒng)版本,然后找到該版本系統(tǒng)對(duì)應(yīng)的溢出程序,使用gcc來(lái)進(jìn)行編譯,如果我們能夠限制黑客訪問(wèn)uname和gcc等程序,能在一定程度上減緩黑客入侵的腳步。
使用chmod來(lái)改變某個(gè)文件的權(quán)限信息,比如我要 /etc/passwd 和 /etc/master.passwd 文件只能允許root訪問(wèn):
使用八進(jìn)制數(shù)字來(lái)設(shè)置
# chmod 700 /etc/passwd
# chmod 700 /etc/master.passwd
使用字符標(biāo)記來(lái)進(jìn)行設(shè)置
# chmod u+w+r+x,go-w-r-x /etc/passwd
# chmod u+w+r+x,go-w-r-x /etc/master.passwd
系統(tǒng)中有多個(gè)重要文件需要設(shè)置控制訪問(wèn)權(quán)限,一定要控制好,否則將會(huì)構(gòu)成重要威脅。


3. 系統(tǒng)服務(wù)和端口控制

端口開(kāi)的越多就越給黑客多一個(gè)入侵的機(jī)會(huì),服務(wù)越多,危險(xiǎn)越大,因?yàn)槟悴恢滥切┓?wù)是不是有潛在的漏洞或者又發(fā)現(xiàn)了新的漏洞,所以盡量少的服務(wù),比如sendmail默認(rèn)是打開(kāi)的,那么些建議你把sendmail關(guān)閉,關(guān)閉防范是在 /etc/rc.conf中加上:
sendmail_enable = "NONE",如果設(shè)為"NO"那么只能夠關(guān)閉掉pop3服務(wù),不能關(guān)閉smtp的服務(wù),所以要設(shè)置為"NONE"。
系統(tǒng)中最好除了我們能夠看到的Apache、Mysql、vsFTPd、SSH之外不要打開(kāi)其他任何端口和服務(wù)。基本的方式是使用netstat -a 查看打開(kāi)的端口,然后從對(duì)應(yīng)的端口來(lái)找相關(guān)的服務(wù),比如我們這里應(yīng)該只允許開(kāi)的端口有 21, 22, 80, 3306等,如果有其他端口,那么一定要仔細(xì)檢查,很可能是黑客的后門(mén)或者是會(huì)對(duì)系統(tǒng)安全構(gòu)成威脅的服務(wù)。同時(shí)有些服務(wù)不需要****網(wǎng)絡(luò)連接的話,只是需要本地的連接,比如Mysql,那么就可以關(guān)閉Socket****,這個(gè)將在Mysql安全設(shè)置中講解,另外,可以通過(guò)防火墻來(lái)控制部分端口訪問(wèn)和連接狀況,比如Mysql的3306端口只允許192.168.0.1訪問(wèn),那么我們就在ipfw里添加規(guī)則:
ipfw add 10001 allow tcp from 192.168.0.1 to 10.10.10.1 80 in
這樣就能夠防止黑客來(lái)訪問(wèn)服務(wù)器上的Mysql服務(wù)。具體防火墻的設(shè)置將在下面“防火墻設(shè)置”中詳細(xì)講解。


4. 日志管理和控制 (未完)


5. 文件指紋檢測(cè)

文件指紋就是我們文件的基本信息,比如文件權(quán)限、文件所屬用戶/組、文件最后修改日期、文件大小等等,這些都是重要信息,一般黑客入侵后都可能修改文件,那么文件指紋就不一樣了。另外,文件的md5校驗(yàn)值也屬于文件的指紋的一種。
為了防止黑客篡改系統(tǒng)中的部分核心文件,比如 /etc/passwd, /etc/shadow, /etc/inetd.conf 等等,那么我們就可以考慮把部分重要文件進(jìn)行備份,同時(shí)做一份目前有的文件的一個(gè)指紋保留,比如把 /etc,/bin, /usr/bin 目錄下的文件進(jìn)行指紋保留:
# ls -l /etc > /var/back/etc.txt
# ls -l /bin > /var/back/bin.txt
# ls -l /bin > /var/back/usrbin.txt
當(dāng)然,還有就是給每個(gè)重要的文件加上md5校驗(yàn)值,如果覺(jué)得不對(duì)勁的時(shí)候就進(jìn)行匹配,保證文件的安全。
你可以給你覺(jué)得需要做指紋備份的目錄進(jìn)行備份,一般這是為了以后被黑客入侵后的系統(tǒng)檢測(cè)和系統(tǒng)恢復(fù)。比如可以通過(guò)文件被修改的時(shí)間來(lái)確定是不是被入侵,比如可以對(duì)比看 /etc/inetc.conf文件和備份的文件有什么不同來(lái)確定是不是安裝了服務(wù)型后門(mén)等。


6. 系統(tǒng)指紋泄漏和防范 (未完)

一般黑客為了入侵某個(gè)系統(tǒng),一定會(huì)先進(jìn)行掃描等工作,掃描包括目標(biāo)系統(tǒng)的端口開(kāi)放情況和服務(wù)器使用服務(wù)程序和操作系統(tǒng)情況。比如很簡(jiǎn)單的手工檢測(cè)Web服務(wù)的指紋:
# telnet target.com 80
那么就很可能返回Apache和PHP的版本信息,那么同時(shí)也可能使用掃描工具對(duì)Mysql、vsFTPd、SSH等服務(wù)的端口進(jìn)行掃描,獲取這些服務(wù)的指紋。多暴露一份系統(tǒng)信息,那么系統(tǒng)就多一份危險(xiǎn)。那么解決辦法就是把服務(wù)器上服務(wù)程序的Banner全部修改掉,從而能夠迷惑黑客。

下面簡(jiǎn)單的說(shuō)一些修改那些服務(wù)Banner的方法。

* Apache
修改httpd.conf文件,設(shè)置以下選項(xiàng):
ServerSignature Off
ServerTokens Prod
上面的適用apache1***, apache 2.0這些都是默認(rèn) , 不過(guò)還是有server=Apache字樣, 若要完全去掉需重新編譯。
徹底地去掉banner, 修改httpd.h:
Include/httpd.h
Define SERVER_BASEVENDOR "Apache Group"
Define SERVER_PRODUCTVENDOR "Apache"
Define SERVER_BASEVERSION "1.3.27"
后從新編譯Apache就能夠完全去掉了。


* PHP
在php.ini中設(shè)置 expose_php = Off ,那么將無(wú)法在 http頭信息中看到php的版本信息。

* Mysql


* vsFTPd
vsFTPd基本上是無(wú)法獲取到一些關(guān)于vsFTPd的banner信息的,不過(guò)因?yàn)関sFTPd默認(rèn)的banner信息是"Welcome to FTP Server!"對(duì)于高手來(lái)說(shuō),還是能夠猜測(cè)到一點(diǎn),所以我們要徹底改掉。修改vsFTPd的配置文件 vsftpd.conf 中的下面選項(xiàng):
Ftpd_banner=xxxxx
把后面的xxxxx改為你想要的banner信息。


* SSH
好象FreeBSD下默認(rèn)安裝的SSH被telnet target.com 22 的時(shí)候會(huì)顯示SSH和FreeBSD的信息,簡(jiǎn)直是個(gè)大禍害,什么都告訴別人了,但是目前為止我還不知道怎么修改,知道的高手請(qǐng)指點(diǎn)。


7. 系統(tǒng)內(nèi)核安全

FreeBSD有個(gè)比較強(qiáng)的功能,就是能夠定義系統(tǒng)內(nèi)核的安全等級(jí),主要是為了防止內(nèi)核后門(mén)專門(mén)定制的,能通過(guò)不同的等級(jí)限制對(duì)內(nèi)核的訪問(wèn)和對(duì)防火墻等的修改。我們首先要開(kāi)啟系統(tǒng)的安全等級(jí),然后設(shè)定安全等級(jí),我們打開(kāi) /etc/rc.conf:
# ee /etc/rc.conf
加入下面的內(nèi)容:
kern_securelevel_enable="YES"
kern_securelevel="-1"
第一句是打開(kāi)安全等級(jí),第二句是定義等級(jí)。它一共五個(gè)等級(jí),下面說(shuō)說(shuō)不同之處。
* kern_securelevel -1:這是系統(tǒng)默認(rèn)級(jí)別,沒(méi)有提供任何內(nèi)核的保護(hù)錯(cuò)誤;
* kern_securelevel 0:基本上作用不多,當(dāng)你的系統(tǒng)剛啟動(dòng)就是0級(jí)別的,當(dāng)進(jìn)入多用戶模式的時(shí)候就自動(dòng)變成1級(jí)了。
* kern_securelevel 1:在這個(gè)級(jí)別上,有如下幾個(gè)限制:
a. 不能通過(guò)kldload或者kldunload加載或者卸載可加載內(nèi)核模塊;
b. 應(yīng)用程序不能通過(guò)/dev/mem或者/dev/kmem直接寫(xiě)內(nèi)存;
c. 不能直接往已經(jīng)裝在(mounted)的磁盤(pán)寫(xiě)東西,也就是不能格式化磁盤(pán),但是可以通過(guò)標(biāo)準(zhǔn)的內(nèi)核接口執(zhí)行寫(xiě)操作;
d. 不能啟動(dòng)X-windows,同時(shí)不能使用chflags來(lái)修改文件屬性;
* kern_securelevel 2:在 1 級(jí)別的基礎(chǔ)上還不能寫(xiě)沒(méi)裝載的磁盤(pán),而且不能在1秒之內(nèi)制造多次警告,這個(gè)是防止DoS控制臺(tái)的;
* kern_securelevel 3:在 2 級(jí)別的級(jí)別上不允許修改IPFW防火墻的規(guī)則。
如果你已經(jīng)裝了防火墻,并且把規(guī)則設(shè)好了,不輕易改動(dòng),那么建議使用3級(jí)別,如果你沒(méi)有裝防火墻,而且還準(zhǔn)備裝防火墻的話,不建議使用。我們這里推薦使用 2 級(jí)別,能夠避免比較多對(duì)內(nèi)核攻擊。


8. 系統(tǒng)安全優(yōu)化

一般優(yōu)化系統(tǒng)主要是重新編譯內(nèi)核,去掉一些不要的驅(qū)動(dòng)等等,你可以參考我在我Blog上寫(xiě)的關(guān)于編譯內(nèi)核的文章。我們這里對(duì)網(wǎng)絡(luò)和內(nèi)核一些選項(xiàng)進(jìn)行優(yōu)化和安全設(shè)置。編輯 /etc/sysctl.conf 文件,在里面加入如下內(nèi)容:(有注釋)

#最大的待發(fā)送TCP數(shù)據(jù)緩沖區(qū)空間
net.inet.tcp.sendspace=65536

#最大的接受TCP緩沖區(qū)空間
net.inet.tcp.recvspace=65536

#最大的接受UDP緩沖區(qū)大小
net.inet.udp.sendspace=65535

#最大的發(fā)送UDP數(shù)據(jù)緩沖區(qū)大小
net.inet.udp.maxdgram=65535

#本地套接字連接的數(shù)據(jù)發(fā)送空間
net.local.stream.sendspace=65535

#加快網(wǎng)絡(luò)性能的協(xié)議
net.inet.tcp.rfc1323=1
net.inet.tcp.rfc1644=1
net.inet.tcp.rfc3042=1
net.inet.tcp.rfc3390=1

#最大的套接字緩沖區(qū)
kern.ipc.maxsockbuf=2097152

#系統(tǒng)中允許的最多文件數(shù)量
kern.maxfiles=65536

#每個(gè)進(jìn)程能夠同時(shí)打開(kāi)的最大文件數(shù)量
kern.maxfilesperproc=32768

#當(dāng)一臺(tái)計(jì)算機(jī)發(fā)起TCP連接請(qǐng)求時(shí),系統(tǒng)會(huì)回應(yīng)ACK應(yīng)答數(shù)據(jù)包。該選項(xiàng)設(shè)置是否延遲ACK應(yīng)答數(shù)據(jù)包,把它和包含數(shù)據(jù)的數(shù)據(jù)包一起發(fā)送,在高速網(wǎng)絡(luò)和低負(fù)載的情況下會(huì)略微提高性能,但在網(wǎng)絡(luò)連接較差的時(shí)候,對(duì)方計(jì)算機(jī)得不到應(yīng)答會(huì)持續(xù)發(fā)起連接請(qǐng)求,反而會(huì)降低性能。
net.inet.tcp.delayed_ack=0

#屏蔽ICMP重定向功能
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.ip.redirect=0
net.inet6.ip6.redirect=0

#防止ICMP廣播風(fēng)暴
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0

#限制系統(tǒng)發(fā)送ICMP速率
net.inet.icmp.icmplim=100

#安全參數(shù),編譯內(nèi)核的時(shí)候加了options TCP_DROP_SYNFIN才可以用
net.inet.icmp.icmplim_output=0
net.inet.tcp.drop_synfin=1

#設(shè)置為1會(huì)幫助系統(tǒng)清除沒(méi)有正常斷開(kāi)的TCP連接,這增加了一些網(wǎng)絡(luò)帶寬的使用,但是一些死掉的連接最終能被識(shí)別并清除。死的TCP連接是被撥號(hào)用戶存取的系統(tǒng)的一個(gè)特別的問(wèn)題,因?yàn)橛脩艚?jīng)常斷開(kāi)modem而不正確的關(guān)閉活動(dòng)的連接
net.inet.tcp.always_keepalive=1

#若看到net.inet.ip.intr_queue_drops這個(gè)在增加,就要調(diào)大net.inet.ip.intr_queue_maxlen,為0最好
net.inet.ip.intr_queue_maxlen=1000

#防止DOS攻擊,默認(rèn)為30000
net.inet.tcp.msl=7500

#接收到一個(gè)已經(jīng)關(guān)閉的端口發(fā)來(lái)的所有包,直接drop,如果設(shè)置為1則是只針對(duì)TCP包
net.inet.tcp.blackhole=2

#接收到一個(gè)已經(jīng)關(guān)閉的端口發(fā)來(lái)的所有UDP包直接drop
net.inet.udp.blackhole=1

#為網(wǎng)絡(luò)數(shù)據(jù)連接時(shí)提供緩沖
net.inet.tcp.inflight.enable=1

#如果打開(kāi)的話每個(gè)目標(biāo)地址一次轉(zhuǎn)發(fā)成功以后它的數(shù)據(jù)都將被記錄進(jìn)路由表和arp數(shù)據(jù)表,節(jié)約路由的計(jì)算時(shí)間,但會(huì)需要大量的內(nèi)核內(nèi)存空間來(lái)保存路由表
net.inet.ip.fastforwarding=0

#kernel編譯打開(kāi)options POLLING功能,高負(fù)載情況下使用低負(fù)載不推薦SMP不能和polling一起用
#kern.polling.enable=1

#并發(fā)連接數(shù),默認(rèn)為128,推薦在1024-4096之間,數(shù)字越大占用內(nèi)存也越大
kern.ipc.somaxconn=32768

#禁止用戶查看其他用戶的進(jìn)程
security.bsd.see_other_uids=0

#設(shè)置kernel安全級(jí)別
kern.securelevel=0

#記錄下任何TCP連接
net.inet.tcp.log_in_vain=1

#記錄下任何UDP連接
net.inet.udp.log_in_vain=1

#防止不正確的udp包的攻擊
net.inet.udp.checksum=1

#防止DOS攻擊
net.inet.tcp.syncookies=1

#僅為線程提供物理內(nèi)存支持,需要256兆以上內(nèi)存
kern.ipc.shm_use_phys=1

# 線程可使用的最大共享內(nèi)存
kern.ipc.shmmax=67108864

# 最大線程數(shù)量
kern.ipc.shmall=32768

# 程序崩潰時(shí)不記錄
kern.coredump=0

# lo本地?cái)?shù)據(jù)流接收和發(fā)送空間
net.local.stream.recvspace=65536
net.local.dgram.maxdgram=16384
net.local.dgram.recvspace=65536

# 數(shù)據(jù)包數(shù)據(jù)段大小,ADSL為1452。
net.inet.tcp.mssdflt=1460

# 為網(wǎng)絡(luò)數(shù)據(jù)連接時(shí)提供緩沖
net.inet.tcp.inflight_enable=1

# 數(shù)據(jù)包數(shù)據(jù)段最小值,ADSL為1452
net.inet.tcp.minmss=1460

# 本地?cái)?shù)據(jù)最大數(shù)量
net.inet.raw.maxdgram=65536

# 本地?cái)?shù)據(jù)流接收空間
net.inet.raw.recvspace=65536

#ipfw防火墻動(dòng)態(tài)規(guī)則數(shù)量,默認(rèn)為4096,增大該值可以防止某些病毒發(fā)送大量TCP連接,導(dǎo)致不能建立正常連接
net.inet.ip.fw.dyn_max=65535

#設(shè)置ipf防火墻TCP連接空閑保留時(shí)間,默認(rèn)8640000(120小時(shí))
net.inet.ipf.fr_tcpidletimeout=864000



三、 服務(wù)程序的安全設(shè)置

到這里就是本文的重點(diǎn)所在了,我們將花費(fèi)比較多的文字進(jìn)行描述,當(dāng)然,所以描述不一定是非常正確的,也希望能夠?qū)δ阌幸恍椭N覀兿到y(tǒng)默認(rèn)是運(yùn)行了包括Apache、Mysql、vsFTPd,SSH等服務(wù),我們以下進(jìn)行一一講解。


1. Apache的安全設(shè)置

Apache的核心設(shè)置就是在 httpd.conf 里面,我們安裝的Apache的目錄是在 /usr/local/apache2/ 下,那么我們的配置文件就是在 /usr/local/apache2/conf/httpd.conf ,如果你是使用ports等安裝的,配置文件應(yīng)該是在/etc或/usr/local/etc目錄下。使用ee或者vi打開(kāi)配置文件:
# ee /usr/local/apache2/conf/httpd.conf
下面我們就要進(jìn)行比較多的安全設(shè)置了,基本的服務(wù)、端口、主目錄等等設(shè)置就不說(shuō)了,只講與安全有關(guān)的設(shè)置。

(1)指定運(yùn)行Apache服務(wù)的用戶和組
這是比較重要的,因?yàn)闄?quán)限是繼承的,如果運(yùn)行Apache服務(wù)的用戶權(quán)限太高,那么很可能使得入侵者通過(guò)WebShell等就會(huì)對(duì)系統(tǒng)構(gòu)成嚴(yán)重威脅。一般我們運(yùn)行Apache的是nobody用戶和nobody組。在httpd.conf的250-275行之間找到User和Group選項(xiàng),比如我們默認(rèn)設(shè)置如下(去掉了注釋信息):


User nobody
Group #-1



(2) Apache的日志文件
Apache的日志文件是非常重要的,可以發(fā)現(xiàn)apache的運(yùn)行狀況和訪問(wèn)情況,對(duì)于判斷入侵等有重要幫助。它的默認(rèn)選項(xiàng)是:
# 錯(cuò)誤日志存放目錄,默認(rèn)是存放在apache安裝目錄的logs下
ErrorLog logs/error_log
# 日志記錄的級(jí)別,級(jí)別有debug, info, notice, warn, error, crit等,默認(rèn)是“warn”級(jí)別
LogLevel warn
# 訪問(wèn)日志記錄的格式,每一種格式都有不同的內(nèi)容,根據(jù)你的需要進(jìn)行定制,以獲取最多訪問(wèn)信息
LogFormat "%h %l %u %t \&;%r\&; %>s %b \&;%{Referer}i\&; \&;%{User-Agent}i\&;" combined
LogFormat "%h %l %u %t \&;%r\&; %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
# 使用上面格式的那一種,默認(rèn)是使用common
CustomLog logs/access_log common

文件格式預(yù)定義的格式內(nèi)容:
%a 遠(yuǎn)程用戶IP
%A 本地httpd服務(wù)器的ip
%f 傳送的文件名
%h 遠(yuǎn)程主機(jī)
%m 請(qǐng)求方式
%l identd給出的遠(yuǎn)程名
%p 連接的httpd端口號(hào)
%P 請(qǐng)求的httpd進(jìn)程
%t 時(shí)間
%T 服務(wù)請(qǐng)求時(shí)間
你可以定制自己的日志格式,然后通過(guò)CustomLog logs/access_log common來(lái)進(jìn)行調(diào)用。

注意,日志文件是由運(yùn)行Apache的用戶進(jìn)行打開(kāi)的,要注意該文件的安全,防止被黑客改寫(xiě)或者刪除。

(3) Apache服務(wù)信息顯示控制
在配置文件中有個(gè)選項(xiàng)是控制是否顯示apache版本信息、主機(jī)名稱、端口、支持的cgi等信息的:
ServerSignature On
默認(rèn)為On,那么將顯示所有信息:
我故意訪問(wèn)一個(gè)不存在的文件:http://www.target.com/404.html
那么就會(huì)在給的錯(cuò)誤提示中顯示如下信息:
Apache/2.0.53 (Unix) PHP/4.3.11 Server at target.com Port 80

所有Apache和PHP的信息暴露無(wú)遺,這是很不安全的。當(dāng)然同時(shí)還有Off和EMail選項(xiàng),Off將不顯示任何信息,EMail將顯示管理員的郵箱地址,建議設(shè)為Off或者EMail,這樣能夠避免泄漏Apache服務(wù)器的信息給黑客。

(4) 目錄瀏覽
在httpd.conf中可以設(shè)置apache能夠?qū)σ恍](méi)有索引文件的網(wǎng)頁(yè)目錄進(jìn)行目錄瀏覽:

Options Indexes FollowSymLinks
AllowOverride None

這是不合適也不安全的,建議不需要目錄瀏覽:

Options FollowSymLinks
AllowOverride None


(5) 用戶主頁(yè)
設(shè)置httpd.conf中的:
UserDir public_html
能夠使得每個(gè)使用系統(tǒng)的用戶在自己的主目錄下建立 public_html 目錄后就能夠把自己的網(wǎng)頁(yè)放進(jìn)該目錄,然后通過(guò):
http://www.target.com/~用戶名/網(wǎng)頁(yè) 就能夠顯示自己的網(wǎng)頁(yè),這是不安全的,而且對(duì)于我們服務(wù)器來(lái)講,這沒(méi)有必要,所以我們直接關(guān)閉該功能:
UserDir disabled
或者把該內(nèi)容改名,改成 一個(gè)黑客比較不容易猜到的文件名,比如:
UserDir webserver_public_htmlpath
也可以只允許部分用戶具有該功能:
UserDir enabled user1 user2 user3

(6) CGI執(zhí)行目錄
如果你的apache要執(zhí)行一些perl等cgi程序,那么就要設(shè)置一下選項(xiàng):
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
但是這也給了黑客利用一些不安全的cgi程序來(lái)進(jìn)行破壞,所以如果你不需要cgi的話,建議關(guān)閉該選項(xiàng):
#ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"

(7) 控制PHP腳本只能訪問(wèn)指定目錄
在httpd.conf添加如下內(nèi)容:
php_admin_value open_basedir /usr/www
后面的路徑是你需要PHP腳本能夠訪問(wèn)的目錄,如果PHP腳本想要訪問(wèn)其他目錄將出項(xiàng)錯(cuò)誤提示

標(biāo)簽:晉中 廣元 烏蘭察布 德陽(yáng) 張家界 達(dá)州 信陽(yáng) 梧州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《FreeBSD下創(chuàng)建安全的Web服務(wù)器》,本文關(guān)鍵詞  FreeBSD,下,創(chuàng)建,安全,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《FreeBSD下創(chuàng)建安全的Web服務(wù)器》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于FreeBSD下創(chuàng)建安全的Web服務(wù)器的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产网站在线| 午夜精品国产自在现线拍| 一级女性全黄久久生活片| 欧美一区二区三区在线观看| 久久精品道一区二区三区| 九九热国产视频| 午夜在线亚洲男人午在线| 精品国产一区二区三区久久久蜜臀 | 亚洲精品影院一区二区| 香蕉视频亚洲一级| 精品视频在线观看一区二区三区| 欧美爱色| 精品在线观看一区| 国产综合91天堂亚洲国产| 一级女性全黄久久生活片| 成人免费福利片在线观看| 国产激情视频在线观看| 国产麻豆精品免费视频| 99热精品在线| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 午夜激情视频在线观看| 欧美日本免费| 精品视频在线观看视频免费视频 | 精品视频在线观看一区二区| 国产亚洲精品成人a在线| 国产欧美精品午夜在线播放| 欧美a级成人淫片免费看| 国产成人精品综合久久久| 久久国产精品自由自在| 国产视频久久久久| 成人免费高清视频| 国产国语在线播放视频| 国产网站在线| 香蕉视频一级| 91麻豆精品国产自产在线 | 日日夜夜婷婷| 精品久久久久久中文字幕2017| 成人av在线播放| 黄色免费三级| 亚久久伊人精品青青草原2020| 二级片在线观看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 亚洲 国产精品 日韩| 99色视频| 午夜欧美成人久久久久久| 精品国产香蕉在线播出| 国产视频一区二区三区四区| 国产精品自拍在线| 免费的黄色小视频| 欧美激情一区二区三区中文字幕| 一级片片| 高清一级片| 久草免费资源| 色综合久久天天综合观看| 久久国产一区二区| 九九热精品免费观看| 成人在激情在线视频| 午夜家庭影院| 久久精品免视看国产明星| 91麻豆爱豆果冻天美星空| 韩国毛片 免费| 亚久久伊人精品青青草原2020| 国产91精品系列在线观看| 国产伦理精品| 亚洲 欧美 成人日韩| 国产麻豆精品免费视频| 精品国产亚一区二区三区| 国产一区二区精品在线观看| 欧美另类videosbestsex| 欧美另类videosbestsex久久| 成人免费网站久久久| a级精品九九九大片免费看| 国产一区二区精品久| 成人a级高清视频在线观看| 国产伦理精品| 精品视频免费看| 国产一区二区精品尤物| 国产精品自拍一区| 久久99爰这里有精品国产| 久久国产精品永久免费网站| a级精品九九九大片免费看| 精品久久久久久影院免费| 国产成人精品综合在线| 国产麻豆精品视频| 日本在线不卡视频| 一级毛片视频免费| 韩国毛片 免费| 欧美一区二区三区在线观看| 精品视频免费观看| 91麻豆国产福利精品| 二级片在线观看| 欧美国产日韩在线| 青青青草影院| 欧美激情影院| 国产一区二区精品久| 久久国产精品自线拍免费| 国产视频网站在线观看| 麻豆网站在线看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 精品国产香蕉伊思人在线又爽又黄| 欧美激情伊人| 精品国产一级毛片| 欧美激情伊人| 黄视频网站在线看| 国产美女在线观看| 91麻豆精品国产高清在线| 精品国产三级a| 尤物视频网站在线| 欧美大片一区| 亚洲第一色在线| 国产伦久视频免费观看视频| 一级女性全黄生活片免费| 亚洲精品中文字幕久久久久久| 黄色短视屏| 欧美一区二区三区在线观看| 精品在线观看一区| 黄视频网站在线看| 国产精品自拍在线| 国产一区二区精品久久91| 91麻豆tv| a级黄色毛片免费播放视频| 四虎影视库| 久久精品免视看国产明星 | 久草免费资源| 亚欧成人乱码一区二区| 天天色色网| 国产成人精品一区二区视频| 亚欧乱色一区二区三区| 日韩免费片| 99久久精品费精品国产一区二区| 高清一级毛片一本到免费观看| 成人免费观看视频| 日本免费看视频| 亚洲天堂在线播放| 四虎久久影院| 美国一区二区三区| 成人免费观看视频| 久久久久久久网| 久久99这里只有精品国产| 精品久久久久久中文| 国产一区二区高清视频| 中文字幕97| 欧美激情在线精品video| 亚洲第一页色| 精品美女| 日本伦理片网站| 亚洲www美色| 国产一区二区精品久久91| 精品久久久久久中文| 久久精品大片| 亚飞与亚基在线观看| 国产视频一区二区在线播放| a级黄色毛片免费播放视频| 日本在线不卡免费视频一区| 免费一级片网站| 国产视频久久久久| 国产亚洲精品aaa大片| 国产一区二区精品久久91| 精品国产香蕉在线播出| 97视频免费在线观看| 国产国产人免费视频成69堂| 国产综合91天堂亚洲国产| 精品国产香蕉伊思人在线又爽又黄| 久久久成人网| 日韩专区亚洲综合久久| 国产麻豆精品| 四虎影视久久久免费| 久久国产精品自由自在| 午夜在线影院| 久久99这里只有精品国产| 国产国语在线播放视频| 在线观看成人网| 欧美激情在线精品video| 亚洲第一色在线| 91麻豆精品国产自产在线 | 黄视频网站在线观看| 亚洲女初尝黑人巨高清在线观看| 精品视频在线观看视频免费视频 | 国产不卡在线看| 99色视频| 91麻豆精品国产自产在线| 精品久久久久久影院免费| 日本免费乱理伦片在线观看2018| 国产视频一区二区在线播放| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 99久久精品国产麻豆| 国产不卡在线观看视频| 国产国语对白一级毛片| 韩国毛片 免费| 国产成人精品综合在线| 高清一级做a爱过程不卡视频| 日韩一级精品视频在线观看| 欧美一级视| 国产不卡高清| 国产a免费观看| 沈樵在线观看福利| 韩国毛片免费| 亚欧视频在线| 精品视频在线看| 午夜在线亚洲|