科学の箱

科学・IT・登山の話題

CentOS

Apache2の基本設定

投稿日:

インストール

yum -y install httpd
yum -y install php php-mbstring

設定

 

エラーが起きたときにサーバー情報を返さないようにする。

# ServerTokens OS
ServerTokens Prod ← エラーページ等でOS名を表示しないようにする

KeepAliveをOnにして複数のリクエストをひとつのコネクションで処理する(負荷分散を入れるときには要注意)

# KeepAlive Off
KeepAlive On

不要なモジュールを削除する

# LoadModule actions_module modules/mod_actions.so
# LoadModule auth_basic_module modules/mod_auth_basic.so
# LoadModule auth_digest_module modules/mod_auth_digest.so
# LoadModule authn_alias_module modules/mod_authn_alias.so
# LoadModule authn_anon_module modules/mod_authn_anon.so
# LoadModule authn_dbm_module modules/mod_authn_dbm.so
# LoadModule authn_default_module modules/mod_authn_default.so
# LoadModule authn_file_module modules/mod_authn_file.so
# LoadModule authz_default_module modules/mod_authz_default.so
# LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
# LoadModule authz_dbm_module modules/mod_authz_dbm.so
# LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
# LoadModule authz_owner_module modules/mod_authz_owner.so
# LoadModule authz_user_module modules/mod_authz_user.so
# LoadModule cache_module modules/mod_cache.so
# LoadModule cgi_module modules/mod_cgi.so
# LoadModule dav_module modules/mod_dav.so
# LoadModule disk_cache_module modules/mod_disk_cache.so
# LoadModule env_module modules/mod_env.so
# LoadModule expires_module modules/mod_expires.so
# LoadModule ext_filter_module modules/mod_ext_filter.so
# LoadModule include_module modules/mod_include.so
# LoadModule info_module modules/mod_info.so
# LoadModule ldap_module modules/mod_ldap.so
# LoadModule mime_magic_module modules/mod_mime_magic.so
# LoadModule proxy_module modules/mod_proxy.so
# LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
# LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
# LoadModule proxy_connect_module modules/mod_proxy_connect.so
# LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
# LoadModule proxy_http_module modules/mod_proxy_http.so
# LoadModule speling_module modules/mod_speling.so
# LoadModule status_module modules/mod_status.so
# LoadModule substitute_module modules/mod_substitute.so
# LoadModule suexec_module modules/mod_suexec.so
# LoadModule userdir_module modules/mod_userdir.so
# LoadModule usertrack_module modules/mod_usertrack.so
# LoadModule version_module modules/mod_version.so
# LoadModule vhost_alias_module modules/mod_vhost_alias.so

システム管理者のメールアドレスを登録する

# ServerAdmin root@localhost
ServerAdmin apache@mydomain.com

サーバー名を指定する。

#ServerName www.example.com:80
ServerName www.mydomain.com:80

/var/www/htmlについてオプションを変更する。SSI(Server Side Include)、CGI,シンボリックリンクを使えるようにする。ファイル一覧表示はできないようにする。

# Options Indexes FollowSymLinks
Options Includes ExecCGI FollowSymLinks

.htaccessを利用できるようにする。

# AllowOverride None
AllowOverride All

ディレクトリ名でアクセス(URLの最後が”/”で終わっている)時に探索するファイルの優先順位を決める。

# DirectoryIndex index.html index.html.var
DirectoryIndex index.html index.htm index.cgi index.php

アクセスログを確認して414エラーでログの解析ができないときには以下のように変更して414エラーをログに残さないようにします(最初から設定する必要はありません)。414エラーはDAVの脆弱性をつく攻撃にあった場合に出力されます。

# 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_log変数を指定しておく。

SetEnvIf Request_URI "default\.ida" no_log worm_log
SetEnvIf Request_URI "cmd\.exe" no_log worm_log
SetEnvIf Request_URI "root\.exe" no_log worm_log
SetEnvIf Request_URI "Admin\.dll" no_log worm_log
SetEnvIf Request_URI "NULL\.IDA" no_log worm_log

アイコンや画像へのアクセスはログに出力しない。

SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(ico)|(css)$" nolog

ログの出力先を指定する。

# CustomLog logs/access_log combined
CustomLog logs/access_log combined env=!no_log

Worm用ログをあらかじめ用意しておく。必要に応じてコメントを外す。
# CustomLog logs/worm_log combined env=worm_log

サーバー情報を表示しないようにする。

# ServerSignature On
ServerSignature Off

言語設定の順番を変える

# 日本語と英語を先頭に持ってくる。他に自分がよく使う言語があれば先頭に持ってくる。
AddLanguage ja .ja
AddLanguage en .en

優先順位を変更する。

# LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
LanguagePriority ja en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

デフォルトの言語を無効にする。

# AddDefaultCharset UTF-8

cgiを有効にする。

#AddHandler cgi-script .cgi
AddHandler cgi-script .cgi .pl

phpを利用できるようにします。

AddType application/x-httpd-php .php

iconsディレクトリについて一覧表示をできないようにする。

<Directory "/var/www/icons">
    # Options Indexes MultiViews FollowSymLinks
    Options MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

設定

再起動時にApacheが起動するにようにする。

# chkconfig httpd on
# chkconfig --list httpd

テストページを削除する

# ウェルカムページ削除
rm -f /etc/httpd/conf.d/welcome.conf

# デフォルトエラーページ削除
rm -f /var/www/error/noindex.html

httpdを再起動する

# service httpd restart

メタ情報

inarticle



メタ情報

inarticle



-CentOS
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

cpuに負荷をかけるためのスクリプト

CPUに負荷をかけてテストをしたいときのスクリプト while true; do for i in 1 2 3 4; do while : ; do : ; done & done ; don …

no image

yumでインストールしたパッケージの一覧を表示する

新しいパッケージをインストールする際に、現在すでにインストールされたパッケージを確認したいときがある。例えばftp導入を計画しているときに現在ftpがシステムに入っているか、入っているftpサーバーの …

no image

CentOSでRemote Desktopを利用する

CentOSではデフォルトでGNOMEのRemote Desktopが利用できる。このアプリケーションはvinoと呼ばれる。その設定手順について記録する。 Firewallを無効あるいはポートを許可す …

no image

eth0がeth1として表示され手いる際の対応

VMWareでネットワークカードのテストを繰り返しているとあるタイミングでeth0がeth1としてifconfigで表示されるようになる。 /etc/sysconfig/network-scripts …

no image

Rubyをインストールする

Ruby環境はrbenvで構築するとバージョン管理が楽になる。 rbenvのインストール こちらを参考にしてrbenvをインストールする gitからrbenvを取得する。 # git clone ht …

2014年8月
« 7月   9月 »
 123
45678910
11121314151617
18192021222324
25262728293031

side bar top



アーカイブ

カテゴリー