TCP Wrapperでsshdへのアクセス制限

Facebooktwittermail

CentOS 7でsshdを動作させていますが外部からの不正アクセスが絶えません。
port:22から別のポートに変更するだけで格段にアクセスが減るのですが、外出先でリモート接続する場合にそのポートが通過できるか等を考慮して22で動作させています。

手っ取り早くアクセス制限する方法としてTCP Wrapperを使用しました。

⁠2.6.2. TCP Wrapper の設定ファイル – Red Hat Customer Portal
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sect-Security_Guide-TCP_Wrappers_and_xinetd-TCP_Wrappers_Configuration_Files.html
(RHEL 6のドキュメントです。RHEL 7を見つけられませんでした。)

ちなみに/etc/hosts.allow, /etc/hosts.denyは即反映されます。
リモートで編集する場合は十分注意しないと接続できなくなる可能性もあります。

  1. 許可するIP(/etc/hosts.allow)
  2. 今回は/etc/hosts.allow.sshdを新規に作成して、このファイルにまとめて許可IPを記述することにしました。

    /etc/hosts.allow.sshdはサービス名は記述しないでネットワークだけです。

  3. 拒否するIP(/etc/hosts.deny)
  4. すべて拒否とし、ログを作成します。これで許可IPからは接続でき、それ以外はすべて拒否になります。

    ログはこんな感じです。

    /bin/dateだとシステムのロケールに合わせるので日時が日本語で出力されます。これではスクリプトで処理する場合に面倒なので書式を設定しています。

  5. logrotate

昨日は103のIPから538回のアクセスを拒否しています。

Leave a Reply