linux系統下如何加固你的nginx和php
添加時間:2015-6-3 21:26:36
添加:
思海網絡
linux系統相對比windows安全,但是有些程序上的不安全行為。不管你是什么系統,一樣也會存在危險因素,在這里,我們總結出了linux系統下的一些常見排除木馬和加固系統安全性的方法。
1、改變目錄和文件屬性,禁止寫入
find -type f -name \*.php -exec chmod 444 {} \;
find -type d -exec chmod 555 {} \;
注:當然要排除上傳目錄、緩存目錄等;
同時最好禁止chmod函數,攻擊者可通過chmod來修改文件只讀屬性再修改文件
2、php的危險配置
禁用一些危險的php函數,例如:
passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,
ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,popen,dl,
syslog,show_source
3、nginx安全方面的配置
限制一些目錄執行php文件
location~^/images/.*\.(php|php5)$
{
denyall;
}
location~^/static/.*\.(php|php5)$
{
denyall;
}
location~*^/data/(attachment|avatar)/.*\.(php|php5)$
{
denyall;
}
注:這些目錄的限制必須寫在
location~.*\.(php|php5)$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
的前面,否則限制不生效!
path_info漏洞修正:
在通用fcgi.conf頂部加入
if ($request_filename ~* (.*)\.php) {
set $php_url $1;
}
if (!-e $php_url.php) {
return 404;
}
4、linux系統下查找php的相關木馬
php木馬一般含有<?php eval($_POST[cmd]);?>或者<?php assert($_POST[cmd]);?>
find /data/wwwroot/* -type f -name "*.php" |xargs grep "eval(" > /root/scan.txt
另外也有上傳任意文件的后門,可以用上面的方法查找所有包括"move_uploaded_file"的文件.
還有常見的一句話后門:
grep -r --include=*.php '[^a-z]eval($_POST' . > grep.txt
grep -r --include=*.php 'file_put_contents(.*$_POST\[.*\]);' . > grep.txt
把搜索結果寫入文件,下載下來慢慢分析,其他特征木馬、后門類似。有必要的話可對全站所有文件來一次特征查找,上傳圖片肯定有也捆綁的,來次大清洗。
5、查找近3天被修改過的文件:
find /data/www -mtime -3 -type f -name \*.php
注意:攻擊者可能會通過touch函數來修改文件時間屬性來避過這種查找,所以touch必須禁止
6、查找所有圖片文件
查找所有圖片文件gif,jpg.有些圖片內容里被添加了php后門腳本.有些實際是一個php文件,將擴展名改成了gif了.正常查看的情況下也可以看到顯示的圖片內容的.這一點很難發現.
曾給客戶處理過這類的木馬后門的.發現在php腳本里include一個圖片文件,經過查看圖片文件源代碼,發現竟然是php腳本.
好了。安全加固你的php環境是非常重要的運維工作,大家還有什么其他加固安全的好方法,可以拿過來分享一下。
關鍵字:linux、系統
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解