/etc/hosts.allowで外部ファイルをincludeして使う

tcp_wrappers 好きの皆さんこんにちわ。
/etc/hosts.allow でアクセス制限管理してますか?

ふと、「/etc/hosts.allowでincludeって出来ないのかなあ」と思って

man hosts.allow

してみたところ、"PATTERNS" のところに

A string that begins with a ‘/´ character is treated as a file name. A host name or address is matched if it matches any host name or address pattern listed in the named file. The file format is zero or more lines with zero or more host name or address patterns separated by whitespace. A file name pattern can be used anywhere a host name or address pattern can be used.

アドレスを書く部分が '/' で始まる場合はファイルで指定出来ると書いてあったので試してみました。

  • /etc/hosts.deny で "ALL: ALL" で全拒否
  • /etc/hosts.allow でホワイトリストとして管理

してるときに、 /etc/hosts.allow に以下のように記載し

sshd:    /etc/hosts.sshd_allow

includeするファイルを以下のように作成すると

192.168.1.10
192.168.1.11

通常記載するような以下の動きと同じになります。

sshd:    192.168.1.10
sshd:    192.168.1.11

役割が違うサーバーのそれぞれの /etc/hosts.allow をバージョン管理していて、両方で共通のルールだけ別ファイルで一元管理などに便利に使えそうです。