自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

打造Linux下超安全的LAMP服務(wù)器

系統(tǒng) Linux
本文全面細(xì)致的介紹了在Linux下加固apache+php+mysql的方法,通過仔細(xì)閱讀本文,你可以快速掌握安全配置apache,php,和mysql的方方面面,還有chroot這個前沿而強(qiáng)悍的技術(shù)。

本文全面細(xì)致的介紹了在Linux下加固apache+php+mysql的方法,通過仔細(xì)閱讀本文,你可以快速掌握安全配置apache,php,和mysql的方方面面,還有chroot這個前沿而強(qiáng)悍的技術(shù),依靠這些知識,完全可以讓你的WWW服務(wù)器在層出不窮的SQL注射(SQL Injection)和CSS跨站腳本攻擊(Cross Site Script)中屹立不倒。

從動網(wǎng)的幾個漏洞到獨孤劍客的網(wǎng)站被黑,腳本攻擊鬧的沸沸揚(yáng)揚(yáng),可見它在網(wǎng)絡(luò)攻擊中終于顯現(xiàn)出他的重要性了。由于程序開發(fā)人員無意或有意的不小心,用Perl、PHP、ASP等編寫的腳本就會出現(xiàn)這樣或那樣的錯誤,輕則導(dǎo)致泄露路徑,重則導(dǎo)致整個服務(wù)器被攻陷甚至蔓延到整個網(wǎng)絡(luò)。難道我們就非得把所用的腳本讀N遍,認(rèn)真的分析?我相信不是人人都有這等功力的,就算有這樣的功力也不會枉費(fèi)那么多的時間和精力。

你可能會問:“我既想用網(wǎng)上免費(fèi)的程序,又不想因此受到重創(chuàng)。難道就沒有一個兩全的辦法?”

針對windows主機(jī),我們可以使用IISLockdown,SecureIIS之類的

針對*nix主機(jī)給大家提出兩個方案,一個就是給apache裝上mod-security模塊,另外一個辦法就是把LAMP放置在一個chroot jail環(huán)境中。當(dāng)然,最強(qiáng)的還是把兩個方案結(jié)合在一起咯:)

下面,讓我們一起來分享這兩個方案

前提:我們只需要有普通的linux操作經(jīng)驗,包括vi的使用等

首先,我們先弄清楚幾個概念

什么是Debian:一個完全自由的Linux操作系統(tǒng),他最令我心儀的就是他的apt包管理工具,讓你安裝或者升級軟件無憂!如果你是CERNET用戶的話,推薦你到電子科大http://debian.ustc.edu.cn或者我的網(wǎng)站http://secu.zzu.edu.cn升級,CHINANET用戶可以在http://mirror.gennkbone.org升級

什么是LAMP:就是Linux Apache MySQL Php的縮寫,幾乎是最強(qiáng)的架站組合

什么是chroot:是change root的縮寫,就是把一個進(jìn)程守護(hù)程序限制在某個特定的root環(huán)境中執(zhí)行,這個被chroot了的程序幾乎接近無法訪問任何超出了這個root的任何文件或空間,這個root目錄(也就是下面我們說到的jail)包含了執(zhí)行進(jìn)程守護(hù)程序所需要的所有文件,在你正確配置之后,絕大多數(shù)的入侵者是不可能跳出jail而接觸到外面的文件的。這樣我們就可以最大限度的限制入侵者保護(hù)自己。

本文主要涉及到的軟件

makejail http://www.floc.net/makejail/

是一個自動把建立jail所需要的程序放到j(luò)ail內(nèi)的軟件,使用python編寫,他有debian和openbsd的版本

Zend Performance Suit http://www.zend.com

Zend公司開發(fā)的一套給PHP加速的東西,包括一個代碼優(yōu)化器(optimizer)和一個加速器(accelerator),還有cache功能,很好使的,有了他,php程序跑起來就跟飛一樣!可以申請30天試用版本的,如果你覺得好用的話就買下來吧:)mod-security http://www.modsecurity.org/他是apache的一個模塊,他有請求過濾,日志審計等功能,可以防止SQL Injection,跨站腳本攻擊,很不錯的一個模塊

我們假設(shè)我們手頭上有一個裝好的debian woody,并且已經(jīng)正確設(shè)置了了apt源

二話不說,先升級到debian sarge,也就是testing版本,我覺得這個版本還是不錯的,因為他的軟件比較新,而且有security支持,最主要這個版本的軟件列表包含makejail這個軟件

首先su到root升級系統(tǒng)并安裝apache,php,mysql,gd

更新apt源,我在教育網(wǎng),所以使用中科大的apt源debian.ustc.edu.cn速度很快

[root@debian /]apt-get update (如圖update.jpg)

再更新所有軟件包

[root@debian /]apt-get dist-upgrade(如圖upgrade.jpg)

[root@debian /]apt-get install apache php4 php4-gd2 php4-mysql mysql-server mysql-client

并且把extension=gd.so和extension=mysql.so加到php.ini中

你的系統(tǒng)就已經(jīng)裝上了apache-1.3.27,php-4.1.2,mysql-4.0.13

這樣一個基本的LAMP就起來了,簡單吧。

再加一個系統(tǒng)用戶,這個用戶是我們等會chroot要用的

[root@debian /]adduser --home /chroot/apache --shell /dev/null --no-create-home --system --group chrapax

接著我們編輯httpd.conf文件并做一些修改,刪除多余的apache模塊并激活php模塊

[root@debian /]vi /etc/apache/httpd.conf

注釋掉除了mod_access,mod_auth,mod_dir,mod_log_config,mod_mime,mod_alias之外的所有模塊

去掉注釋LoadModule php4_module /usr/lib/apache/1.3/libphp4.so以支持PHP (如圖apache_mod.jpg )

設(shè)置ServerAdmin fatb@zzu.edu.cn

設(shè)置ServerName secu.zzu.edu.cn

下面的Options Indexes Includes FollowSymLinks MultiViews的Indexes去掉,這樣避免被別人索引目錄

把用戶和組改成chrapax

User chrapax

Group chrapax

在下面加上index.php如下

DirectoryIndex index.php index.html index.htm index.shtml index.cgi

默認(rèn)使用中文字符集

AddDefaultCharset gb2312

加出錯重定向,這樣當(dāng)出現(xiàn)下面的錯誤的時候,用戶就會被重頂向到到你指定的頁面

ErrorDocument 404 http://secu.zzu.edu.cn/index.php

ErrorDocument 402 http://secu.zzu.edu.cn/index.php

ErrorDocument 403 http://secu.zzu.edu.cn/index.php

ErrorDocument 500 http://secu.zzu.edu.cn/index.php

把signature關(guān)掉

ServerSignature Off

如果signature打開的話,當(dāng)有人訪問到一個被禁止或者不存在的頁面的話,會出現(xiàn)一些錯誤信息的

這樣的信息,不好,去掉他 (如圖403.jpg)

如果不需要cgi支持的話,刪除

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None

Options ExecCGI -MultiViews

Order allow,deny

Allow from all

這行的注釋去掉,因為我們需要PHP支持

#p#

把AddType application/x-httpd-php .php

最后把多余的Alias,Directory,Location都去掉,保存退出

OK,apache算是配置完畢,我比較喜歡干凈的配置文件,下面的命令可以去掉httpd.conf里#打頭的行

[root@debian /]mv httpd.conf httpd.conf.bak

[root@debian /]grep -v '#' httpd.conf.bak > httpd.conf

到此為止,apache配置文件編輯完畢

接著我們開始加固php,我們打開php.ini

[root@debian /]vi /etc/php4/apache/php.ini

首先打開安全模式,打開他的好處就是PHP文件只能訪問所有者和PHP文件所有著一樣的文件,即使在chroot環(huán)境下也無法訪問jail中屬主不一樣的文件,類似于php shell這樣的后門就沒用武之地了哦,phpshell是很流行的php后門,他可以執(zhí)行系統(tǒng)命令,就象他的名字一樣,和shell很接近(如圖phpshell.jpg)safe_mode = On

如果php程序沒有指明需要register_globals的話,最好把register_globals設(shè)置為Off,這樣可以避免很多安全問題的

舉個例子吧,我們有一個這樣的PHP文件片段叫做test.php

  // 前面的代碼

  
if ($authorised) {

  
// 執(zhí)行一些受保護(hù)的動作

  }

  
// 其余的代碼

  }

如果register_globle是打開的話,入侵者可以通過提交這樣一個請求來繞過驗證

http://www.test.com/test.php?authorised=1

當(dāng)然,如果你非得使用register_globle的話,我們在后面同樣可以使用mod-security來限制一下的

open_basedir =/var/www/

上面的設(shè)置就限制了fopen(), file()等函數(shù)可以操作的目錄范圍,避免了入侵者非法讀取文件,一定要在/var/www后面加"/",否則/var/wwww下的文件也能被訪問

禁止使用phpinfo和get_cfg_var函數(shù),這樣可以避免泄露服務(wù)信息

disable_functions = phpinfo,get_cfg_var

如果我們使用了被禁止使用的phpinfo函數(shù)的話,我們可以看到這樣的錯誤

Warning: phpinfo() has been disabled for security reasons in /var/www/info.php on line 1

設(shè)置php程序錯誤日志,這樣我們可以很清楚的知道程序問題所在

error_reporting = E_ALL

log_errors = On

error_log = /var/log/php_err.log

默認(rèn)display_error是打開的,我們在jail沒弄好之前還是打開他,或許出錯信息可以給我們一點提示的,但是在完工之后記得關(guān)閉這個選項啊,因為他顯示出的一些出錯信息有可能會暴露你的物理路徑的。

在這個過程中,最需要注意的就是不能使用root做為php程序的屬主,否則php程序就可以隨意訪問他的屬主,也就是root所有的文件了,這樣就完全失去了safe_mode的意義了

禁止打開遠(yuǎn)程地址,記得最近出的php include的那個漏洞嗎?就是在一個php程序中include了變量,那么入侵者就可以利用這個控制服務(wù)器在本地執(zhí)行遠(yuǎn)程的一個php程序,例如phpshell,所以我們關(guān)閉這個

allow_url_fopen = Off

OK,保存退出

到此為止,針對php的安全優(yōu)化基本上完畢,下面我們開始給mysql"做手腳"吧

Debian下用apt裝的mysql默認(rèn)已經(jīng)禁止從網(wǎng)絡(luò)連接mysql了的,我們可以從他的配置文件my.cnf里看出來,但是得注意一下,RedHat的RPM,FreeBSD的ports安裝,skip-networking是注釋掉了的,也就是監(jiān)聽3306端口了,要是mysql出了什么問題,別人就可以有機(jī)會利用了。

【編輯推薦】

  1. Xen虛擬機(jī)實戰(zhàn):如何用Linux命令建快照
  2. 攻防有道 剖析對Linux服務(wù)器的攻擊
  3. Linux服務(wù)器平臺的安全保護(hù)
責(zé)任編輯:趙寧寧 來源: LUPA開源社區(qū)
相關(guān)推薦

2010-03-24 10:32:09

CentOS服務(wù)器

2011-03-11 10:39:04

2009-11-29 17:18:38

Linux服務(wù)器

2017-05-24 12:30:34

2018-01-31 11:20:48

2010-08-23 15:51:36

DHCP服務(wù)器Linux

2010-08-06 12:29:17

Linux NFS服務(wù)

2011-01-18 15:47:20

2011-01-18 16:05:33

Linux郵件服務(wù)器

2011-01-18 15:54:32

2009-07-04 14:37:12

2011-02-23 13:26:18

Linuxvsftp

2009-02-27 11:32:00

2011-03-11 15:52:57

LAMP優(yōu)化

2009-12-25 12:17:47

2010-01-12 12:07:28

2018-09-06 10:16:39

2009-07-22 10:18:20

緩存服務(wù)器

2018-08-28 09:12:58

LinuxPHP服務(wù)器

2012-11-26 09:48:50

Linux服務(wù)器
點贊
收藏

51CTO技術(shù)棧公眾號