DHCP Serverログのリモート監視用に導入した OpenSSH for Windows のセキュリティを見直してみました。>
先回、OpenSSHを入れたWindows Server 2012ベースのサーバは、プライマリドメインコントローラでもある重要な基幹機であることからも、以下の項目でセキュリティを強化してみたいと思います。
- パスワード認証無効化
- ポートフォワーディング無効化
- ログイン即ログ監視バッチ起動
- Firewallでリモートアドレスを限定
そもそもWindows版OpenSSHの場合、sshd_configは何処にあるのか気にしていなかったのですが、設定関連は「%PROGRAMDATA%\ssh\」にまとまっていました。
ちなみに、sshd_configのデフォルトファイルはバイナリと同じフォルダにあるので、万が一の確認用に。
尚、Windows版OpenSSHのsshd_configで設定可能な項目は、公式Wikiに解説されています。
パスワード認証無効化
前回既に鍵認証でのログインを実装済みなので、心置きなくパスワード認証を無効にしてしまいましょう。
1 2 3 4 |
## Disable Password Auth PasswordAuthentication no PermitEmptyPasswords no ChallengeResponseAuthentication no |
実際に弾いてくれるのか試してみます。
1 2 3 |
macpro:~ user$ ssh admin@192.168.2.8 admin@192.168.2.8: Permission denied (publickey,keyboard-interactive). macpro:~ user$ |
ポートフォワーディング無効化
sshを踏み台にしたり、VPN代わりに使われる機会も増えてきているので、ここも塞いでしまいます。
1 2 3 4 5 |
## Disable Port Forwarding AllowTcpForwarding no AllowStreamLocalForwarding no GatewayPorts no PermitTunnel no |
ログイン即ログ監視バッチ起動
ログイン後、Powershellのバッチを手動で呼び出すのが毎日地味に面倒だったのですが、これをログイン後起動するコマンドに登録してしまうことを思いつきました。
1 2 3 |
## DHCP Log Remote Monitor via SSH Match host 192.168.26.99 ForceCommand powershell -f C:\bats\tailDHCPLog.ps1 |
これでsshログイン即ログ監視開始となり、CTRL-Cするとsshからも抜けるので、結果的にそれ以外の目的にsshを使えなくすることが出来ます。
Firewallでリモートアドレスを限定
これはsshd_configではありませんが、FirewallのInbound Rulesに登録済みのsshdに関するルールの、アクセス元IPアドレスを限定的にしてしまいます。
正直なところ、ログ監視だけの為にsshサービス立てることに引け目があったのですが、これだけ対策しておけば罪滅ぼしになるでしょう。