セキュリティ
- POSTの制限値: LimitRequestBody
- デフォルトは0(無制限)のため、DoSアタックをされる可能性がある。
Server:
ヘッダ: ServerTokens- この値を
ProductOnly
にすると、Server: Apache
とのみ表示される。 - これ自身がセキュリティ向上になるわけではないが、入れておいて損はない。
- この値を
HTTP -> HTTPへの昇格
以下のようにします。 RewriteCondはLet’s Encryptのための設定です。
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/\.well\-known/acme-\challenge/
RewriteRule ^/?(.*) https://example.com/$1 [R=301,L]
</VirtualHost>
Proxy
Apacheの背後にTomcatがある時など、 プロキシを使ったときのエラー画面をデフォルトにするには、 ProxyErrorOverrideをOnにする。
ProxyErrorOverride On
ログ
標準で設定されているアクセスログフォーマットがあって、 それぞれCommonと、Combinedと呼びます。
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog log/access_log combined
それぞれ以下のような意味があります1。
%h
: リモートホスト名(デフォルトはHostnameLookups
がOff
のため、IPアドレスになる。%l
: ログ名(mod_ident
が存在してIdentityCheck
がOn
のときのみ。それ以外は-
になる。%u
: 認証したときはそのユーザ名。認証に失敗したときはいんちきの(bogus)ユーザ名になりうる。- 記載がないですが、認証していないときは
-
になります。
- 記載がないですが、認証していないときは
%t
: 時刻([18/Sep/2011:19:18:28 -0400]
のような形式([日/月/年:時:分:秒 オフセット]
)%r
: リクエストの最初の行- 記載されていないですが、
GET / HTTP/1.1
などのHTTPヘッダが入ります。
- 記載されていないですが、
%s
,%>s
: ステータスコード。%s
はオリジナルのリクエストのステータスコード%>s
は最後のステータスコード。- 301でリダイレクトして200を返したときは、
%s
は301、%>s
は200が返ると思われます。
%b
: レスポンスのサイズ(バイト)、ただしHTTPヘッダは除く。-
のときは何も返していません。- Combinedのみ
%{Referer}i
: リクエストヘッダReferer
。%{User-agent}i
: リクエストヘッダUser-agent
。
リスト表示(DirectoryListings)
ファイルサーバなど、ディレクトリ以下をリスト表示する場合の機能。 ヘッダとフッタの設定も可能。
DirectoryListings - Httpd Wiki
CGI
昔懐かしい(?)CGIを動かす方法。
基本的には以下の設定が必要です。
- mod_cgiまたはmod_cgidが有効なこと
- AddHandler/SetHandlerによるCGIの設定
- Options ExecCGI
あとCGIスクリプト側の設定
- CGIスクリプトは実行パーミッションが必要
- CGIスクリプトまでのディレクトリのパーミッション
- Apacheの実行ユーザで実行権限があること2
- オーナー以外の書き込み権限がないこと
-
ディレクトリの実行権限なので、そのディレクトリへ移動する権限です。 ↩︎