Ubuntuでいくつかのホストをブロックしたいのですが、どうやってhosts.deny
ファイルを編集してexample.comのようなホストをブロックできますか?
そしてもう一つ、Ubuntuにdnsmasq
をインストールしたのですが、dnsmasq
によってキャッシュされたdns'sのエントリをチェックできますか?もし可能なら、どのようにすればいいですか?
よろしくお願いします。
hosts.deny`の例:
ALL: 192.168.1.2
ALL: example.org
これは192.168.1.2とexample.orgへの全てのサービスを拒否します。詳しくは、http://linux.about.com/od/commands/l/blcmdl5_hostsde.htm を参照してください。
dnsmasq -d` でキャッシュされたエントリーが得られるはずだが、それについてはあまり自信がない。
---UPDATE---
iptablesでIPアドレスをブロックするには:
iptables -A INPUT -s 11.22.33.44 -j DROP
でブロックを解除します:
iptables -D INPUT -s 11.22.33.44 -j DROP
hosts.allowと
hosts.deny`は非推奨である。これらはTCPラッパー、ホストベースのアクセス制御、http://en.wikipedia.org/wiki/TCP_Wrapperで使用される。
あるサービスへのアクセスをブロックしたい場合、そのサービスがTCP Wrappersでコンパイルされているかどうかを調べる必要がある。UbuntuのサービスがまだTCP Wrappersを使っているかどうかは、かなり疑わしいです。
TCPラッパー・ライブラリは /lib/libwrap.so.0
にある。
lighttpd`(ウェブサーバー)がTCP Wrappersをサポートしているか調べたい場合は、以下を実行する。
> ldd /usr/sbin/lighttpd
linux-vdso.so.1 => (0x00007fff2a5ff000)
libpcre.so.3 => /lib/libpcre.so.3 (0x00007f69af837000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f69af633000)
libattr.so.1 => /lib/libattr.so.1 (0x00007f69af42d000)
libssl.so.0.9.8 => /lib/libssl.so.0.9.8 (0x00007f69af1db000)
libcrypto.so.0.9.8 => /lib/libcrypto.so.0.9.8 (0x00007f69aee4b000)
libfam.so.0 => /usr/lib/libfam.so.0 (0x00007f69aec42000)
libc.so.6 => /lib/libc.so.6 (0x00007f69ae8bf000)
/lib64/ld-linux-x86-64.so.2 (0x00007f69afa90000)
libz.so.1 => /lib/libz.so.1 (0x00007f69ae6a8000)
> _
libwrapについては言及していないので、少なくともこのサービスはTCP Wrappersをサポートしておらず、
/etc/hosts.{allow, deny}`を無視する。