情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 | 編集

BINDインストールTIPS hosts.allow, hosts.deny 編 このエントリーを含むはてなブックマーク

BINDをインストールする最中に気がついたことをインストールTIPSとして紹介します

hosts.allow, hosts.deny ファイル

BINDの動作をnslookupで確認しようとしたとき、

No response from server
と表示されてしまったので、アクセスすらできていないことから、「hosts.allow」「hosts.deny」が思い浮かびました。

結論から言うと

結論から言うと、「BINDに関してはhosts.allowファイルもhosts.denyファイルも関係ありません」ということです。

なぜ関係ないのか

そもそも、hosts.allow,hosts.denyは、TCP Wrapperを利用するプログラムの通信を制限する設定ファイルなので、TCP Wrapperを利用していないBINDの通信には何の関係もないのです。

hosts.allow, hosts.denyが関係するプログラムとは

ずばりhosts.allow, hosts.denyが関係してくるプログラムは、TCP Wrapperを利用しているプログラムのことです。そして、TCP Wrapperの実態はlibwwrapという共有ライブラリです。つまり、hosts.allow, hosts.denyで通信相手を制限できるのは、libwrapを利用しているプログラムのみということになります。

共有ライブラリの利用状況を調べるには

つまり、プログラムが共有ライブラリlibwrapを利用しているかどうかが分かれば、hosts.allow, hosts.denyを設定する必要があるかどうかが判断できるわけです。

そのためには、lddコマンドを利用します。 たとえば、代表的なhosts.allow, hosts.denyを利用するプログラムであるsshdについてlddコマンドを利用してみます。

$ ldd /usr/sbin/sshd
 libwrap.so.0 => /lib64/libwrap.so.0 (0x00002ae70961f000)
 libpam.so.0 => /lib64/libpam.so.0 (0x00002ae709828000)
 libdl.so.2 => /lib64/libdl.so.2 (0x00002ae709a33000)
 libselinux.so.1 => /lib64/libselinux.so.1 (0x00002ae709c38000)
 libaudit.so.0 => /lib64/libaudit.so.0 (0x00002ae709e50000)
 libfipscheck.so.1 => /usr/lib64/libfipscheck.so.1 (0x00002ae70a06a000)
 libcrypto.so.6 => /lib64/libcrypto.so.6 (0x00002ae70a26d000)
 libutil.so.1 => /lib64/libutil.so.1 (0x00002ae70a5be000)
 libz.so.1 => /usr/lib64/libz.so.1 (0x00002ae70a7c1000)
 libnsl.so.1 => /lib64/libnsl.so.1 (0x00002ae70a9d6000)
 libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00002ae70abee000)
 libresolv.so.2 => /lib64/libresolv.so.2 (0x00002ae70ae26000)
 libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00002ae70b03c000)
 libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x00002ae70b26a000)
 libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x00002ae70b4ff000)
 libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00002ae70b725000)
 libnss3.so => /usr/lib64/libnss3.so (0x00002ae70b927000)
 libc.so.6 => /lib64/libc.so.6 (0x00002ae70bc52000)
 /lib64/ld-linux-x86-64.so.2 (0x00002ae709402000)
 libsepol.so.1 => /lib64/libsepol.so.1 (0x00002ae70bfaa000)
 libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x00002ae70c1f0000)
 libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00002ae70c3f9000)
 libnssutil3.so => /usr/lib64/libnssutil3.so (0x00002ae70c5fb000)
 libplc4.so => /usr/lib64/libplc4.so (0x00002ae70c818000)
 libplds4.so => /usr/lib64/libplds4.so (0x00002ae70ca1d000)
 libnspr4.so => /usr/lib64/libnspr4.so (0x00002ae70cc20000)
 libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ae70ce5a000)
すると、このようにsshdが利用しているライブラリの一覧を取得することができます。そして、この中に確かに「libwrap」があることが確認できます。よって、sshdはhosts.allow, hosts.denyの制御の影響を受けるわけです。

BINDデーモンnamedについて確認する

では、BINDはどうかというと、

$ ldd /usr/sbin/named
 liblwres.so.9 => /usr/lib64/liblwres.so.9 (0x00002b819e041000)
 libdns.so.26 => /usr/lib64/libdns.so.26 (0x00002b819e252000)
 libbind9.so.0 => /usr/lib64/libbind9.so.0 (0x00002b819e573000)
 libisccfg.so.1 => /usr/lib64/libisccfg.so.1 (0x00002b819e77c000)
 libcrypto.so.6 => /lib64/libcrypto.so.6 (0x00002b819e996000)
 libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00002b819ece7000)
 libisccc.so.0 => /usr/lib64/libisccc.so.0 (0x00002b819ef16000)
 libisc.so.15 => /usr/lib64/libisc.so.15 (0x00002b819f11e000)
 libnsl.so.1 => /lib64/libnsl.so.1 (0x00002b819f360000)
 libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b819f579000)
 libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00002b819f794000)
 libc.so.6 => /lib64/libc.so.6 (0x00002b819f9cf000)
 libdl.so.2 => /lib64/libdl.so.2 (0x00002b819fd27000)
 libz.so.1 => /usr/lib64/libz.so.1 (0x00002b819ff2b000)
 libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x00002b81a013f000)
 libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x00002b81a03d5000)
 libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00002b81a05fa000)
 libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x00002b81a07fc000)
 libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00002b81a0a05000)
 libresolv.so.2 => /lib64/libresolv.so.2 (0x00002b81a0c07000)
 /lib64/ld-linux-x86-64.so.2 (0x00002b819de24000)
 libcap.so.1 => /lib64/libcap.so.1 (0x00002b81a0e1c000)
 libselinux.so.1 => /lib64/libselinux.so.1 (0x00002b81a1021000)
 libsepol.so.1 => /lib64/libsepol.so.1 (0x00002b81a1239000)
を見ての通り、libwrapがありません。つまり、BINDにhosts.allow, hosts.denyの設定は無意味という訳です。

まとめ

今回のまとめはこんな感じ

  • BINDに対するhost.allow, hosts.denyの設定は無意味
  • hosts.allow, hosts.denyがプログラムに対して有効かどうかを判定するためには
    $ ldd (プログラム) | grep libwrap
    としてみればよい
  • Linux Security Cookbook
    BIND9によるDNSサーバ構築
    DNS & BIND 第5版

    スポンサーサイト
BIND | コメント:0 | トラックバック:0 | 編集

発行元を確認できませんでした。このソフトウェアを実行しますか? このエントリーを含むはてなブックマーク

インターネットからダウンロードしたファイルの実行ファイル(.exeファイル)をダブルクリックで実行してみると、「開いているファイル - セキュリティ警告」というタイトルで、「発行元を確認できませんでした。このソフトウェアを実行しますか?」という質問が表示されます。

自分で実行したつもりのない怪しいファイルでこれが表示されたらとても有効なのですが、自分がダウンロードして、自分で実行しようとしているソフトを実行するたびにこれが聞かれたらめんどくさいですよね。

だからといって、下に表示されているチェックボックス「この種類のファイルであれば常に警告する」をオフにしたら、ちょっと怖かったりします。

たぶん、これはWindowsXP SP3 からだと思うのですが、ここでは「ソフト別にこの警告を表示しないように設定する方法」を紹介します。


やり方は簡単です。実行ファイル(.exe)ファイルを右クリックして、プロパティを表示します。

全般タブの下の方に「ブロックの解除」というボタンがあるので、それをクリックします。はい、終わり。

簡単ですね。これだけで、先ほどのような警告二度と表示されないようになります
未分類 | コメント:0 | トラックバック:0 | 編集
 | HOME | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。