人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PROFTPを使っているサーバがあり、ログイン時にIP制限を入れています。
この状態だとどのアカウントでもIP制限が効いてしまいます。
その中で、特定のユーザーだけIP制限を解除(効かないようにして)して、ログイン出来るようにしたいです。

そのような場合、どのように記述すればいいのでしょうか?

現在の設定

<Limit LOGIN>
Order deny,allow
DenyUser All
AllowUser user1,user2
</Limit LOGIN>

<Limit LOGIN>
Order Allow,Deny
Allow from aaa.aaa.aaa.aaa
Allow from 192.168.0.
Deny from all
</Limit>

●質問者: chirubo
●カテゴリ:コンピュータ インターネット
✍キーワード:AAA ALL IP アカウント サーバ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Yota
●5ポイント

くっつけたらどうですか。

<Limit LOGIN>

Order allow,deny

AllowUser user1,user2

Allow from aaa.aaa.aaa.aaa,192.168.0.

Deny all

</Limit>

http://dummy.com/

◎質問者からの返答

この場合を試してみたのですが、IPアクセス制限が一切効いていませんでした(どのような場合でも)。


2 ● たも
●65ポイント ベストアンサー

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 を付けるそうです。




自信ありませんが、お役に立てば幸いです。

◎質問者からの返答

mod_ifsessionでうまくいきました。

普通にダウンロードしたproftpに

./configure --with-modules=mod_ifsession

をつけるだけでいけました。

設定内容はこういう形になりました。

この場合、user2がIP制限に掛からない状態です。

<Class local>

From aaa.aaa.aaa.aaa,192.168.0.

</Class>


<IfUser !user2>

<Limit LOGIN>

AllowClass local

DenyAll

</Limit>

</IfUser>


<Limit LOGIN>

Order allow,deny

AllowUser user1,user2

DenyUser All

</Limit LOGIN>

ありがとうございます!

英文が読めるといいですね。。


3 ● Yota
●10ポイント

これはどうでしょう。

<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にはあるようでしたので、うまく使えばいけるのかもしれません。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ