さくらVPSでTCP Wrapperを実際に触ってみる
さくらVPSを用いて、TCP Wrapperの設定をしてみる手順書と、調べたことのメモ書きです。 TCP WrapperでSSHが繋がらなくなることを確認してみます。
0. 前提
1. TCP Wrapperとは?
(初心者が調べた結果) TCP Wrapperは、アプリケーションレベルで、一部のサービスへのアクセス制御を行うことができる仕組みです。 アプリケーションレベルというのは、インターネットの通信プロトコルのTCP/IP階層モデル(もしくはOSI参照モデル)のアプリケーション層です。参考ページ ファイアーウォールを抜けた後に行うアクセス制御なので、かなりギリギリのところで食い止めるイメージです。
一部のサービスへのアクセス制御というのは、すべてのアクセスに対して有効なアクセス制御ではないということです。 libwrapというTCP Wrapperのライブラリにリンクしているサービスに対してのみアクセス制御を行います。 例えば、sshd(sshのデーモン)はアクセス対象です。
よって、TCP Wrapperを設定しても、ファイアーウォールを設定していないと危険な状態となります。 sshなどの一部の大切な機能について、より強固な設定を行うためのもの、という位置づけです。
2. sshの接続設定と確認
TCP Wrapperの設定をする前に、SSHの接続が可能であることを確認してください。 ローカルからTeratermなどを使ってVPSに接続できることを確認してください。
次に、ポートが開放されているかを確認します。 ポートをチェックができるサイトで確認します。 ポートが開放されていることが確認できるはずです。
3. TCP Wrapperの設定
/etc/hosts.denyファイルに、「TCP Wrapperでアクセス制御できるすべてのアクセスを禁止する」設定を記載します。 hosts.denyを開きます。
vi /etc/hosts.deny
hosts.denyに以下を追加します。
ALL: ALL
4. sshがつながらないことの確認
TCP Wrapperは再起動等を行わなくても反映されます。
ローカルからsshにより接続を再度確認してください。 sshによるアクセスができないことが確認できます。
次に、ポートが開放されているかを確認します。 ポートをチェックができるサイトで確認します。 ポートが開放されていることが確認できるはずです。
hosts.denyは変更せずに、hosts.allowを開きます。
vi /etc/hosts.allow
hosts.allowに以下を追加します。
ALL: 127.0.0.l sshd: (作業を行うPCのグローバルIPアドレス)
作業を行うPCのグローバルIPアドレスはIPアドレスをチェックするサイトで確認すると楽だと思います。
上記の設定により、全てのサービスは、自分自身からの通信は許可します。 sshdについては、作業を行うPCからの通信も許可します。