中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

FreeBSD系統(tǒng)Web服務(wù)器安全設(shè)置的方法

2018-09-13    來源:愛站科技

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

  FreeBSD是一種類UNIX操作系統(tǒng),那么接下來就由愛站頻道的小編給小伙伴們分享一篇關(guān)于FreeBSD系統(tǒng)Web服務(wù)器安全設(shè)置的方法吧,感興趣的朋友跟小編一起來了解一下吧!

  序言

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

  1. 系統(tǒng)安裝

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

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

  1. 用戶控制

  2. 文件訪問控制

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

  4. 日志管理和控制

  5. 文件指紋檢測

  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. 帳號后門

  2. shell后門

  3. cron服務(wù)后門

  4. rhosts后門

  5. Login后門

  6. Bind后門

  7. 服務(wù)后門

  8. rootkit后門

  9. 內(nèi)核后門

  10. 其他后門

  六、結(jié)束語

  附錄

  序言

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

  任何系統(tǒng)都可以很安全,也可以很不安全,關(guān)鍵是管理員怎么做的,世界上沒有最安全的系統(tǒng),只有更安全的系統(tǒng)。下面的文章就是

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

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

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

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

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

  服務(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等,那么相反會對服務(wù)器安全構(gòu)成威脅。

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

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

  1. 用戶控制

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

  一般如果要使用root權(quán)限建議建立一個屬于wheel組的小用戶,然后登陸后通過su命令提升為root用戶進(jìn)行管理,如果黑客通過破解了我們普通用戶的權(quán)限后登陸系統(tǒng),也不能直接通過root權(quán)限進(jìn)行管理,這是一種安全防范的簡單方法。

  2. 文件訪問控制

  有時候被黑客入侵后拿到了小權(quán)限用戶,比如傳了一個WebShell到系統(tǒng)中,那么對方很可能會把 /etc/passwd 等內(nèi)容直接讀取出來,同時查看/etc/master.passwd中對加密后的root用戶的密碼hash進(jìn)行破解,最后拿到密碼進(jìn)行登陸系統(tǒng)。那么我們就要控制部分文件只有root能夠訪問,其他用戶無權(quán)訪問。比如uname,gcc等,如果黑客拿到小權(quán)限用戶后就會查看系統(tǒng)版本,然后找到該版本系統(tǒng)對應(yīng)的溢出程序,使用gcc來進(jìn)行編譯,如果我們能夠限制黑客訪問uname和gcc等程序,能在一定程度上減緩黑客入侵的腳步。

  使用chmod來改變某個文件的權(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)中有多個重要文件需要設(shè)置控制訪問權(quán)限,一定要控制好,否則將會構(gòu)成重要威脅。

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

  端口開的越多就越給黑客多一個入侵的機(jī)會,服務(wù)越多,危險越大,因為你不知道那些服務(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 查看打開的端口,然后從對應(yīng)的端口來找相關(guān)的服務(wù),比如我們這里應(yīng)該只允許開的端口有 21, 22, 80, 3306等,如果有其他端口,那么一定要仔細(xì)檢查,很可能是黑客的后門或者是會對系統(tǒng)安全構(gòu)成威脅的服務(wù)。同時有些服務(wù)不需要監(jiān)聽網(wǎng)絡(luò)連接的話,只是需要本地的連接,比如Mysql,那么就可以關(guān)閉Socket監(jiān)聽,這個將在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. 文件指紋檢測

  文件指紋就是我們文件的基本信息,比如文件權(quán)限、文件所屬用戶/組、文件最后修改日期、文件大小等等,這些都是重要信息,一般黑客入侵后都可能修改文件,那么文件指紋就不一樣了。另外,文件的md5校驗值也屬于文件的指紋的一種。

  為了防止黑客篡改系統(tǒng)中的部分核心文件,比如 /etc/passwd, /etc/shadow, /etc/inetd.conf 等等,那么我們就可以考慮把部分重要文件進(jìn)行備份,同時做一份目前有的文件的一個指紋保留,比如把 /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)然,還有就是給每個重要的文件加上md5校驗值,如果覺得不對勁的時候就進(jìn)行匹配,保證文件的安全。

  你可以給你覺得需要做指紋備份的目錄進(jìn)行備份,一般這是為了以后被黑客入侵后的系統(tǒng)檢測和系統(tǒng)恢復(fù)。比如可以通過文件被修改的時間來確定是不是被入侵,比如可以對比看 /etc/inetc.conf文件和備份的文件有什么不同來確定是不是安裝了服務(wù)型后門等。# 程序崩潰時不記錄

  kern.coredump=0

  # lo本地數(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ù)連接時提供緩沖

  net.inet.tcp.inflight_enable=1

  # 數(shù)據(jù)包數(shù)據(jù)段最小值,ADSL為1452

  net.inet.tcp.minmss=1460

  # 本地數(shù)據(jù)最大數(shù)量

  net.inet.raw.maxdgram=65536

  # 本地數(shù)據(jù)流接收空間

  net.inet.raw.recvspace=65536

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

  net.inet.ip.fw.dyn_max=65535

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

  net.inet.ipf.fr_tcpidletimeout=864000

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

  到這里就是本文的重點(diǎn)所在了,我們將花費(fèi)比較多的文字進(jìn)行描述,當(dāng)然,所以描述不一定是非常正確的,也希望能夠?qū)δ阌幸恍⿴椭。我們系統(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打開配置文件:

  # ee /usr/local/apache2/conf/httpd.conf

  下面我們就要進(jìn)行比較多的安全設(shè)置了,基本的服務(wù)、端口、主目錄等等設(shè)置就不說了,只講與安全有關(guān)的設(shè)置。

  (1)指定運(yùn)行Apache服務(wù)的用戶和組

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

  User nobody

  Group #-1

  (2) Apache的日志文件

  Apache的日志文件是非常重要的,可以發(fā)現(xiàn)apache的運(yùn)行狀況和訪問情況,對于判斷入侵等有重要幫助。它的默認(rèn)選項是:

  # 錯誤日志存放目錄,默認(rèn)是存放在apache安裝目錄的logs下

  ErrorLog logs/error_log

  # 日志記錄的級別,級別有debug, info, notice, warn, error, crit等,默認(rèn)是“warn”級別

  LogLevel warn

  # 訪問日志記錄的格式,每一種格式都有不同的內(nèi)容,根據(jù)你的需要進(jì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 請求方式

  %l identd給出的遠(yuǎn)程名

  %p 連接的httpd端口號

  %P 請求的httpd進(jìn)程

  %t 時間

  %T 服務(wù)請求時間

  你可以定制自己的日志格式,然后通過CustomLog logs/access_log common來進(jìn)行調(diào)用。

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

  (3) Apache服務(wù)信息顯示控制

  在配置文件中有個選項是控制是否顯示apache版本信息、主機(jī)名稱、端口、支持的cgi等信息的:

  ServerSignature On

  默認(rèn)為On,那么將顯示所有信息:

  我故意訪問一個不存在的文件:http://www.target.com/404.html

  那么就會在給的錯誤提示中顯示如下信息:

  Apache/2.0.53 (Unix) PHP/4.3.11 Server at target.com Port 80

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

  (4) 目錄瀏覽

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

  Options Indexes FollowSymLinks

  AllowOverride None

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

  Options FollowSymLinks

  AllowOverride None

  (5) 用戶主頁

  設(shè)置httpd.conf中的:

  UserDir public_html

  能夠使得每個使用系統(tǒng)的用戶在自己的主目錄下建立 public_html 目錄后就能夠把自己的網(wǎng)頁放進(jìn)該目錄,然后通過:

  http://www.target.com/~用戶名/網(wǎng)頁 就能夠顯示自己的網(wǎng)頁,這是不安全的,而且對于我們服務(wù)器來講,這沒有必要,所以我們直接關(guān)閉該功能:

  UserDir disabled

  或者把該內(nèi)容改名,改成 一個黑客比較不容易猜到的文件名,比如:

  UserDir webserver_public_htmlpath

  也可以只允許部分用戶具有該功能:

  UserDir enabled user1 user2 user3

  (6) CGI執(zhí)行目錄

  如果你的apache要執(zhí)行一些perl等cgi程序,那么就要設(shè)置一下選項:

  ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"

  但是這也給了黑客利用一些不安全的cgi程序來進(jìn)行破壞,所以如果你不需要cgi的話,建議關(guān)閉該選項:

  #ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"

  (7) 控制PHP腳本只能訪問指定目錄

  在httpd.conf添加如下內(nèi)容:

  php_admin_value open_basedir /usr/www

  后面的路徑是你需要PHP腳本能夠訪問的目錄,如果PHP腳本想要訪問其他目錄將出項錯誤提示。

  (8) 目錄訪問控制 (未完)

  這項內(nèi)容最復(fù)雜,同時涉及的東西也比較多,我只能簡單說一下,不清楚請參考其他文章。

  比如下面的內(nèi)容:

  Options FollowSymLinks

  AllowOverride None

  就是允許訪問每一個目錄,里面設(shè)置的是允許執(zhí)行的動作,一般包含的動作有:Options、AllowOverride、Order、Allow、Deny。

  Options是只對指定目錄及其子目錄能夠執(zhí)行的操作,Indexes、Includes、FollowSymLinks、ExecCGI、MultiViews、None、All等操作。

  AllowOverride是指定目錄訪問的權(quán)限,當(dāng)然也可以通過 AccessFileName文件指定的 .htaccess 來控制。它的操作有:None、All、Options、FileInfo、AuthConfit、Limit等。

  Order、Allow、Deny三個指令必須配合來控制目錄訪問權(quán)限。Order指定檢查次序的規(guī)則,比如Order Allow, Deny,表示先按Allow檢查,如果不匹配再按Deny進(jìn)行檢查。Order Deny, Allow ,表示先按Deny規(guī)則檢查,如果不滿足條件,再按Allow進(jìn)行檢查。(6) 控制數(shù)據(jù)庫訪問權(quán)限

  對于使用php腳本來進(jìn)行交互,最好建立一個用戶只針對某個庫有 update、select、delete、insert、drop table、create table等權(quán)限,這樣就很好避免了數(shù)據(jù)庫用戶名和密碼被黑客查看后最小損失。

  比如下面我們創(chuàng)建一個數(shù)據(jù)庫為db1,同時建立一個用戶test1能夠訪問該數(shù)據(jù)庫。

  mysql> create database db1;

  mysql> grant select,insert,update,delete,create,drop privileges on db1.* to test1@localhost identified by ’admindb’;

  以上SQL是創(chuàng)建一個數(shù)據(jù)庫db1,同時增加了一個test1用戶,口令是admindb,但是它只能從本地連接mysql,對db1庫有select,insert,update,delete,create,drop操作權(quán)限。

  (7) 限制一般用戶瀏覽其他用戶數(shù)據(jù)庫

  如果有多個數(shù)據(jù)庫,每個數(shù)據(jù)庫有一個用戶,那么必須限制用戶瀏覽其他數(shù)據(jù)庫內(nèi)容,可以在啟動MySQL服務(wù)器時加--skip-show-database 啟動參數(shù)就能夠達(dá)到目的。

  (8) 忘記mysql密碼的解決辦法

  如果不慎忘記了MySQL的root密碼,我們可以在啟動MySQL服務(wù)器時加上參數(shù)--skip-grant-tables來跳過授權(quán)表的驗證 (./safe_mysqld --skip-grant-tables &),這樣我們就可以直接登陸MySQL服務(wù)器,然后再修改root用戶的口令,重啟MySQL就可以用探索者費(fèi)大量系統(tǒng)資源:

  ls_recurse_enable=NO

  (8) 上傳文件的默認(rèn)權(quán)限,設(shè)置為022:

  local_umask=022

  如果要覆蓋刪除等,還要打開:

  write_enable=YES

  (9) ftp的banner信息,為了防止黑客獲取更多服務(wù)器的信息,設(shè)置該項:

  ftpd_banner=banner string

  把后面的banner string設(shè)為你需要的banner提示信息,為了安全,建議不要暴露關(guān)于vsFTPd的任何信息。

  另外,如果你的信息比較多的話,可以設(shè)置為提示信息是讀取一個文件中的信息:

  banner_file=/directory/vsftpd_banner_file

  (10) 打開日志功能:

  xferlog_enable=YES

  同時設(shè)置日志的目錄:

  xferlog_file=/var/log/vsftpd.log

  啟用詳細(xì)的日志記錄格式:

  xferlog_enable=YES

  (11) 如果打開虛用戶功能等,那么建議關(guān)閉本地用戶登陸:

  local_enable=NO

  vsFTPd還有很多安全設(shè)置,畢竟人家的名字就是:Very Secure FTP Daemon,反正它的溢出漏洞什么的是很少的,如果要更安全,建議按照自己的需要設(shè)置vsftpd,設(shè)置的好,它絕對是最安全的。

  5. SSH安全設(shè)置

  SSH是一個基于SSL的安全連接遠(yuǎn)程管理的服務(wù)程序,主要出現(xiàn)就是為了解決telnet、rlogin、rsh等程序在程序交互過程中存在明文傳輸易被監(jiān)聽的問題而產(chǎn)生的,目前基本上是推薦使用ssh來代替telnet、rlogin、rsh等遠(yuǎn)程管理服務(wù)。

  ssh能夠直接在windows平臺下通過Secure SSH Client等客戶端工具進(jìn)行連接管理,目前最流行的服務(wù)器端就是OpenSSH程序,目前最新版本是OpenSSH4.0版,詳細(xì)可以參考www.openssh.com網(wǎng)站。

  OpenSSH在FreeBSD下已經(jīng)集成安裝了,F(xiàn)reeBSD5.3下的OpenSSH版本是3.8.1,建議ports升級到4.0。

  主要的安全配置文件是/etc/ssh/sshd_config文件,我們編輯該文件。

  (1) 使用protocol 2代替protocol 1,SSH2更加安全,可以防止攻擊者通過修改攜帶的版本banner來劫持(hijacking)啟動會話進(jìn)程并降低到protocol 1。注釋掉protocol 2,1 改用下面語句代替:

  protocol 2

  (2) 合理設(shè)置最大連接數(shù)量, 防止DOS攻擊

  MaxStartups 5:50:10

  (3)關(guān)閉X11forwording ,防止會話劫持

  X11Forwarding no 2. shell后門

  這個比較常用,也比較流行。一般就是把root執(zhí)行的shell程序通過setuid的形式把shell程序拷貝到其他能夠執(zhí)行的地方,然后只要用小權(quán)限用戶執(zhí)行該shell就能夠直接獲取root權(quán)限。

  比如:

  # cp /bin/sh /tmp/.backdoor

  # chown root:root /tmp/.backdoor

  # chmod +s /tmp/.backdoor

  這樣只是把sh復(fù)制了,如果你喜歡其他shell,比如ksh、csh也可以,具體你看各個不同的操作系統(tǒng)而定。你就可以把那個加了s標(biāo)記的shell程序放到任何目錄,最好是深一點(diǎn),不容易被人發(fā)現(xiàn)的地方,比如/usr/local/share/man之類的目錄,然后你使用小權(quán)限用戶登陸后執(zhí)行該shell就可以了,比如我們上面復(fù)制的shell,我們只要用小權(quán)限用戶登陸后執(zhí)行:

  $ /tmp/.backdoor

  #

  就可以了,當(dāng)然,如何獲得小權(quán)限用戶,你可以使用暴力破解一些帳戶,或者自己創(chuàng)建一個小權(quán)限的帳戶。

  * 防范方法:

  首先給各個主要目錄加上我們上面說的文件指紋校驗,知道某個目錄下有什么文件,如果多出了可疑文件可以仔細(xì)檢查。還有使用find命令來查找有沒有危險的root suid程序:

  find / -type f (-perm -4000 -o -perm -2000 ) -print

  3. Crontab服務(wù)后門

  crontab命令就相當(dāng)于windows下的at命令,定期執(zhí)行某些任務(wù)。對黑客來講,比如定期建立一個帳戶,然后過多久就刪除,這樣管理員永遠(yuǎn)看不到系統(tǒng)中有后門,這樣是非常保險的。。

  * 防范方法:

  cron的服務(wù)默認(rèn)是存儲在 /var/spool/crontab/root目錄下,定期檢查cron服務(wù),看是否有異常的任務(wù)在執(zhí)行,或者如果你不使用cron的話,直接關(guān)閉掉它。

  4. rhosts后門

  Rhosts文件常常被黑客利用來制作后門,如果系統(tǒng)開了rlogin、rexec等r的服務(wù),因為象rlogin這樣的服務(wù)是基于rhosts文件里的主機(jī)名使用簡單的認(rèn)證方法,所以黑客只要將.rhosts文件設(shè)置成"++",那么就允許任何人從任何地方使用該用戶名,無須口令登陸513端口的rlogin服務(wù)就行。而且r之類的服務(wù)沒有日志能力,不容易被發(fā)現(xiàn)。

  實現(xiàn)方法:

  # echo "++" > /usr/heiyeluren/.rhosts

  # rlogin -l heiyeluren localhost

  這樣就不需要任何密碼,直接輸入用戶名heiyeluren就登陸到了系統(tǒng)。

  * 防范辦法:

  不要使用rlogin等服務(wù),同時也不推薦使用telnet等服務(wù),因為telnetd等守護(hù)進(jìn)程溢出漏洞一堆,而且在數(shù)據(jù)傳輸過程中是沒有加密的,很容易被嗅探,建議使用ssh等經(jīng)過安全加密的服務(wù)來替代。

  5. Login后門

  login程序通常用來對telnet來的用戶進(jìn)行口令驗證. 入侵者獲取login的原代碼并修改使它在比較輸入口令與存儲口令時先檢查后門口令. 如果用戶敲入后門口令,它將忽視管理員設(shè)置的口令讓你長驅(qū)直入。

  * 防范方法:

  一般針對這類后門,一般都是使用"string"命令搜索login程序中是否有中是否有密碼等字符串來進(jìn)行檢查。如果密碼經(jīng)過加密,那么就對login文件進(jìn)行指紋記錄和MD5值的記錄,覺得異常時進(jìn)行檢測。

  6. Bind后門

  就是通過常用的網(wǎng)絡(luò)連接協(xié)議 TCP/UDP/ICMP 來建立連接的后門,這個在Windows下可是轟轟烈烈。

  比較普遍的有TCP協(xié)議的后門都是寫一段程序開一個指定的端口進(jìn)行監(jiān)聽,然后從客戶端進(jìn)行連接后登陸系統(tǒng)。也有黑客為了隱蔽使用UDP協(xié)議來連接。icmp后門也常見,一般是。有時候可能bind后門跟服務(wù)后門結(jié)合,黑客通過自己寫的bind后門來替換inetd中的服務(wù)。

  * 防范方法:

  經(jīng)常使用netstat命令檢查有沒有非法的端口打開,最好直接用防火墻屏蔽除了正常訪問的端口之外的端口。對于ping后門的話,直接在防火墻上禁止ping服務(wù)器

  以上就是關(guān)于FreeBSD系統(tǒng)Web服務(wù)器安全設(shè)置的方法,想必都了解了吧,更多相關(guān)內(nèi)容請繼續(xù)關(guān)注愛站技術(shù)頻道。

標(biāo)簽: ftp服務(wù)器 linux Mysql ssd ssl web服務(wù)器 web服務(wù)器安全 安全 代碼 防火墻 防火墻設(shè)置 訪問服務(wù)器 服務(wù)器 服務(wù)器安全 服務(wù)器端 

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:Linux配置DNS服務(wù)器的詳細(xì)教程

下一篇:Windows 2003架設(shè)dhcp服務(wù)器的詳細(xì)教程