Linux伺服器安全配置加固防護方法

2021-09-20 09:21:13 字數 3368 閱讀 9779

本文詳細總結了php**在linux伺服器上面的安全配置,包含php安全、mysql資料庫安全、web伺服器安全、木馬查殺和防範等,很好很強大很安全。(如果需要深入的安全部署建議找專業做安全的國內公司如:sinesafe,綠盟,啟明星辰等等都是比較不錯的專業做**安全的公司)

php安全配置

1. 確保執行php的使用者為一般使用者,如www

2. php.ini引數設定

disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,phpinfo #禁用的函式

expose_php = off #避免暴露php資訊

display_errors = off #關閉錯誤資訊提示

register_globals = off #關閉全域性變數

enable_dl = off #不允許呼叫dl

allow_url_include = off #避免遠端呼叫檔案

session.cookie_httponly = 1 #http only開啟

upload_tmp_dir = /tmp#明確定義upload目錄

open_basedir = ./:/tmp:/home/wwwroot/#限制使用者訪問的目錄

open_basedir引數詳解

open_basedir可將使用者訪問檔案的活動範圍限制在指定的區域,通常是其家目錄的路徑,也可用符號"."來代表當前目錄。注意用open_basedir指定的限制實際上是字首,而不是目錄名。

舉例來說: 若"open_basedir = /home/wwwroot", 那麼目錄"/home/wwwroot"和"/home/wwwroot1"都是可以訪問的。所以如果要將訪問限制在僅為指定的目錄,請用斜線結束路徑名。

注意:

從網上獲取的資料來看,open_basedir會對php操作io的效能產生很大的影響。研究資料表明,配置了php_basedir的指令碼io執行速度會比沒有配置的慢10倍甚至更多,請大家自己衡量

open_basedir也可以同時設定多個目錄, 在windows中用分號分隔目錄,在任何其它系統中用冒號分隔目錄。當其作用於apache模組時,父目錄中的open_basedir路徑自動被繼承。

mysql安全設定

1. mysql版本的選擇

在正式生產環境中,禁止使用4.1系列的mysql資料庫。至少需要使用5.1.39或以上版本。

2. 網路和埠的配置

在資料庫只需供本機使用的情況下,使用–skip-networking引數禁止監聽網路 。

3. 確保執行mysql的使用者為一般使用者,如mysql,注意存放資料目錄許可權為mysql

vi/etc/my.cnf

user = mysql

4. 開啟mysql二進位制日誌,在誤刪除資料的情況下,可以通過二進位制日誌恢復到某個時間點

vi/etc/my.cnf

log_bin = mysql-bin

expire_logs_days = 7

5. 認證和授權

(1) 禁止root賬號從網路訪問資料庫,root賬號只允許來自本地主機的登陸。

mysql>grantallprivilegeson*.* toroot @localhost identified by'password'withgrantoption;

mysql>flush priveleges;

(2) 刪除匿名賬號和空口令賬號

mysql>use mysql;

mysql>deletefromuserwhereuser=;

mysql>deletefromuserwherepassword=;

mysql>deletefromdb whereuser=;

web伺服器安全

確保執行nginx或者apache的使用者為一般使用者,如www,注意存放資料目錄許可權為www

防止sql注入

if( $query_string ~* ".*[\;'\].*")

關閉存放資料上傳等目錄的php解析

location ~* ^/(attachments|data)/.*\.(php|php5)$

針對apache:關閉目錄/上傳等目錄的php解析

order allow,deny

deny from all

木馬查殺和防範

php木馬快速查詢命令

grep-r --include=*.php '[^a-z]eval($_post'/home/wwwroot/

grep-r --include=*.php 'file_put_contents(.*$_post\[.*\]);'/home/wwwroot/

利用find mtime查詢最近兩天或者發現木馬的這幾天,有哪些php檔案被修改

find-mtime -2 -typef -name \*.php

防範:

1. 做好之前的安全措施,比如禁用相關php函式等

2. 改變目錄和檔案屬性

find-typef -name \*.php -execchomd 644 {} \;

find-typed -execchmod755 {} \;

chown-r www.www /home/wwwroot/www.waitalone.cn

3. 為防止跨站感染,需要做虛擬主機目錄隔離

(1) nginx的簡單實現方法

利用nginx跑多個虛擬主機,習慣的php.ini的open_basedir配置:

open_basedir = ./:tmp:/home/wwwroot/

注:/home/wwwroot/是放置所有虛擬主機的web路徑

黑客可以利用任何乙個站點的webshell進入到/home/wwwroot/目錄下的任何地方,這樣對各個虛擬主機的危害就很大

例如: /data/www/wwwroot目錄下有2個虛擬主機

修改php.ini

open_basedir = ./:/tmp:/home/wwwroot/www.sinesafe.com:/home/wwwroot/back.sinesafe.com

這樣使用者上傳webshell就無法跨目錄訪問了。

(2) apache的實現方法,控制跨目錄訪問

在虛擬機器主機配置檔案中加入

php_admin_value open_basedir "/tmp:/home/wwwroot/www.sinesafe.com"

Linux伺服器安全加固

一 修改密碼和ssh登入埠,並且盡可能的用金鑰對登入,禁止用密碼登入 主要針對linux 二 修改 etc hosts.allow 設定僅僅允許某幾台去ssh sshd 45.195.修改 etc hosts.deny sshd all in.telnet all 三 把系統中的一些不必要的使用者和...

伺服器安全加固

注 以下所有操作均在centos 6.5 x86 64位系統下完成。寫在最前 安全無小事,一切只要能增強安全性的事情,都是值得去做的。安全配置 1 防止伺服器被ping,禁止該功能。echo 1 proc sys net ipv4 icmp echo ignore all 並且儲存配置到開機自動設定...

SQL伺服器安全加固

步驟 說明 mdac公升級 安裝最新的mdac http www.microsoft.com data download.htm 密碼策略 由於sql server 不能更改 sa使用者名稱,也不能刪除這個超級使用者,所以,我們必須對這個帳號進行最強的保護,當然,包括使用乙個非常強壯的密碼,最好不要...