web-dev-qa-db-ja.com

Debian 9サーバーでのSSHセキュリティの強化

次のバージョンのGNU/Linux Debianを実行しています。

cat /etc/issue

言う:

Debian GNU/Linux 9

次のカーネルを使用:

uname -r

言う:

4.9.0-2-AMD64

そして、次のバージョンのOpenSSHを実行します。

apt-cache policy openssh-server | grep Installed

言う:

Installed: 1:7.4p1-7

私の意図はharden少しでも1台のサーバーのSSHセキュリティです。VPNからでも、IPからでもアクセスできる必要があるからです。

これまでに行った手順:

  1. 直接ルートアクセスを無効にする:

    cat /etc/ssh/sshd_config | grep PermitRootLogin
    

    に設定されています:

    PermitRootLogin no
    
  2. SSHプロトコルバージョン2の適用:

    cat /etc/ssh/sshd_config | grep Protocol
    

    に設定されています:

    Protocol 2
    
  3. ポートをランダムに変更しました。ここでは記述しません。12345と言います。

    cat /etc/ssh/sshd_config | grep Port
    

    に設定されています:

    Port 12345
    
  4. 私はそれのためにファイアウォールに穴を開けました:

    Sudo iptables -A INPUT -p tcp -m tcp --dport 12345 -m comment --comment "ssh" -j ACCEPT
    
  5. 私は8キロビット長の新しいキーを生成しました(このような大きなキーのCPUオーバーヘッドと他の欠点を認識しています)。

    ssh-keygen -t rsa -b 8192
    
  6. 次に、サイズが一致していることを確認しました。

    ll /home/fictional_user/.ssh/id_rsa*
    

    本来あるべき姿とアクセス権:

    -rw------- 1 fictional_user fictional_group 6.3K Mar 16 11:53 /home/fictional_user/.ssh/id_rsa
    -rw-r--r-- 1 fictional_user fictional_group 1.4K Mar 16 11:53 /home/fictional_user/.ssh/id_rsa.pub
    
  7. 私はこのキーを追加し、他にないことを確認しました:

    eval $(ssh-agent -s)
    ssh-add
    ssh-add -l
    

    結果は:

    8192 SHA256:gibberish /home/fictional_user/.ssh/id_rsa (RSA)
    8192 SHA256:gibberish fictional_user@fictional_computer (RSA)
    
  8. サーバーを保守する2台のマシンにキーをインポートしました。

    ssh-copy-id fictional_user@public_ip -p 12345
    
  9. その後、パスワード認証を完全に無効にしました。

    cat /etc/ssh/sshd_config | grep PasswordAuthentication
    

    に設定されています:

    PasswordAuthentication no
    

質問:私は何かを忘れましたか、これが私ができる最大のものですか?

9

あなたができることはたくさんあります:

  • 秘密鍵をセットアップ これはキーストレッチアルゴリズムを使用します 総当たりのパスフレーズを保護します。
  • SshdでAllowUsersを設定して、指定されたアカウントのみがアクセスを取得できるようにします
  • Fail2banまたは fwknop を使用して外部からの攻撃をさらに防止します( CVE-2008-0166 により、Debianユーザーは32,767の可能なキーの1つのみを生成したことを思い出してください)
  • マシンの攻撃を積極的に監視する

いくつかの考え:

  • sshdはtcpwrappersをサポートします。これにより、ファイアウォールがダウンした場合の保護が追加されます。
  • ファイルシステムはこれらの公開キーの属性をサポートしていますか?むしろ、それらを可能な限り読み取り専用にします。
  • 鍵が使用できる時間を制限するためにssh-keysigningを検討してください。
1
bbaassssiiee