• ベストアンサー

TCP Wrapper を用いた際のr系コマンドの認証のしくみについて

r系コマンドの実行をTCP Wrapperで制御している場合、通常のr系コマンド実行時の認証に使われるrhostsファイルも参照の上、hosts.allow 及び host.deny ファイルも参照するという仕組みなのでしょうか? それともTCP Wrapperで制御している場合は、rhostsファイルは参照しないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • s-n-m
  • ベストアンサー率100% (1/1)
回答No.1

 OSが示されていませんが(UNIX系なら大方は同じですが、細かい違いがたくさんあります)、BSD起源の一般的なr系デーモンについて言えば、tcp wrapperを使用していたとしても、rhostsファイルは参照します。  具体的には、最初にtcp wrapperによる認証(つまりhosts.allow,hosts.denyによる確認)が行われ、これで許可されて初めて、r系デーモンの本来の認証(~/.rhosts, /etc/hosts.equivによる確認)が行われます。両方の認証に通過した場合に限り、r系コマンドの実行が許可されるということになります。  ~/.rhostsには、各ユーザが任意のホストを好きに書くことができますが、管理者が/etc/hosts.allowなどを記述することにより、「特定のホスト群からだけ、rloginを許可する」ということができます。  なお、r系コマンドは時代遅れのコマンドです(今でもベンダ系UNIXの資格検定などに出てくるのが信じられません)。アクセス制御がかなり貧弱な上に通信内容も暗号化されませんので、ホストのネットワークが完全に外部と物理的に隔絶され、利用者も絶対に信頼できる人々に限られ、ウィルス・ワームなどの侵入もありえない、という環境でもない限り利用はおすすめしません。tcp wrapperでアクセス制御が必要、ということは、そのような確実に安全な環境ではないと思いますので、ssh などの利用をお勧めします。

proteus77jp_001
質問者

お礼

ご回答ありがとうございます。 r系デーモンの本来の認証は、ユーザが任意に設定することが可能なのに対して、Tcp Wrapperでは管理者が包括的に認証の設定をするというものなのですね。 (ただTcp Wrapperの認証では、ユーザごとの認証はできないように思いましたが。) おっしゃるとおり、r系コマンドは安全性の観点から一般的には使用されていないものですので、ssh利用についても検討しなければと考えております。 大変参考になるご意見ありがとうございました。

関連するQ&A

  • inetdとTCP Wrapperについて

    inetd及びTCP Wrapperは「inet.conf」「hosts.allow」「hosts.deny」の設定ファイルを参照してアクセス制御を行うとの事ですが、ここでいくつかの疑問があります。 (1)上記の3つのファイルを編集後、設定を反映させるにはデーモン等の再起動が必要かどうか。 (2)hosts.allow及びhosts.denyに記述した内容は、inetを経由しないサービスについても有効かどうか。 (3)inetd経由のデーモンはどのタイミングで停止するのか。 (1)についてですが、実験の結果、ファイルを編集後にすぐに反映される事はありませんでしたので、再起動などの作業が必要だと思いました。inetdを再起動しても反映されないようでしたので、killall -HUP inetd というコマンド(ネットで調べました)を行った所、反映されたようでした。この作業が正しいかどうか分かりませんので、ご意見頂きたいと思います。 また、killall のオプションである「-HUP」が何を示すのか分かりませんので、ご教授ください。 (2)についてですが、inetd.confに記述してあるサービスについてはhosts.allow及びhosts.denyの設定に従ってアクセス制御されている事は間違いないようです・・・が、inetdを経由しないサービスについてはアクセス制御されていないような気がします。inetd.confに記述していないサービスもアクセス制御の対象になるとも聞いた事がありますので、この点もご教授いただきたいと思います。 (3)についてですが、inetd経由でサービスを受ける場合には、そのサービスのセッションを確立後にデーモンが起動すると思います(間違いでしょうか??)。例えば、ftpサービスをinetd経由で提供しているとして、他のマシンからFTP接続するとデーモンが起動する・・・その後、クライアントがFTPを切断してからどのくらいでftpデーモンは停止するのでしょう? 間違い等は指摘お願いいたします。

  • /etc/hosts.allow 及び /etc/hosts.deny について

    /etc/hosts.allow 及び /etc/hosts.deny は Tcp Wrapper のみが参照するファイルなんでしょうか? それとも inetd が参照するファイルなんでしょうか? 素人な質問ですみません。

  • xinetd を使う場合の hosts.allow/hosts.deny

    サーバ:CentOS 4.4 xinetd を使ってアクセスコントロールをしようとしています。 /etc/xinetd.d/サービス名 でサービス毎の設定が出来ますが、その中で(only_fromを使って)制御しようとしていますが、その際に /etc/hosts.allow と /etc/hosts.deny はどうなるのでしょうか。これらのファイルを削除して、xinetd の設定ファイルのみでアクセス制御するにしても、xinetd を通さないデーモンが直接 hosts.allow と hosts.deny を参照しようとする場合もありそうで怖そうです。 かといって xinetd と hosts.allow,hosts.deny の両方でアクセス制御するのもわかりにくくなりそうですし。 何かスマートなやり方というものはあるのでしょうか。

  • ファイアウォールは必要?hosts.allow と hosts.deny だけではダメ?

    ネットで調べたところ、次のことが分かりました。 ●TCP Wrappers (/etc/hosts.{allow,deny} で設定)は inetd または xinetdで制御されていないプロセスへのアクセスをブロックできない。 ●とはいえ、sshd, sendmail は inetd/xinetdで制御されていないものの、/etc/hosts.{allow,deny}を自ら読みに行って、ここで許可されてないアクセスは拒否することができる。 sshd や sendmail も hosts.allow と hosts.deny で守ることができるとすると、Firewall(iptables)は、なぜ必要なのでしょうか?hosts.allow と hosts.deny で守ることができないデーモンがあるのでしょうか?

  • vsftpdで動的IP制限をかけたい

    Ubuntuでvsftpdを使っています。 ftpでIP制限を行うには、tcp_wapperの利用を行い、/etc/hosts.denyや/etc/hosts.allowにより設定すると実行できることは確認できております。 ただし、WEBからの許可IPリストを追加するCGIで、ftpのIP制限を行う事をやりたく、vsftpdから見るIP許可設定(/etc/hosts.allow)を別ファイルを参照するようにする事はできないでしょうか? 別の方法で代替ができるということならば、それも含めて情報をいただけると幸いです。 よろしくお願いします。

  • tcp wrapper の設定について

    1つのサーバーで、数十のドメイン、それら合計で1千万件程度のページがあります。 検索エンジンのロボットアクセスが秒あたり複数回あり、MySQLで出来たブログページのためアクセスのたびに動的ファイルを作り続けておりCPUが休まりません。 そこで、 tcp wrapper で当方に必要ないロボットを弾きたいと考えています。 下記のような設定とし、特に頻繁に来るロボットを弾いたつもりなのですが、相変わらず該当IPからの訪問があります。CPUファンもフル回転状態です。 (ファイル /var/log/httpd/access_log に相変わらず記録されます) 下記の設定 → サーバーの再起動 では弾くことが出来ません。 記載方法に誤りがあるのかも知れません。 ご指導いただければ幸いです。よろしくお願いいたします。 サーバーはCentOS6.4です。 /etc/hosts.allow : ALL EXCEPT .ahrefs.com : ALL EXCEPT .easou.com : ALL EXCEPT .baidu.com : ALL EXCEPT 5.10.83.2 : ALL EXCEPT 5.10.83.3 : ALL EXCEPT 5.10.83.4 : ALL EXCEPT 5.10.83.5 : ALL EXCEPT 5.10.83.6 : ALL EXCEPT 5.10.83.7 : ALL EXCEPT 5.10.83.8 : ALL EXCEPT 5.10.83.9 : ALL EXCEPT 5.10.83.10 : ALL EXCEPT 5.10.83.11 : ALL EXCEPT 5.10.83.12 : ALL EXCEPT 5.10.83.13 : ALL EXCEPT 5.10.83.14 : ALL EXCEPT 5.10.83.15 : ALL EXCEPT 5.10.83.16 : ALL EXCEPT 5.10.83.17 : ALL EXCEPT 5.10.83.18 : ALL EXCEPT 5.10.83.19      : 延々数百のIPアドレス      :      :      :

  • 任意のサービスを行っているファイルを探す

    こんにちは、honiyonです。  TCP Wrapの設定(hosts.allowやdeny)を行うために、サービスを行っているデーモンのファイル名を取得したいと考えています。   hosts.allowやhosts.denyの設定は、サービス名ではなくサービスを行っているデーモンのファイル名で指定するのですよね? Ex.)in.telnetd : ALL  今は適当にファイルの予測を付けて「find / -name 'hoge'」としていますが、うまくヒットしない事があり、しても別のファイルだったり(^^; もっと効率の良い方法はないかな~と思っています。  宜しくお願い致します(..

  • Sambaセキュリティについて

    smb.confに設定されるhosts allow、hosts denyについての質問です。 手元の資料に、設定においてはhosts allowが優先されるので、hosts denyで拒否が設定されているホストであってもhosts allowで許可されていれば、接続が許可されるとあります。 以下の場合は、グループkeiriにホストsoumuが含まれている場合、soumuからのアクセスは許可されるのでしょうか? hosts allow = @keiri hosts deny = soumu

  • hosts.allowのIPアドレスの記述ついて

    Red Hat Linux9を使用して勉強しています。 SSHを動かしていて、hosts.deny と hosts.allowを使い IPアドレスの接続制限をかけようと思っています。 hosts.denyはALL:ALLにしてあるのでhosts.allowに 接続を許可するIPを記述するのですが、例えば許可する範囲を 「192.168.1.90~192.168.1.99」とする場合は、どうやって 記述すればいいのでしょうか。 まさか1個ずつカンマで区切って記述するということではないですよね。 宜しくお願いします。

  • /etc/hosts.allow にて alex@192.168.1.10 指定

    CENTOS5を使っております。 FIREWALL 有効 SELINUX 有効 server1 リモートホスト server2 SSHサービス稼動中。 ============================================ ここで、制御ファイルにて下記のようにしていますが、 server2側でアクセス拒否されてしまいます。 1. /etc/hosts.allow # hosts.allow This file describes the names of the hosts which are # allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # ALL:127.0.0.1 sshd: alex@192.168.10.62 2 /etc/hosts.deny # hosts.deny This file describes the names of the hosts which are # *not* allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # # The portmap line is redundant, but it is left to remind you that # the new secure portmap uses hosts.deny and hosts.allow. In particular # you should know that NFS uses portmap! sshd: ALL [root@server1 ssh]# ssh alex@server2 ssh_exchange_identification: Connection closed by remote host 私の認識では、allow→denyの読み取りで判断されるので許可されると 考えています。 それともUSER@を指定した記述が違うのでしょうか。 deny にて、sshd : ALL EXCEPT alex@192とも指定したがぺけでした。 どなたかご指摘お願いします。 P.S グーグルでもUSER@指定の場合を検索してみました。 http://www.cromwell-intl.com/unix/ssh.html sshd_config にてAllowUsers alexもぺけでした。。。 よろしくご指摘お願いいたします。