- - PR -
IPアドレスと時間帯の両方でアクセス制限する方法
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-01-27 11:55
FTP接続を制限したいのですが、特定のIPアドレスから特定の時間帯だけ
接続許可をするようにしたいです。 まず/etc/hosts.allowファイルでいくつかの接続を許可するIPアドレスを記述して 制限をしています。 時間帯で制限するには/etc/xinet.d/ftpファイルに接続可能な時間帯を記述して 制限できるようですが、指定するとすべてのFTP接続が制限されるようです。 /etc/hosts.allowファイルに記述したいくつかIPアドレスのうち、 特定のIPアドレスだけ接続できる時間帯を指定し、他のIPアドレスについては 接続時間帯を指定したくないのですが、個別に設定する方法はありますか? 宜しくお願いします。 | ||||
|
投稿日時: 2006-01-27 22:32
ユーザと時間で制限するならpamで出来るんですが、
http://www.atmarkit.co.jp/fsecurity/rensai/securitytips/036time.html 「どうしてもIPアドレスじゃなきゃダメだ」ということだと FTPサーバのソースコードを改修することになるんじゃないかなあ... | ||||
|
投稿日時: 2006-01-28 00:01
cronで/etc/hosts.allowを置き換えるスクリプトを動かすとか?
| ||||
|
投稿日時: 2006-01-28 00:59
xinetdやinetdはaccept(2)時にstdin/stdoutにsocketを割り当てて
指定されたプログラム(/usr/sbin/in.ftpd等)にfork/execするので、 そこにアクセス制御を行う中継プログラムを挟めばできますよ。 inetd時代は/etc/hosts.*のアクセス制御をこの方法で実現していました。 /usr/sbin/tcpd(tcp_wrappers)をまねすれば簡単に作れると思います。 | ||||
|
投稿日時: 2006-01-28 02:09
あ、言われてみれば確かに TCP Wrapper をかますのと同じ状況なわけですね。
# この場合はxinetd配下だから、二段構えの制御ですが スマートな解決ですね。 | ||||
|
投稿日時: 2006-02-01 14:47
質問者です。みなさま、回答ありがとうございます&返信が遅れました。
ユーザーごとの制限で問題なかったのでぽんすさんから教えていただいた http://www.atmarkit.co.jp/fsecurity/rensai/securitytips/036time.html この方法で設定してみました。 が、制限した時間外でもアクセスできてしまったので、うまく設定できていないようです。 RedHatでの設定方法が載っていたのですが、使用しているのはTurbolinux7.0です。 TCP Wrapper?というのは難しそうなので、ユーザーでの制限にしたいと思いますが Turbolinuxの場合の設定方法があれば教えていただけますしょうか。 宜しくお願いします。 | ||||
|
投稿日時: 2006-02-01 21:16
こんばんわ.
ftp daemon が PAM を使うようになっていないとか? ぽんす様がご呈示の link の方法は,pam で認証する場合の方法では無いかと. | ||||
|
投稿日時: 2006-02-02 11:14
質問者です。 回答ありがとうございます。
FTPはproftpd(1.2.1)を使用しているので /etc/proftpd/proftpd.confに下記を追加してみました。↓ # PAM AuthPAMAuthoritative on AuthPAMConfig ftp でもやはり制限していない時間帯にアクセスできてしまいました。 proftpdについて調べていたページに /etc/ftpusersにアクセス制御するユーザ名を追加する、というのがあったので 追加したところ、今度はアクセスできるはずの時間帯でも接続できなくなって しまいましたので、これは一度元に戻しました。 PAMを使用しないようになっているのか、設定が間違えているのか切り分けができずに はまってきてしまいましたが、何かアドバイスありましたらお願いします。 宜しくお願いします。 |