hosts, resolv.conf, nsswitch.conf

ホスト名を利用して通信を確立するには、hosts ファイルを使った方法と、DNSによる名前解決の2通りがある
※ ただし、hosts ファイルを使った方法は、LAN内部で管理するケースに限る。

/etc/hosts

記述例
192.168.11.6 foo foo.example.co.jp

この場合「192.168.11.6」のマシンへ「foo」という名前でアクセスできるようになる

etc/resolv.conf

nameserver 192.168.11.1
  • IPアドレス「192.168.11.1」のDNSサーバを利用する
  • なお、複数のDNSサーバを指定することも可能

etc/nsswitch.conf

  • hosts, resolv.conf と2種類の名前解決の優先順位をこのファイルで指定する
#hosts:     db files nisplus nis dns
hosts:      files dns

この場合、まず hosts ファイルを参照し、名前解決できなければ、 DNS サーバに問い合わせる

名前解決

例えば foo.example.co.jp という名前を 192.168.11.6 というIPアドレスに変換作業
この作業をDNSというシステムが行う。

hosts.allow, hosts.deny

  • サーバプログラムの接続を許可、拒否を設定するファイル
  • hosts.allow は接続許可
  • hosts.deny は接続拒否

※サーバプログラムは必ずしもhosts.allow, hosts.denyファイルを参照しないのに注意
参照順は deny -> allow
その為、deny ですべての接続を拒否して、allow でアクセス許可するサービスとホストを記述するとセキュリティ上よろしいらしい

記述例

/etc/hosts.deny

  • すべての接続を拒否
all:all

/etc/hosts.allow

all:LOCAL, 192.168.0.0/255.255.255.0
telnet: 192.0.2.1

192.168.0.1~192.168.0.254までのホストからの接続を許可
telnet サービスへの接続は 192.0.2.1 のホストからも受け付ける