hosts.deny で任意のipを拒否したいと思っても、hosts.allow でallで許可設定を書くと、公開サーバなどで以下のような設定は出来ないと思っていた。
例えば公開FTPサーバを用意するとして、セキュリティ対策のためにhosts.deny でまず全てを拒否する。その後、proftpd は外部からアクセスを許可するのでhosts.allow でallで許可をしているとする。
- /etc/hosts.deny
all: all
- /etc/hosts.allow
proftpd: all
この時に、悪さをしてくるhostがいたとしても、hosts.allow で全て許可してしまっているので、tcp wrapperだけではどうしようもなくて、iptables 等で対策が必要だと思っていた。
が、hosts.allow 内でdeny する設定ができた。知らなかった。
設定
- /etc/hosts.allow
proftpd: 192.168.0. : deny proftpd: all : allow
という風に3つ目の項目にdenyと書けば、/etc/hosts.allow だけで拒否設定も出来るのだった。ちなみに2行目のallow は別に書かなくてもproftpd: all だけでも良い。(deny と対比してわかりやすいように書いただけ)