|
ん…X68000.startshop.co.jp の時計がずれてる。 > 「UNIX &インターネットセキュリティ」(O'REILLY)の > deny,allow は、denyとallowの両方に含まれるhostは許可する > allow,deny は、denyとallowの両方に含まれるhostは禁止する > という趣旨の記述 ん〜、これもどうも…何か違うような。確かに order は まぎらわしいですねぇ。 例えば order deny,allow は 1. 最初は全て許可 2. deny で指定されていたら拒否 3. allow で指定されていたら許可 という手順で評価しますが、大事なのは 「deny にマッチしても、その後 allow にマッチした場合は、閲覧を許可する」 ということだと思います。 例えば 阪大からは弾くけど、阪大の工学部(適当)からのみ許可する場合 order deny,allow deny from 133.1 allow from 133.1.2 阪大は許可するけど、阪大の工学部だけは弾く場合 order allow,deny deny from 133.1.2 allow from 133.1 てな感じでどうでしょう。より一般化すると、 「許可したホスト以外は拒否」なら order deny,allow deny from all allow from 許可するホスト 「拒否したホスト以外は許可」なら order allow,deny allow from all deny from 拒否するホスト でしょうか。上の2つの order を逆にすると、どのホストからも 見られなくなります。 素人考えでは、 deny from 133.1.2 allow from 133.1 と書けば、上から順に評価する、ってな風にすればわかりやすいのに、 わざわざ order なんか指定できるようにしたからわかりにくくなった、 と思ってます。もしかしたら、もっと難しい理由があって order が 用意されてるのかもしれませんが。 > どちらにも含まれない hostC からのアクセスはどうなるのでしょうか? 許可されると思います。order mutual-failure なら拒否されます。 # order mutual-failure # …allow に指定され、deny に指定されていないホストのみ許可。それ以外は拒否。 |
|
なので、 阪大は許可するけど、阪大の工学部だけは拒否し、なおかつ 群馬大は弾くけど、群馬大工学部だけは許可する という設定は無理じゃないかと思ってます。仮にできるとしても、 2つに分ける必要がありますよね。変なの。 |
|
さっそく、ありがとうございます。 >ん〜、これもどうも…何か違うような。 あっ、関係ないかも知れないけど、正確に引用しときますね(苦笑) >order ord >許可文と拒否文をチェックする順番を指定する。 >"deny,allow"を指定すると、最初に拒否エントリをチェックする。 >拒否リストと許可リストの両方に含まれるサーバーは許可する。 >"allow,deny"を指定すると、最初に許可エントリをチェックする。 >両方に含まれるサーバーは拒否する。 >"mutual-failure"を指定すると、許可リスト中のホストに許可を与え、 >拒否リスト中のホストを拒否し、それら以外については拒否する。 68userさんの説明とapacheのマニュアルを見ると、 すくなくとも、"mutual-failure"の説明は、 両方に含まれる部分について正確さを欠いてますね。 以下について応答する前に、ちょっと確認なんですけど、 >上の2つの order を逆にすると、どのホストからも >見られなくなります。 これは、下に関しては、「どのホストからも見えてしまう。」 の間違いということはないのでしょうか? |
|
> これは、下に関しては、「どのホストからも見えてしまう。」 > の間違いということはないのでしょうか? あ、間違いです。 「許可したホスト以外は拒否」なら order deny,allow を order allow,deny にすると、「全部拒否」になってしまい、 「拒否したホスト以外は許可」なら order allow,deny を order deny,allow にすると、「全部許可」になってしまう、ですね。 > "mutual-failure"の説明は、 > 両方に含まれる部分について正確さを欠いてますね。 ん〜、不正確とは言えないかもしれないけど、不親切ではありますね。 mutual-failure でも allow,deny の順に評価され、allow にマッチしたとしても その次に deny について評価され、そこでマッチしたら拒否、ってことです。 そういうことを http://japache.infoscience.co.jp/japanese_1_3/manual/mod/mod_access.html#order allowとdeny状態が評価されるどんな場合でも、"short-circuiting"は存在しません。 は言ってるんでしょうけど、もともと order っていう仕組みがわかりにくいのに、 ヘボい訳のせいで さらにわけのわからんことに。 |
|
>あ、間違いです。 よかった。 これが違ったら、また最初から理解し直しになるところでした(苦笑) >ヘボい訳のせいで さらにわけのわからんことに。 あっ、確認したのは、 >Only those hosts which appear on the allow list and >do not appear on the deny list are granted access. の方だったので、これなら問題ないですよね。 先の回答に戻ります。 >> どちらにも含まれない hostC からのアクセスはどうなるのでしょうか? >許可されると思います。 なるほど、やはりデフォルトは許可なんですね。 > 「deny にマッチしても、その後 allow にマッチした場合は、閲覧を許可する」 評価が後の方が優先するような感じはあったのですが、どうもよく分からなかったのです。 >阪大からは弾くけど、阪大の工学部(適当)からのみ許可する場合 allow か deny どちらかが常に from all なら、もっと別の指定の仕方があるだろうし、 なんとなく、こういう使い方を考えてるのかな…、と思ったもので、 その前にどちらにも現れない hostC の取り扱いをお伺いしました。 > 阪大は許可するけど、阪大の工学部だけは拒否し、なおかつ > 群馬大は弾くけど、群馬大工学部だけは許可する >という設定は無理じゃないかと思ってます。 なるほど、そうですね。 ここまでは、考えてなかった(苦笑) 68user さんの回答を読んでいて、ふと思ったのですが、 実際には、allow list と deny list があるのではなく、 例えば allow list だけがあって(抽象的な意味で)、 この list は最初は全ホストが詰まってる。 そして、allow 指令は、ここに指定されたホストを追加し、 deny 指令は、指定されたホストをここから削除する。 また、order による評価順序は、この追加、削除の動作順序で、 最後に list に残ったホストのみを許可する。 なお、mutual-failure の場合は、list を最初に空にし、 allow 指令を先に評価する。 (逆に、最初は空の deny list だけがあるとしても同じ) というように考えるってのは、どうでしょうか? Apache 1.3 から、deny,allow には(初期状態はOKです)とか、 allow,deny には (初期状態はFORBIDDENです) って注釈が ついたから、ちょっと的ハズレかな…? |
|
> というように考えるってのは、どうでしょうか? good です。…と思ったら、 > Apache 1.3 から、deny,allow には(初期状態はOKです)とか、 > allow,deny には (初期状態はFORBIDDENです) って注釈が > ついたから、 う、知らなかった。ということは、 > order allow,deny > allow from hostA > deny from hostB > という設定があった場合、どちらにも含まれないhostC からのアクセスは > どうなるのでしょうか? 少なくとも apache 1.3 では `不可' ですね。実験してみたところ、 拒否されました。 ということは、order allow,deny って order mutual-failure と 同じ意味になってしまうんじゃないのかなぁ…。order allow,deny の 初期状態を FORBIDDEN にして、なにかうれしいことがあるんだろうか。 |
|
はじめまして。いきなりですが質問があります。 aliasesファイルを>newaliasesで更新しようとした際、 以下のようなメッセージが出て、aliasesが機能しません。 root@xxx>newaliases WARNING: writable directory /var WARNING: writable directory /var/spool WARNING: writable directory /usr/ucblib WARNING: writable directory /usr/ucblib dbm map "Alias0": unsafe map file /usr/ucblib/aliases WARNING: cannot open alias database /usr/ucblib/aliases Cannot create database for alias file /usr/ucblib/aliases: No such device ディレクトリのアクセス権などをいじってみたのですが、うまくいき ませんでした。 もし、解る方がいらっしゃいましたらよろしくお願い致します。 |
|
goo で 「newaliases warning writable dbm」で検索しました。 http://www.swlab.csce.kyushu-u.ac.jp/~kazunori/install/sendmail.phtml http://www.sigma.tosho-u.ac.jp:8082/inet/newsos.6.1/sendmail-8.9.3/README ですかね。 ところでさ、OS の種類とバージョン、sendmail のバージョンくらい 書きましょうよ。UNIX って言ってもいろいろあるんだから、uname -mrs とか uname -mrsp の結果を書くのは、基本中の基本だと思います。 |
|
なんだか、また分からなくなってしまった(苦笑) アクセスしてきた host に対して、 deny,allow の場合は、初期状態を OK にして、 allow,deny なら、初期状態を FORBIDDEN にする。 allow 文にこの host が含まれると状態を OK に書き換えて、 deny 文にこの host が含まれると状態を FORBIDDEN に書き換える。 これらの評価が終わった後の host の状態がアクセス可否を決める。 ということなら、それでもいいんだけど、 これでは確かに mutual-failure の存在意義がないですね…??? access.conf での allow from all とかの設定は、 .htaccess でのアクセス制限がない場合にしか意味はないんですよね? |
|
> ということなら、それでもいいんだけど、 ということだと思います。いまいち納得できませんが、このサーバで order allow,deny deny from hoge.ac.jp (架空のドメイン) とすると (=allowを書かない) 全部弾かれましたので。 > access.conf での allow from all とかの設定は、 > .htaccess でのアクセス制限がない場合にしか意味はないんですよね? access.conf で AllowOverride Limit(or All) としているなら access.conf で allow/deny 設定をしていても .htaccess で設定を上書き可能 access.conf で AllowOverride None(or Limit以外) としているなら .htaccess で設定を上書き不可。access.conf での allow/deny 設定が有効。 ですかね。 |
|
>ということだと思います。いまいち納得できませんが、 なるほど、(納得できないという点で)とりあえず、そう理解しておきます。 >access.conf で AllowOverride Limit(or All) としているなら あっ、そうですね。それが前提ですね。 まだちょっとの部分もありますが(苦笑) とにかく、どうもありがとうございましたm(_ _)m |