私は、SSHアクセスを管理するための次のセットアップが好きです。SSHアクセスは、私が職場で少数のサーバー群のユーザーグループを管理するために使用しています。セキュリティと管理の容易さは、私の優先事項のリストにあります。
その主な機能は、Unixグループメンバーシップを介してSSH権限を簡単に管理し、厳密に定義された権限を持ち、デフォルトで安全であることです。
設定中
ソフトウェアのインストール(オプションだが有用):
yum install members # or apt install members
グループを追加します。
addgroup --system allowssh
addgroup --system sftponly
で/etc/ssh/sshd_config、設定を次のようにしていることを確認してくださいNo:
PermitRootLogin no
PubkeyAuthentication no
PasswordAuthentication no
最後に/etc/ssh/sshd_config、次の2つのスタンザを追加します。
Match Group allowssh
PubkeyAuthentication yes
Match Group sftponly
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
(ファイルの編集後にSSHを再起動することを忘れないでください)
説明
だから、これはすべて何をしますか?
- 追加のセキュリティ対策として、rootログインを常に無効にします。
- パスワードベースのログインは常に無効になります(sshdを実行しているサーバーにとって弱いパスワードは大きなリスクです)。
allowsshグループ内のユーザーにのみ(pubkey)ログインを許可します。
sftponlyグループ内のユーザーは、SFTPのみでSSHを介してシェルを取得できません。
グループメンバシップを管理することで、誰がアクセスできるかを簡単に管理できます(これらの変更はすぐに有効になり、SSHの再起動は不要です)。
# adduser marcelm allowssh
# members allowssh
marcelm
# deluser marcelm allowssh
# members allowssh
#
sftpユーザーは、sftponly(シェルを取得しないようにするため)とallowssh(最初にログインできるようにするため)の両方のメンバーである必要があることに注意してください。
さらに詳しい情報
この構成ではパスワードによるログインが許可されないことに注意してください。すべてのアカウントは公開鍵認証を使用する必要があります。これはおそらく、SSHで得られる最大のセキュリティ上の勝利の1つであるため、今すぐ開始しなければならない場合でも、努力する価値があると考えています。
これが本当に必要ない場合はPasswordAuthentication yes、Match Group allowsshスタンザにも追加してください。これにより、allowsshユーザーにpubkeyとパスワードの両方の認証が許可されます。
この構成では、すべてのsftponlyユーザーがホームディレクトリに制限されます。不要な場合は、ChrootDirectory %hディレクティブを削除してください。
chrootingを機能させたい場合は、ユーザーのホームディレクトリ(およびその上の任意のディレクトリ)がroot:rootgroup / otherによって所有され、書き込み可能ではないことが重要です。ホームディレクトリのサブディレクトリがユーザー所有または書き込み可能であってもかまいません。
はい、ユーザーのホームディレクトリはルート所有者であり、ユーザーが書き込みできない必要があります。残念ながら、この制限には十分な理由があります。状況に応じてChrootDirectory /home、適切な代替手段になる場合があります。
sftponlyユーザーのシェルをに設定すること/sbin/nologinは、SSH ForceCommand internal-sftpがユーザーのシェルをオーバーライドするため、このソリューションにとって必要でも有害でもありません。
/sbin/nologinただし、他の方法(物理コンソール、sambaなど)からのログインを停止するには、を使用すると役立つ場合があります。
このセットアップではroot、SSH経由の直接ログインは許可されません。これにより、セキュリティがさらに強化されます。あなたが本当に場合か、直接rootログインを必要とする、変更PermitRootLogin指示を。それを設定することを検討forced-commands-only、prohibit-passwordおよび(最後の手段として)yes。
ボーナスポイントについては、誰がsuルートできるかを制限することを検討してください。というシステムグループwheelを追加し、で追加/有効にauth required pam_wheel.soし/etc/pam.d/suます。