Apacheのhttpd.confのallowディレクティブの書き方

2,863 views
Skip to first unread message

jscripter

unread,
Feb 25, 2012, 7:13:09 PM2/25/12
to tsnet_...@googlegroups.com
毎度お世話になります。

httpdの設定(httpd.conf)
http://www.nina.jp/server/slackware/httpd/httpd.conf.html

に次のようにあります。

-----

次の例は、IP アドレスでアクセスを制御している。 Order ディレクティブで deny,allow を指定しているので、デフォルトではアクセスを許可する。 Deny ディレクティブで 1.2.3.4 と 5.6.7.8 を指定しているので、IP アドレスが 1.2.3.4 と 5.6.7.8 のホストからのアクセスは拒否される。 注意! Allow ディレクティブと Deny ディレクティブのキーワードはカンマ区切りで複数記述することができるが、スペースをいれてはならない。

Order deny,allow
Deny from 1.2.3.4,5.6.7.8

-----

注意!Allow ディレクティブと Deny ディレクティブのキーワードはカンマ区切りで複数記述することができるが、スペースをいれてはならない。」とあるのですが、私自身は半角空白で区切って記述しています。なぜ、問題なのでしょうか。今のところ問題なく動いています。Apache2.2です。

もう一つ、次の部分も常識がないせいか、よくわかりません。

-----

IP アドレス範囲でアクセスを制御することもできる。 次の 3 つは、書き方は違うがすべて同じ内容。

Allow from 1.0.0
Allow from 1.0.0.0/255.255.255.0
Allow from 1.0.0.0/24
-----

例えば、1.2.0.1から1.2.0.100までの範囲を指定するのはどう書けば良いのでしょうか。

davi

unread,
Feb 26, 2012, 1:09:15 AM2/26/12
to tsnet_...@googlegroups.com

jscripterさん < こん??は でび です

# 詳しい方のコメントがあろうと思いますが、以下、賑やかしに。

On Sat, 25 Feb 2012 16:13:09 -0800 (PST)
"jscripter" <jscri...@gmail.com> wrote:

> IP アドレス範囲でアクセスを制御することもできる。
>次の 3 つは、書き方は違うがすべて同じ内容。
>
> Allow from 1.0.0
> Allow from 1.0.0.0/255.255.255.0
> Allow from 1.0.0.0/24

> 例えば、1.2.0.1から1.2.0.100までの範囲を指定するのはどう書けば良いのでしょうか。

/24って、8ビット単位で指定ですよね。
だからマスク範囲は1.2.0.1/25となるのかな。

で、広めにAllowしちゃって、はみ出した部分(※1)
は、改めてDenyする(※2)しかないんじゃないかと。

※1: 1.2.0.101~1.2.0.127で、計算合っているかな…自信なし。
※2: 1.2.0.101/27でも漏れが出ちゃう?

以前、

Allow 1.2.0.1-1.2.0.100
Allow from 1.2.0.1 to 1.2.0.100

のような、楽ちんな書き方ができないのか、あちこち探し回った
ことがありますが、そのときは見つけられませんでした。

できるといいなぁ。

---------------------

最近、興味を持っているのは、Google大先生から距離を保った
パソコン生活は、現実的に、どの程度まで可能なのか? という
ことです。

Windowsのhostsファイルで、Google関連の所有IP範囲を指定して
アク禁にしたら、どれほど不自由になるのかな、と。
思想がどうこうではなく、技術的観点で、興味があります。

ただ、Google関連の所有IP範囲一覧をまだ見つけていないので、
実際には試していませんが。

# Googleの愚直なまでの正面突破は、いかにもアメリカンな物量作戦で
# (Operation Tomodachiでのホバークラフトのデカさにも、
# 仰天したけど)、ある意味、正直でマトモな企業なのかもなぁと。

でび http://davi.txt-nifty.com/1984/

Zazel

unread,
Feb 26, 2012, 1:30:55 AM2/26/12
to tsnet_...@googlegroups.com
Zazelです。
文字コードをUTF-8からISO-2022-JPに変えました。

(2012/02/26 9:13), jscripter wrote:
> 「 注意!Allow ディレクティブと Deny ディレクティブのキーワードはカンマ
> 区切りで複数記述することができるが、スペースをいれてはならない。」とある
> のですが、私自身は半角空白で区切って記述しています。なぜ、問題なのでしょ
> うか。今のところ問題なく動いています。Apache2.2です。

例えばAllowをカンマと空白で区切り

Allow from 1.2.3.4, 5.6.7.8

と書くと、「1.2.3.4」と空文字列と「5.6.7.8」を許可することになり、
空文字列ですべてのホストが許可になります。(たぶん)

> 例えば、1.2.0.1から1.2.0.100までの範囲を指定するのはどう書けば良いので
> しょうか。

2進数をベースにして区切らないとこういう時に苦労します。(^_^)

Allow from 1.2.0.1 1.2.0.2/31 1.2.0.4/30 1.2.0.8/29 1.2.0.16/28
1.2.0.32/27 1.2.0.64/27 1.2.0.96/30 1.2.0.100

または

Order allow,deny
Allow from 1.2.0.0/26 1.2.0.64/27 1.2.0.96/30 1.2.0.100
Deny from 1.2.0.0

かな。

# こういう変換は、ビギナー向けのプログラミング演習にいいかも。

jscripter

unread,
Feb 26, 2012, 5:55:52 AM2/26/12
to tsnet_...@googlegroups.com
毎度コメントありがとうございます_(__)_

IPアドレス - Wikipedia
http://ja.wikipedia.org/wiki/IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9

でびさんのコメントを参考にWikipediaを読んで考えました。

「CIDR表」を見てこれまでの疑問がようやく氷解しました。

出した問題とは違うけども

Allow from 1.2.0.0/24
Deny from 1.2.0.0 1.2.0.1

で、当面の問題は解決しました^^;)これで、1.2.0.2から1.2.0.255までを許可することになりますね。

2012年2月26日15:09 davi <davi...@nifty.com>:

jscripter

unread,
Feb 26, 2012, 6:05:39 AM2/26/12
to tsnet_...@googlegroups.com
Zazelさん、毎度ありがとうございます。

,と半角空白はどちらも区切りになるが、,と半角空白が並ぶと区切りで区切られたものが空になるので、なんにでもマッチするようなことになるみたいな話でしょうかね^^;)僕の場合は、単に,ではなく、半角空白一つを区切りに使っているだけなので問題ないということですか。

/24の記述やサブネットマスクの意味がわかっていなかったので、へんな区切り方を質問してしまったことになるのでしょう。でもお陰さまで、また一つ賢くなりました^^)/

2012年2月26日15:30 Zazel <zaz...@gmail.com>:

davi

unread,
Feb 26, 2012, 8:37:21 PM2/26/12
to tsnet_...@googlegroups.com

Zazelさん < こん??は でび です

On Sun, 26 Feb 2012 15:30:55 +0900
"Zazel" <zaz...@gmail.com> wrote:

> 2進数をベースにして区切らないとこういう時に苦労します。(^_^)
>
> Allow from 1.2.0.1 1.2.0.2/31 1.2.0.4/30 1.2.0.8/29 1.2.0.16/28
> 1.2.0.32/27 1.2.0.64/27 1.2.0.96/30 1.2.0.100

あ・・・そっか。自分の軸足を移すという発想ができませんでした。
はみ出た先のアドレスに足場を移して、その開始位置から先を細かく
指定し直せばいいんですね。

ママチャリのオバサンと同じだな。自分。
# あぶないあぶない!って怒鳴りながら突っ込んでくるんですよ。
# あんたがブレーキ引けよ、と・・・(怒)

でも「この指定は結局何を言いたいのか、範囲を示せ」なんて
小テストを出されたら、植木算ができないので、きっと再構築
できないです。

でび http://davi.txt-nifty.com/1984/

Reply all
Reply to author
Forward
0 new messages