Apache2の基本設定


# vi /etc/apache2/conf/httpd.conf ← Apache2の設定ファイル編集


ServerTokens Prod ← エラーページでOS名を非表示にする

ServerAdmin webmaster@xxxxx.com ← 管理者のメールアドレス

ServerName xxxxx.com:80 ← #を削除して自分のドメイン名を指定(※ドメインの後に「:80」が付きます)


DocumentRoot "/var/www/html" ← ドキュメントルートをVine4標準の場所に設定

<Directory "/var/www/html"> ← ディレクトリをVine4標準の場所に設定


Options Includes ExecCGI FollowSymLinks ← Indexesを削除してSSIとCGIを有効に
                               (※ Optionsのオプションは下記を参照)


AllowOverride All ← .htaccessの有効化
               (※ AllowOverrideのオプションは下記を参照)


DirectoryIndex index.html index.htm index.shtml index.php index.cgi ← インデックスファイルを設定


WebDAVの脆弱性を狙った攻撃への対策
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
 
LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

※ 追記 (wormからのアクセスをログに記録しない対策)
SetEnvIf Request_URI "cmd\.exe" nolog
SetEnvIf Request_URI "root\.exe" nolog
SetEnvIf Request_URI "Admin\.dll" nolog
SetEnvIf Request_URI "NULL\.IDA" nolog
SetEnvIf Request_URI "^/_mem_bin/" nolog
SetEnvIf Request_URI "^/_vti_bin/" nolog
SetEnvIf Request_URI "^/c/" nolog
SetEnvIf Request_URI "^/d/" nolog
SetEnvIf Request_URI "^/msadc/" nolog
SetEnvIf Request_URI "^/MSADC/" nolog
SetEnvIf Request_URI "^/scripts/" nolog
SetEnvIf Request_URI "^/default.ida" nolog

※ 追記 (gif,jpg,png,ico,cssへのアクセスをログに記録しない対策)
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(ico)|(css)$" nolog

※ 追記 (内部からのアクセスをログに記録しない対策)
SetEnvIf Remote_Addr 192.168.11. nolog

CustomLog logs/access_log combined env=!nolog ← env=!nologを追記

ServerSignature off ← off指定でエラーページでApacheのバージョン非表示

#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" ← # を追記(コメントアウト)

#AddDefaultCharset UTF-8 ← #を追記(コメントアウト)

AddHandler cgi-script .cgi .pl ← #を削除して .plを追加


# /etc/rc.d/init.d/apache2 restart ← 設定終了後に再起動で設定反映
httpdを停止中:                                [  OK  ]
httpdを起動中:                                [  OK  ]


# chkconfig apache2 on ← 自動起動設定

# chkconfig --list apache2 ← 自動起動設定の確認
apache2         0:off   1:off   2:off   3:on    4:on    5:on    6:off

※ Options は有効にするサーバのオプションを指定します。
All MultiViewを除くすべて有効。
ExecCGI CGIプログラムの実行許可。
FollowSymLink シンボリックリンクに従う。
Includes SSIの許可。
IncludesNoExec SSI は許可、CGI の #Exec と #include は禁止。
Indexes ディレクトリにアクセスがあった場合、にindex.html等のファイルがないと、
インデックスリストが自動作成され表示されます
MultiViews マルチビューのサーチを許可(例えば、.../Fileのリクエスト時に このファイルが存在しない場合、サーバは.../File.*をサーチ)。
None すべて禁止。

※ AllowOverride は.htaccess のオプションです
All ユーザーの.htaccess指定を優先利用する
AuthConfig ユーザー認証のコントロールコマンドのみ記述を許可
FileInfo ドキュメントタイプ関係のコマンドのみ記述を許可
Indexes ディレクトリインデックス関係のコマンドのみ記述を許可
Limit ユーザーのアクセスコントロール関係のコマンドのみ記述を許可
Options Optionsやディレクトリ設定関係のコマンドのみ記述を許可
None ユーザーの.htaccessをを認めない

ディレクトリのアクセス権変更

/var/www/html の所有権がデフォルトでは root になっている為FTPで接続できないので、
所有権を実際にアップロードするユーザー名とグループ名に変更します。


実際にFTPで接続するユーザーに/var/www/html の所有権を変更する

# chown -R ユーザー名:グループ名 /var/www/html


Perlコマンドを/usr/local/bin/perlでもアクセスできるように設定



Vine Linux の場合Perlコマンドは、#!/usr/bin/perlですが、/usr/local/bin/perlでもアクセスできるようにします。


# ln -s /usr/bin/perl /usr/local/bin/perl ← /usr/local/bin/perlから/usr/bin/perlへリンクをはる

# whereis perl ← /usr/local/bin/perlが有るか確認
perl: /usr/bin/perl /usr/local/bin/perl /usr/share/man/man1/perl.1.gz

Apache接続テスト

ホームディレクトリ(ドキュメントルート)にテストページを作成します。


# vi /var/www/html/index.html ← テストページ作成

<html>
<body>
Apacheテストページ
</body>
</html>


テストページ作成後にLan 内からテストしてみます。

ブラウザから以下のURLで確認してください。

Lan 内のPCから確認 → http://192.168.11.2 (サーバー機のIP)

ダイナミックDNSやDiCE等の設定が終わっているなら取得したドメインでテストしてみる

この場合、外部からもちゃんと見れるかプロクシ等を利用してテストしてみるのもいいかもしれません。

テストページが見れればApacheは正常に作動しています。

SSI の動作確認する

テストSSIファイルを適当なファイル名をつけ拡張子を .shtml にして保存して、
ホームディレクトリ(ドキュメントルート)に保存してください。


<html>
<body>
<pre>
<!--#printenv -->
</pre>
</body>
</html>


ブラウザでアクセスして環境変数一覧が表示ざれれば、SSI は正常に作動してます。






Copyright c Vine Linuxで自宅サーバー. 2004 All Rights Reserved.