<環境確認> ■OS ・cat /etc/passwd ・cat /etc/shadow ・cat /etc/group ユーザ、グループの確認 ※システムアカウント以外かな。(つまり、RHEL 6 以前の場合は UID が 500 未満、 RHEL 7 以降の場合は UID が 1000 未満のユーザーアカウント) ■apache ・バージョンやMPMなど -v より多くの情報が得られる httpd -V ・接続待ちの確認 ss -antupl | grep -i httpd ・バーチャルホストの設定を一覧表示。設定ファイルで間違いあればエラー出る httpd -S ・httpd の実行ユーザ確認 ps -ef | grep -i httpd ・外部設定ファイルの有無確認 grep -i "AccessFileName" /etc/httpd/conf/* grep -i "AccessFileName" /etc/httpd/conf.d/* grep -i "AccessFileName" /etc/httpd/conf.modules.d/* find / -name ".htaccess" ・リダイレクト用HTML ・DocumentRootはリダイレクト用HTMLが設置されているはず。(見るけど) ・その他は、以下でIndexファイルを調べた結果、該当するファイルを探してみるかな。 DirectoryIndexのデフォルト値は「index.html」 ※http://xxxx.xxx.xxx/sub/等にはあるのだろうか。たぶんないのかな。 grep -i "DirectoryIndex" /etc/httpd/conf/* grep -i "DirectoryIndex" /etc/httpd/conf.d/* grep -i "DirectoryIndex" /etc/httpd/conf.modules.d/* ・PACファイル配置箇所の確認 ・confファイルの設定 ・ディレクトリの設定(オーナー、グループ、パーミション) ・DocumentRootのディレクトリ設定(オーナー、グループ、パーミション) ・設定ファイルをざっと見る(前回のWebサーバ設定仕様書をもとに) ※443でLISTENしている場合 ・httpd -S の結果から443のバーチャルホストの設定ファイルを確認 ・証明書確認。 ・openssl x509 -in /etc/pki/tls/certs/localhost.crt -text ・curl -k -v https://localhost ※デフォルトなら、ぱっと見てわかると思う。 ■参考 ・アクセス制限 ・Require →単純に下の階層の Require で上書きしていける →設定例 ・Require all granted すべて許可 ・Require all denied すべて拒否 ・Require valid-user すべての有効なユーザー(認証突破したユーザ)を許可 ・Require ip 10 172.20 192.168.2 指定された IP アドレス範囲内のクライアントを許可 →対象となるディレクトリやファイルに対して複数の Require ディレクティブを記述することができます。 その場合の判定方法として、以下3つあり。 いずれかの条件にマッチすればアクセスを許可する。デフォルト。 すべての条件にマッチした場合だけアクセスを許可する。 すべての条件にマッチしない場合にだけアクセスを許可する。 ※RequireAll ディレクティブのブロック内でだけ使用可能 ・Directory/DirectoryMatch, Directory ~/Files, FilesMatch/Location, LocationMatch <マージ順(適用順)> 1. (正規表現無し) と .htaccess を同時に (.htaccess が許可されていれば、それが を上書きします) 2. (と 3. を同時に 4. を同時に ※ (上のグループ 1) はディレクトリが短いものから長いものへと処理されます。(階層的に、浅いものから深いもの) ※ 以外は、それぞれのグループは設定ファイルに現れた順番に処理されます。 ・DirectoryとLocation ・Directory →Apache がファイルをアクセスするために使うファイルシステムのパスに そのままマッチする必要があります。 別のシンボリックリンクをたどったりして 同じディレクトリを違うパスでアクセスした場合には適用されません。 ・Location →全ての (プロキシ以外の) リクエストに対し、URL は /path/ という、接頭辞 http://servername を含まない形でマッチします ※ ディレクティブは ファイルシステム外のコンテンツにディレクティブを適用するときに 使用してください。 ファイルシステムに存在するコンテンツに対しては、 を使ってください。 例外は、 で、これはサーバ全体に対して 設定を適用する簡単な方法です。