さくらVPSでTCP Wrapperを実際に触ってみる

さくらVPSを用いて、TCP Wrapperの設定をしてみる手順書と、調べたことのメモ書きです。 TCP WrapperでSSHが繋がらなくなることを確認してみます。

  1. 前提
  2. TCP Wrapperとは?
  3. 設定前の確認
  4. TCP Wrapperの設定
  5. sshがつながらないことの確認
  6. 設定例

0. 前提

  • さくらVPSの初期設定が完了している
  • SSHの接続設定が完了している
  • SSHのポート番号は33331
  • TCP Wrapperは初期状態のまま未設定

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によるアクセスができないことが確認できます。

次に、ポートが開放されているかを確認します。 ポートをチェックができるサイトで確認します。 ポートが開放されていることが確認できるはずです。

  1. 設定例 このままでは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からの通信も許可します。