hosts.allowとhosts.deny書き方

2019年5月10日

VPSでサーバを運用しているとひたすらSSHへの不正アクセスが続きますので、VPSでのSSHはできる限りIPアドレスで限定しておいたほうがよいと思います。

ここではssh でのログインなどを特定のIPアドレスからのみ許可するようにしてみます。

適用順としてhosts.allowが適用されたあと、hosts.allowに記載のないアドレスがhosts.denyで処理されます。なのでhosts.allowで全許可、hosts.denyで全許可すると結局全許可されてしまいますので、気をつけて設定ください。

まずは/etc/hosts.allowに許可するIPアドレスたちを列挙します。

FQDN名、IPアドレス(サブネット区切り)、hostsファイル内、外部ファイルなどで設定できますね。

DNS逆引きしたときのFQDNの一番うしろがexample.comだったら許可とか

sshd : .example.com

IPが192.168.0.0/16 からだったら許可とか

sshd : 192.168.

192.168.1.1だったら許可とか

 sshd : 192.168.1.1 

hostsに手書きしたコンピュータ名でもいけますね。

sshd : PC1

(hosts内で

192.168.1.1 PC1

とか設定)

でその後で/etc/hosts.denyを設定します。設定の反映は即時ですので、まずはhosts.allowをしっかり設定してください。

/etc/hosts.denyの設定

sshd : all

で全拒否になります。

許可したいIPや禁止したいIPがあまりにもたくさんある場合は外だしファイルで対応するのが良いかと思います。

例えば日本国内からだけSSH許可する場合は日本のアドレスを集めた(これがちょっと簡単ではないですが。。)/etc/JAPAN.allow というファイルを作成し、/etc/hosts.allowに

sshd : /etc/JAPAN.allow

と書けばOKです。

現実的には個人では固定IPアドレスを持っていることは少ないですので、自分のりようしているインターネット接続サービスのIPレンジやDNS逆引きでのFQDNを指定するのが現実的な対応かなと思います。


ubuntu

Posted by kitakantech