65pt
ProFTPd の実験環境がないので、ぐぐっただけですが、
ここの「外部からのアクセスを禁止する」という部分に、
上のユーザーを限定する「AllowUser」と同時に指定すると、「または」の関係になるところに注意してください。AllowUserで指定したユーザーはどこからでも接続でき、それ以外のユーザーも192.168.0.××からは接続ができます。
とありますから、
両方とも Order allow,deny にするとどうなんでしょうか。
<Limit LOGIN> Order allow,deny AllowUser user1,user2 DenyAll </Limit> <Limit LOGIN> Order allow,deny Allow from aaa.aaa.aaa.aaa Allow from 192.168.0. DenyAll </Limit>
という感じ……でしょうか。
また、ここ (英語) には
Another related question often asked is "How can I limit a user to only being able to login from a specific range of IP addresses?" The <Limit LOGIN> can be used, in conjunction with the mod_ifsession module and a Class, to configure this:
(よくある質問として「どうすれば、あるユーザを特定の IP アドレス範囲からだけログインできるように制限できますか」というのがあります。<Limit LOGIN> を mod_ifsession (デフォルトではコンパイルされない?) や Class と組み合わればできます。)
<Class friends>
From 1.2.3.4/8
</Class>
<IfUser dave>
<Limit LOGIN>
AllowClass friends
DenyAll
</Limit>
</IfUser>
とあります。この mod_ifsession の入手方法はわかりませんが、この指示に従えば
<IfUser !user1> <Limit LOGIN> Allow from ... DenyAll </Limit> </IfUser>
という感じで、「user1 はどこからでも OK、それ以外は ... からだけアクセス OK」になりそうです。
ifsession をコンパイルするには configure に --with-modules=mod_ifsession を付けるそうです。
自信ありませんが、お役に立てば幸いです。
5pt
くっつけたらどうですか。
<Limit LOGIN>
Order allow,deny
AllowUser user1,user2
Allow from aaa.aaa.aaa.aaa,192.168.0.
Deny all
</Limit>
この場合を試してみたのですが、IPアクセス制限が一切効いていませんでした(どのような場合でも)。
10pt
これはどうでしょう。
<Limit LOGIN>
Order allow,deny
AllowUser user1,user2
DenyUser All
Order allow,deny
Allow from aaa.aaa.aaa.aaa,192.168.0.
Deny all
Satisfy Any
</Limit>
この場合ですと、proftp側でSatisfy Anyに対応しておりませんでした。
その為、エラーとなってしまいました。
Satisfy Anyはapacheにはあるようでしたので、うまく使えばいけるのかもしれません。
mod_ifsessionでうまくいきました。
普通にダウンロードしたproftpに
./configure --with-modules=mod_ifsession
をつけるだけでいけました。
設定内容はこういう形になりました。
この場合、user2がIP制限に掛からない状態です。
ありがとうございます!
英文が読めるといいですね。。