ホームページ  >  記事  >  バックエンド開発  >  PHP は Linux サーバーのトロイの木馬検出および強化機能を実装します。Linux 強化_PHP チュートリアル

PHP は Linux サーバーのトロイの木馬検出および強化機能を実装します。Linux 強化_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:10:361883ブラウズ

phpはLinuxサーバーのトロイの木馬検出と強化機能、Linux強化を実装します

Web サイトがトロイの木馬に頻繁に攻撃されています。discuz などのプログラムには抜け穴があるため、この問題は基本的に解決できます。

以下の観点から見つけて強化してください(メンバーシップ機能を無効にする、アップロード入り口を提供しない、バックグラウンドパスワードを保護する、PHPを強化することができれば、通常は問題ありません)。

1. 機能コードに基づいて検索します:

php トロイの木馬には通常、
が含まれています

コードをコピーします コードは次のとおりです:



または
コードをコピーします コードは次のとおりです:

find /wwwroot/* -type f -name "*.php" |xargs grep "eval(" > /wwwroot/scan.txt

その結果、明らかなWebシェルが多数見つかり、それらはすべてattachmentなどのディレクトリに隠されていました

2. インターネット上の PHP コードを使用して、最近変更されたファイルを検索します

scandir.php
内容は以下の通りです

コードをコピーします コードは次のとおりです:

set_time_limit(0);//タイムアウトを防ぐ
/**
*
* phpディレクトリスキャン監視の強化版
*
* @著者 lssbing (lssbing#gmail.com)
* @日付 2010-1-18
* @licenseBSD
* @バージョン 1.0
*
次の変数は使用前に手動で設定する必要があります
*
**/
/*====================== プログラム構成 =====================*/
$pass="12345";//パスワードを設定します
$jkdir="."; // 監視およびスキャンのディレクトリを設定します。現在のディレクトリは '.' であり、後にスラッシュを追加することもできません。デフォルトは現在のディレクトリです
$logfilename="./m.log";//ログを保存するパスを設定します。どこにでも配置できます
$exclude=array('data','images') //ディレクトリを除外します
$danger='eval|cmd|passthru|gzuncompress';//トロイの木馬ファイルかどうかを判断するために検出される危険な関数を設定します
$suffix='php|inc';//スキャンするファイルのサフィックスを設定します
/*===================== 構成の終了 =====================*/

$ファイル名=$_GET['ファイル名']
$check=$_GET['チェック']
$ジャンプオフ=false
$url = $_SERVER['PHP_SELF']
$thisfile = end(explode('/',$url)); $jump="{$thisfile}|".implode('|',$exclude); $jkdir_num=$file_num=$danger_num=0; 定義('M_PATH',$jkdir); 定義('M_LOG',$ログファイル名); if ($check=='チェック')
{
$safearr = 爆発("|",$ジャンプ); $start_time=マイクロタイム(true); 安全チェック($jkdir); $end_time=マイクロタイム(true); $total=$end_time-$start_time
$file_num=$file_num-$jkdir_num; $message= "ファイルの数:".$file_num; $message.= "フォルダーの数:".$jkdir_num
$message.= "疑わしいファイルの数:".$danger_num
$message.= "実行時間:".$total
; $メッセージをエコーする
}その他{
if ($_GET['m']=="del") Delete();//ファイル削除処理中
// ファイルの内容を読み取ります
if(isset($_GET['readfile'])){
//閲覧パスワードを出力します。パスワードが正しく検証されると、ファイルの内容が出力されます
if(emptyempty($_POST['passchack'])){
echo"
" . " パス"
. " " .「」 . " " .「」 .""; 出る
}elseif(isset($_POST['passchack'])&&$_POST['passchack']==$pass){
$code=file_get_contents($_GET['readfile']); echo"rn";
出口();
}
function Delete()//删除文件
{ グローバル $ファイル名,$パス;
if(emptyempty($_POST['passchack'])){
    echo""
   。 「"
   。 " "
   。 "
"
    。「」;
    出口;
}elseif(isset($_POST['passchack'])&&$_POST['passchack']==$pass){
   (is_file($filename))?($mes=unlink($filename)?'删除成功':'删除失败 查看权限'):'';
   $mes をエコーし​​ます。
   出口();
}その他{
   echo '密码错误!';
   出口;
}
}
function Jump($file)//ジャンプ过文件
{
グローバル $jump,$safearr;
if($ジャンプ != '')
{
    foreach($safearr as $v)
    {
   if($v=='') 続行;
   if( eregi($v,$file) ) true を返します。
    }
}
false を返します。
}
?>
[查看文件改]|[保存当前文件指纹] |[扫描可疑文件]

実行後、最近変更された文書を閲覧でき、参加特典があります

3.修正php.ini、制限以下関数

复制代価代価如下:

disable_functions = phpinfo,passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocke,popen,proc_close, curl_exec、curl_multi_exec、parse_ini_file、show_source、dl、escapeshellarg、escapeshellcmd

4.修正nginx.conf 、制限一部目录行行php文件

复制代価代価如下:

サーバー
{
    聞いてください 80;
    サーバー名 www.***.com;
    インデックス インデックス.htm インデックス.html インデックス.php;
    ルート /wwwroot/;
    
 
      
    ^([^.]*)/topic-(.+).html$ $1/portal.php?mod=topic&topic=$2 last; を書き換えます。
    ^([^.]*)/article-([0-9]+)-([0-9]+).html$ $1/portal.php?mod=view&aid=$2&page=$3 最後に書き換えます。
    ^([^.]*)/forum-(w+)-([0-9]+).html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 最後に書き換えます。
    ^([^.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/forum.php?mod=viewthread&tid を書き換えます=$2&extra=page%3D$4&page=$3 最後;
    ^([^.]*)/group-([0-9]+)-([0-9]+).html$ $1/forum.php?mod=group&fid=$2&page=$3 最後に書き換えます。
    ^([^.]*)/space-(username|uid)-(.+).html$ $1/home.php?mod=space&$2=$3 last; を書き換えます。
    ^([^.]*)/([a-z]+)-(.+).html$ $1/$2.php?rewrite=$3 最後に書き換えます。
    ^([^.]*)/topic-(.+).html$ $1/portal.php?mod=topic&topic=$2 最後に書き換えます。
        
 
        場所 ~ ^/images/.*.(php|php5)$
                {
              すべてを否定する。
                }
 
        場所 ~ ^/static/.*.(php|php5)$
                {
               すべてを否定する。
                }
 
        location ~* ^/data/(attachment|avatar)/.*.(php|php5)$
            {
                すべてを否定する。
            }
 
    場所 ~ .*.(php|php5)?$
    {
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_indexインデックス.php;
      fcgi.conf をインクルードします。
    }
    
        
 
エラーページ 400 /404.html;
エラーページ 403 /404.html;
エラーページ 404 /404.html;
エラーページ 405 /404.html;
エラーページ 408 /404.html;
エラーページ 410 /404.html;
エラーページ 411 /404.html;
エラーページ 412 /404.html;
エラーページ 413 /404.html;
エラーページ 414 /404.html;
エラーページ 415 /404.html;
エラーページ 500 /404.html;
エラーページ 501 /404.html;
エラーページ 502 /404.html;
エラーページ 503 /404.html;
エラーページ 506 /404.html;
 
 
log_format acclog "$remote_addr $request_time $http_x_readtime [$time_local] "$request_method http://$host$request_uri" $status $body_bytes_sent "$http_referer" "$http_user_agent"";
        access_log /logs/access.log acclog;
}

これには注意が必要です

复制代価代価如下:

場所 ~ ^/images/.*.(php|php5)$
{
  すべてを否定する。
}

これらの目录の制限は必写在

复制代価代価如下:

場所 ~ .*.(php|php5)?$
{
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_indexインデックス.php;
  fcgi.conf をインクルードします。
}

の前にある場合、制限は有効になりません。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/934924.html技術記事 PHP は Linux サーバーのトロイの木馬の検出および強化機能を実装しています。Linux 強化 Web サイトは頻繁にハッキングされており、いくつかの改善によりこの問題は基本的に解決できます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。