序言
一、系統(tǒng)和服務(wù)程序的安裝
1. 系統(tǒng)安裝
2. 服務(wù)程序安裝
二、系統(tǒng)安全設(shè)置
1. 用戶控制
2. 文件訪問控制
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上的后門技術(shù)和防范
1. 帳號(hào)后門
2. shell后門
3. cron服務(wù)后門
4. rhosts后門
5. Login后門
6. Bind后門
7. 服務(wù)后門
8. rootkit后門
9. 內(nèi)核后門
10. 其他后門
六、結(jié)束語(yǔ)
附錄
序言
在我們跑Web服務(wù)器的時(shí)候,大家可能都會(huì)一致認(rèn)為使用Linux+Mysql+Apache+PHP整個(gè)開源的系統(tǒng)是比較好的選擇,但是我個(gè)人認(rèn)為這是不合理的,首先要根據(jù)你的應(yīng)用來覺得你使用什么服務(wù)。假如你需要跑Oracle等大型應(yīng)用的話,而且Oracle在Linux下是支持的比較好的,那么使用Linux是個(gè)好的選擇,因?yàn)樵贔reeBSD下安裝Oracle是個(gè)非常麻煩的事情。那么如果是跑普通的網(wǎng)站應(yīng)用的話,我覺得使用FreeBSD+ Mysql+Apache+PHP是個(gè)好的選擇,因?yàn)閷?duì)于一個(gè)網(wǎng)站來講,穩(wěn)定安全是第一位的,否則你的網(wǎng)站什么時(shí)候被人修改了都不知道怎么回事,或者被黑客入侵,把數(shù)據(jù)修改或者刪除,那就糟糕了,畢竟現(xiàn)在什么紅客、黑客的一堆,不能不防。當(dāng)然,不是說Linux不安全,但是在Linux下集成了很多不安全的程序,導(dǎo)致了它的不安全,但如果設(shè)置的好,Linux一樣可以很安全。在中國(guó)網(wǎng)絡(luò)應(yīng)急響應(yīng)中心(http://www.cert.org.cn)這幾個(gè)月的數(shù)據(jù)來看,每個(gè)月被入侵成功最高的是Linux系統(tǒng),占百分之六十多,然后過來是Windows系統(tǒng),占百分之三十多,而FreeBSD的入侵比例是百分之幾。
任何系統(tǒng)都可以很安全,也可以很不安全,關(guān)鍵是管理員怎么做的,世界上沒有最安全的系統(tǒng),只有更安全的系統(tǒng)。下面的文章就是
在FreeBSD平臺(tái)上構(gòu)建一個(gè)比較安全的Web服務(wù)器,希望對(duì)網(wǎng)管和網(wǎng)絡(luò)安全愛好者能有一些啟發(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)單起見,這里我們選用了最新的FreeBSd5.3版本進(jìn)行安裝。整個(gè)安裝過程我就不講了,如果不清楚的朋友可以參考FreeBSD中文手冊(cè)(http://www.freebsd.org.cn),整個(gè)過程不是很復(fù)雜,雖然沒有Windows/Linux的系統(tǒng)安全簡(jiǎn)單,但是比起有些Unix的安裝來講是人性許多的。安裝中必須把基本包和內(nèi)核源代碼都裝上,為了以后編譯內(nèi)核方便,如果另外,如果喜歡使用ports安裝軟件的話,還要把ports裝上,但是盡量一些沒有必要的程序不要裝。如果要安裝 Webmin等,還要把perl等包裝上。系統(tǒng)文件拷貝完以后,會(huì)要求配置一些設(shè)置,比如把IP地址、名字服務(wù)器等設(shè)好,不要打開IPv6,不需要 DHCP等服務(wù),不要系統(tǒng)默認(rèn)的FTP服務(wù),配置 /etc/inetd.conf 時(shí)把SSH服務(wù)打開,方便我們進(jìn)行遠(yuǎn)程管理,如果不想使用inetd這個(gè)超級(jí)服務(wù)來管理的話,可以關(guān)閉它,在/etc/rc.conf中添加 inetd_enable="NO",然后設(shè)置sshd_enable="YES"一樣可以打開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)裝完以后,就開始安裝我們的應(yīng)用軟件,我們的方針還是最新的軟件是最安全的,比如能夠防止一些老版本中的溢出等等。我們基本就是要讓我們的系統(tǒng)有數(shù)據(jù)庫(kù),同時(shí)能夠處理Web服務(wù),同時(shí)能夠遠(yuǎn)程對(duì)網(wǎng)站進(jìn)行文件管理的FTP服務(wù)。我們基本選擇的程序都是比較通常的程序。另外,為了有個(gè)可視化的管理工具,我們同時(shí)也可以安裝一個(gè)基于瀏覽器的管理工具Webmin,方便沒有ssh客戶端等等的時(shí)候進(jìn)行管理。
首先我們選用的Web服務(wù)是Apache httpd 2.0.53,這是目前的最新版本,當(dāng)然你也可以考慮1.3的版本,主要是看個(gè)人習(xí)慣。我們網(wǎng)站是PHP程序編寫,所以要安裝PHP,版本是 4.3.11,也是最新的版本,如果你的網(wǎng)站程序需要PHP5的支持,那么可以下載php5.0.4。數(shù)據(jù)庫(kù)還是最快速的Mysql,選擇的版本是最新的 4.0.23,如果你需要外鍵、事務(wù)、子查詢、存儲(chǔ)過程等的支持,那么你可以考慮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 來進(jìn)行安裝,這看個(gè)人愛好,我個(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是沒有的:/usr/sbin/nologin ,主要是為了防止它通過ssh登陸到系統(tǒng)。同時(shí)FTP的密碼也要設(shè)置的非常復(fù)雜,防止黑客通過暴力破解獲得FTP權(quán)限。另外還要說道我們的root用戶的密碼,我想最少應(yīng)該不要少于10位的數(shù)字+字母+字符的密碼(我的密碼是18位),否則是非常不安全的,如果密碼簡(jiǎn)單,那么黑客通過短時(shí)間的暴力破解 SSH中的root帳戶,不用幾天,系統(tǒng)就可能被攻破了,同時(shí)也建議最少一個(gè)月更改一次root用戶的密碼。(強(qiáng)烈建議一般帳戶不要有登陸系統(tǒng)的權(quán)限,就是把shell設(shè)為/usr/sbin/nologin)
一般如果要使用root權(quán)限建議建立一個(gè)屬于wheel組的小用戶,然后登陸后通過su命令提升為root用戶進(jìn)行管理,如果黑客通過破解了我們普通用戶的權(quán)限后登陸系統(tǒng),也不能直接通過root權(quán)限進(jìn)行管理,這是一種安全防范的簡(jiǎn)單方法。
2. 文件訪問控制
有時(shí)候被黑客入侵后拿到了小權(quán)限用戶,比如傳了一個(gè)WebShell到系統(tǒng)中,那么對(duì)方很可能會(huì)把 /etc/passwd 等內(nèi)容直接讀取出來,同時(shí)查看/etc/master.passwd中對(duì)加密后的root用戶的密碼hash進(jìn)行破解,最后拿到密碼進(jìn)行登陸系統(tǒng)。那么我們就要控制部分文件只有root能夠訪問,其他用戶無(wú)權(quán)訪問。比如uname,gcc等,如果黑客拿到小權(quán)限用戶后就會(huì)查看系統(tǒng)版本,然后找到該版本系統(tǒng)對(duì)應(yīng)的溢出程序,使用gcc來進(jìn)行編譯,如果我們能夠限制黑客訪問uname和gcc等程序,能在一定程度上減緩黑客入侵的腳步。
使用chmod來改變某個(gè)文件的權(quán)限信息,比如我要 /etc/passwd 和 /etc/master.passwd 文件只能允許root訪問:
使用八進(jìn)制數(shù)字來設(shè)置
# chmod 700 /etc/passwd
# chmod 700 /etc/master.passwd
使用字符標(biāo)記來進(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è)置控制訪問權(quán)限,一定要控制好,否則將會(huì)構(gòu)成重要威脅。
3. 系統(tǒng)服務(wù)和端口控制
端口開的越多就越給黑客多一個(gè)入侵的機(jī)會(huì),服務(wù)越多,危險(xiǎn)越大,因?yàn)槟悴恢滥切┓?wù)是不是有潛在的漏洞或者又發(fā)現(xiàn)了新的漏洞,所以盡量少的服務(wù),比如sendmail默認(rèn)是打開的,那么些建議你把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之外不要打開其他任何端口和服務(wù)。基本的方式是使用netstat -a 查看打開的端口,然后從對(duì)應(yīng)的端口來找相關(guān)的服務(wù),比如我們這里應(yīng)該只允許開的端口有 21, 22, 80, 3306等,如果有其他端口,那么一定要仔細(xì)檢查,很可能是黑客的后門或者是會(huì)對(duì)系統(tǒng)安全構(gòu)成威脅的服務(wù)。同時(shí)有些服務(wù)不需要****網(wǎng)絡(luò)連接的話,只是需要本地的連接,比如Mysql,那么就可以關(guān)閉Socket****,這個(gè)將在Mysql安全設(shè)置中講解,另外,可以通過防火墻來控制部分端口訪問和連接狀況,比如Mysql的3306端口只允許192.168.0.1訪問,那么我們就在ipfw里添加規(guī)則:
ipfw add 10001 allow tcp from 192.168.0.1 to 10.10.10.1 80 in
這樣就能夠防止黑客來訪問服務(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)值,如果覺得不對(duì)勁的時(shí)候就進(jìn)行匹配,保證文件的安全。
你可以給你覺得需要做指紋備份的目錄進(jìn)行備份,一般這是為了以后被黑客入侵后的系統(tǒng)檢測(cè)和系統(tǒng)恢復(fù)。比如可以通過文件被修改的時(shí)間來確定是不是被入侵,比如可以對(duì)比看 /etc/inetc.conf文件和備份的文件有什么不同來確定是不是安裝了服務(wù)型后門等。
6. 系統(tǒng)指紋泄漏和防范 (未完)
一般黑客為了入侵某個(gè)系統(tǒng),一定會(huì)先進(jìn)行掃描等工作,掃描包括目標(biāo)系統(tǒng)的端口開放情況和服務(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)單的說一些修改那些服務(wù)Banner的方法。
* Apache
修改httpd.conf文件,設(shè)置以下選項(xiàng):
ServerSignature Off
ServerTokens Prod
上面的適用apache1***, apache 2.0這些都是默認(rèn) , 不過還是有server=Apache字樣, 若要完全去掉需重新
主站蜘蛛池模板:
久久亚洲精品久久国产一区二区
|
国产精品视频
|
精品国产一区在线观看
|
宅男噜噜噜66一区二区
|
久久久aa
|
欧美成人性色区
|
日韩欧美高清一区
|
久久久久免费电影
|
精品一区二区三区在线观看视频
|
91亚洲免费视频
|
在线成人精品视频
|
精品一区二区三区在线观看视频
|
视频h在线
|
欧美一级免费在线观看
|
欧美在线观看视频一区二区
|
精品一区二区中文字幕
|
爱性久久久久久久
|
成人福利在线视频
|
一本免费视频
|
亚洲午夜视频
|
久久思思爱
|
香蕉久久久久
|
福利免费在线
|
九九热视频在线免费观看
|
欧美日韩国产中文字幕
|
国产在线精品一区二区三区不卡
|
欧美一区二区精品夜夜嗨
|
欧美成人免费一级
|
极品美女一级毛片
|
粉嫩粉嫩一区二区三区在线播放
|
欧美成人三级视频
|
性感美女一级毛片
|
天天看夜夜爽
|
亚洲卡通动漫在线观看
|
久久精品久久久久
|
欧美特级黄色
|
嫩呦国产一区二区三区av
|
男女做性免费网站
|
亚洲精品成人久久久
|
色操网|
色淫影院
|