以前試したときは複数のIfUserを記述するとうまく動作しなかったとメモったんだけど、記述方法を変えたら正常に動いた。どうもIfUser内のallow fromの書き方が悪かったぽい。bugなんか仕様なんかわかんないけど。
IfUser内のLIMITの設定
複数のアドレスを許可するときに、通常LIMIT内にはコンマで複数書くか、allow from を複数行かくか、どちらでも良い。が、IfUser内で設定する場合はallow from を複数行書くと正常に動作しなかった。以前うまくいかなかったのもこれが原因。
ここにも同じようなtopicが挙がってた。
OKな書き方
<IfUser hoge> <Limit LOGIN> Order allow,deny allow from 192.168.0.0/24, 10.0.0.0/24 deny from all </Limit LOGIN> </IfUser>
NGな書き方
<IfUser hoge> <Limit LOGIN> Order allow,deny allow from 192.168.0.0/24 allow from 10.0.0.0/24 deny from all </Limit LOGIN> </IfUser>
Classによる設定
Classのfromは複数書いても、コンマで繋げても問題ないようだけど。。。。
<Class internal > From 192.168.0.0/24, 127.0.0.1 From 10.0.0.0/24 </Class> <IfUser hoge> <LIMIT LOGIN> AllowClass intenral DenyALl </LIMIT> </IfUser>
別の問題が発生した。
ClassのFrom
複数のClassに同一のnetwork設定を書いてある場合、最初に書いたほうしか有効にならない?この設定で試したら、fugaユーザは10.0.0.0/24からは接続できずに、172.16.0.0/24のみになった。
<Class hogehoge > From 10.0.0.0/24 From 192.168.0.0/24 </Class> <Class fugafuga > From 10.0.0.0/24 ## これがClass hogehogeと重複していて無効になった? From 172.16.0.0/24 </Class> <IfUser hoge> <Limit LOGIN> AllowClass hogehoge DenyALl </Limit> </IfUser> <IfUser fuga > <Limit LOGIN> AllowClass fugafuga DenyALl </Limit> </IfUser>