SSH代替ポートで実行することは、もはやセキュリティとしてカウントされません。わずかなあいまいさを追加するだけで、ユーザーにとっては複雑さが増します。自動化されたポートスキャナーを使用していて、どのポートで実行されているかを気にしない、ネットワークを破壊しようとしている人々に障害を追加しません。
リモートのインターネットベースのインバウンドSSHを許可するシステムのセキュリティを強化したい場合sshd_configは、@ Anthonが示すようにユーザーを制御し、PAMにセキュリティを直接実装します。
2つのグループを作成し、lusersそしてrusers。リモートモバイルユーザーをrusersグループに追加します。pam_succeed_if.so PAMモジュールを使用して、これらのユーザーへのアクセスを許可します。sshのpam設定に行を追加します。
account sufficient pam_succeed_if.so user ingroup lusers
account sufficient pam_succeed_if.so user ingroup rusers
一部のpam_succeed_if.soモジュールでは、などのわずかに異なる構文を使用する必要がある場合がありますgroup = lusers。
そうすると、sshd接続できるユーザーが制限されるだけでなく、にバグが発生したsshd場合でも、PAMベースの制限が提供する保護があります。
リモートユーザーの追加手順の1つは、パスフレーズでssh_keysを強制的に使用することです。そのため、ローカルユーザーはキーまたはパスワードを使用してログインできますが、リモートユーザーはキーを持っている必要があり、それらのキーを作成する場合、キーにパスフレーズが関連付けられていることを確認できます。したがって、SSHキーとパスフレーズを実際に所有している場所へのアクセスを制限します。また、ユーザーのパスワードが妥協された場合の潜在的な攻撃ベクトルの制限。
でsshd_config:
2つの設定を変更します。
ChallengeResponseAuthentication yes
そして
PasswordAuthentication yes
に:
ChallengeResponseAuthentication no
そして
PasswordAuthentication no
そのため、デフォルトではキー認証のみが許可されるようになりました。次に、ローカルユーザーの構成match設定を使用して、ローカルユーザーのデフォルトを変更できます。ローカルプライベートネットワークが192.168.1.0/24であると仮定して、以下に追加しsshd_configます。
Match Address 192.168.1.0/24
PasswordAuthentication yes
これで、ローカルユーザーはパスワードまたはキーで接続でき、リモートユーザーはキーの使用を強制されます。パスフレーズでキーを作成するのはあなた次第です。
追加の利点として、単一のを管理するsshd_configだけでよく、単一のポートでsshを実行するだけでよいため、独自の管理が容易になります。
編集2017-01-21-authorized_keysファイルの使用を制限します。
ユーザーがsshキーを自己生成するだけではなく、それをauthorized_keysファイルで使用してログインできないようにする場合は、sshdが認証済みキーを探す特定の場所を設定することで制御できます。
/etc/ssh/sshd_config変更、:
AuthorizedKeysFile %h/ssh/authorized_keys
次のようなものに:
AuthorizedKeysFile /etc/.ssh/authorized_keys/%u
ユーザーが書き込み権限を持たない制御されたディレクトリを指すということは、ユーザーが独自のキーを生成し、それを使用して設定したルールを回避できないことを意味します。
lusersグループ内ではなくグループ内の誰かがrusersキーペアを生成し~/.ssh/authorized_keys、それらを更新すると、リモートからログインできるようになります。