質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

1回答

4906閲覧

Apache 2.4.35におけるIPアドレス制限とユーザー認証の組み合わせ

kaya_miyoshi

総合スコア23

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

0グッド

1クリップ

投稿2018/10/09 06:08

Windows 10でApache 2.4.35のIPアドレス制限とユーザー認証の組み合わせで以下のアクセス制限を設定したら

<Directory "c:/Apache24/htdocs/staffonly">
<RequireAll>
Require all granted
Require not ip 192.168.1.0/24
</RequireAll>

AuthType Basic AuthName "ユーザー名とパスワードを入力して下さい" AuthUserFile "c:/Apache24/passfile/passwd" Require valid-user
</Directory> <RequireAll> Require all granted Require not ip 192.168.1.0/24 </RequireAll>

は192.168.1.0/24のみのアクセスを否定するので、私の環境のIPアドレス(192.168.1.2)からはアクセスが拒否されると思うのですが

AuthType Basic
AuthName "ユーザー名とパスワードを入力して下さい"
AuthUserFile "c:/Apache24/passfile/passwd"
Require valid-user

のユーザー認証のダイアログボックスも表示されず、staffonlyフォルダのファイルにアクセス出来てしまいます。
どうしてなのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

書式的には、問題はないと思うのですが...
インストールされている Apache は、どのベンダービルド版でしょうか? (どこからダウンロードされましたか?)

Webサーバーのログで、判断する方が良いと思いますが、Webサーバーのログは、どうなっているのでしょうか?
たとえば、一度、HTTPステータスが、401 が記録されてすぐに 200 で接続されているとか。 403 になっているとか...


ふと思ったのですが、

Require not ip 192.168.1.0/24

の部分を CIDR 形式から他の表記に変更するとどうなるでしょうか?

たとえば、IP/ネットマスク形式

Require not ip 192.168.1.0/255.255.255.0

や IPアドレス単独 (これは拒否できそう?)

Require not ip 192.168.1.2

のよう感じで指定したら接続OK や 拒否されるとかの状況に変化があるのでしょうか?


(2018/10/09 21:10 追記)

仮想環境の Windows 10 に Apache Lounge より VC15 64bit 版をダウンロードして入れてみました。

192.168.1.100 -- macOS (ホストOS)
192.168.1.200 -- Windows 10 on Parallels13 (ゲストOS) - Windows の設定は、ほぼデフォルト。

の環境です。

Apache を c:/Apache24 に設置。

httpd.conf の変更点

Listen 192.168.1.200:80 ServerName 192.168.1.200

追加内容(Basic認証は除く)

<Directory "c:/Apache24/htdocs/staffonly"> <RequireAll> Require all granted Require not ip 192.168.1.0/24 </RequireAll> </Directory>

http://192.168.1.200/ にアクセスした場合。

192.168.1.200 - - [09/Oct/2018:20:50:23 +0900] "GET / HTTP/1.1" 200 46 192.168.1.200 - - [09/Oct/2018:20:50:23 +0900] "GET /favicon.ico HTTP/1.1" 404 209 192.168.1.100 - - [09/Oct/2018:20:51:11 +0900] "GET / HTTP/1.1" 200 46 192.168.1.100 - - [09/Oct/2018:20:51:11 +0900] "GET /favicon.ico HTTP/1.1" 404 209

http://192.168.1.200/staffonly にアクセスした場合。

192.168.1.200 - - [09/Oct/2018:20:52:19 +0900] "GET /staffonly HTTP/1.1" 403 215 192.168.1.100 - - [09/Oct/2018:20:52:41 +0900] "GET /staffonly HTTP/1.1" 403 215

Basic認証追加

<Directory "c:/Apache24/htdocs/staffonly"> <RequireAll> Require all granted Require not ip 192.168.1.0/24 </RequireAll> AuthType Basic AuthName "ユーザー名とパスワードを入力して下さい" AuthUserFile "c:/Apache24/passwd" Require valid-user </Directory>

にすると

http://192.168.1.200/staffonly にアクセスした場合。(ブラウザに Basic認証のダイアログが表示された状態)

192.168.1.200 - - [09/Oct/2018:20:59:19 +0900] "GET /staffonly HTTP/1.1" 401 381 192.168.1.100 - - [09/Oct/2018:20:59:24 +0900] "GET /staffonly HTTP/1.1" 401 381

という結果で、設定通り、アクセス拒否されました。

質問者さんの環境では、おそらくどこかの設定が異なっているのだと思われます。もう一度設定を確認してみてください。

投稿2018/10/09 08:14

編集2018/10/09 12:14
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaya_miyoshi

2018/10/09 08:57

ベンダーはApache Loungeです。 Webサーバーのログは ::1 - - [09/Oct/2018:17:26:52 +0900] "GET /staffonly/staff.html HTTP/1.1" 200 55 ::1 - - [09/Oct/2018:17:26:52 +0900] "GET /favicon.ico HTTP/1.1" 404 209 ...です。 Require not ip 192.168.1.0/255.255.255.0 ..にしても ::1 - - [09/Oct/2018:17:32:19 +0900] "GET /staffonly/staff.html HTTP/1.1" 200 55 ...で接続OK。 Require not ip 192.168.1.2 ...にしても ::1 - - [09/Oct/2018:17:35:25 +0900] "GET /staffonly/staff.html HTTP/1.1" 200 55 ...でアクセス制限がかかりませんでした。接続OKです。
CHERRY

2018/10/09 09:15 編集

アクセスログの一番左側が、クライアントのIPアドレスですが、IPv6 で接続されていますね。 アクセス制限の設定は、 IPv4 のアドレスを指定していますから、アクセス制限には引っかからないです。 Windows の設定で、IPv6 を無効にするか Apacheのアクセス制限に IPv6 のアドレスを追加するか。他には Apache の設定で、待受IPアドレスを IPv4 のみに変える方法もあるかな。
kaya_miyoshi

2018/10/09 10:07

Windowsの設定でIPv6を無効化したのですが、アクセスログを見てもIPv6でつながっているようでしたのでレジストリで設定しましたがPv6でつながっているようです。ネットワークのプロパティーではIPv6には何も書かれていない状態です。どうすればIPv6を無効化できますか?
CHERRY

2018/10/09 10:14

コントロールパネル -> ネットワークと共有センター -> アダプターの設定の変更 -> 現在使っているネットワーク(ローカルエリア接続 や ワイヤレスネットワーク接続)を選んで「プロパティ」-> 「インターネットプロトコルバージョン6(TCP/IPv6)」のチェックを外して再起動で、無効になったと思いますが...  あれ? ループバックは、無効にならないんだったかなぁ...
CHERRY

2018/10/09 10:19 編集

もし、IPv6 が無効がうまくいかないようであれば、 Apache の設定で、ServerName や listen や Virtaulhost の設定などで、 *:80 等で設定している部分を 192.168.1.xxx192.168.1.xxx:80 等のように サーバーのIPアドレスやポートを直接指定して、Apache を再起動してみてください。
kaya_miyoshi

2018/10/09 10:20

それは最初にやってみましたがダメでした。レジストリで無効化してもアクセスログにはIPv6でつながっている感じでした。ループバックはWindows 10では無効になりません。どうすればよいでしょうか?
CHERRY

2018/10/09 10:23 編集

ループバックが無効にできないのであれば・・・ 一つ前のコメントに書きましたが、Apache の設定で、IPv4の IP アドレスのポートのみを待ち受けするように設定するしかないと思うのですが、うまくいかなったのですね。
kaya_miyoshi

2018/10/09 10:29

ServerNameを192.168.1.2にしても下の通りで、アクセス制限がかからずに接続OKになります。 192.168.1.2 - - [09/Oct/2018:19:25:07 +0900] "GET /staffonly/staff.html HTTP/1.1" 200 55 192.168.1.2 - - [09/Oct/2018:19:25:07 +0900] "GET /favicon.ico HTTP/1.1" 404 209
CHERRY

2018/10/09 12:15

Windows 10 のテスト環境で試した結果を追記しました。 こちらの環境では、設定通りの動作をしているようですので、再度設定を確認してみてください。
kaya_miyoshi

2018/10/10 01:56

httpd.confに Listen 192.168.1.200:80 ServerName 192.168.1.200 としたら設定通り、アクセス拒否されました。 これまで丁寧に回答していただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問