次のユースケースがあります。
- ユーザーが安全で信頼できるネットワークからログインできるようにする必要があります
- その後、複数のユーザー(たった2人)のモバイルユーザーがLinux Centosシステムにリモートでログインできるようにします。
たとえば、別のポートで sshd を実行できます。
- 内部的には、他のポートに接続したくないので(スクリプトを混乱させる)22で実行することができます。
- 外部モバイルユーザーの場合は、他のポート(ポートXなど)でsshdを実行します(セキュリティを強化するための小規模オフィスタイプの設定)。
セキュリティを強化するために、ポートXの特定のユーザーにのみアクセスを許可するようにsshdを設定したいと思います。その後、ユーザーがポートXを介してログインしたときに知らせるようにいくつかの警告を設定したいと思います。
ただし、sshd ドキュメントでは同様の構成が見つかりません。そのような解決策がない場合は、誰かがポートXでsshdログインを完了したときに少なくともシェルスクリプトを実行して実行できますか? sshdログインに関する警告をトリガーできることを確認するためにiptables文書を表示しますが、情報を提供できません。
コメントありがとうございます
ベストアンサー1
代替ポートで実行することはもはやSSH
安全とは見なされません。これは、ユーザーにもっと曖昧さと複雑さを追加するだけです。自動ポートスキャナを使用し、どのポートで実行されているか気にしないことでネットワークを損傷したい人には障壁はまったくありません。
リモートインバウンドインターネットベースのSSHを許可するシステムのセキュリティを強化するには、次のユーザーを制御します。sshd_config
@Anthon directsユーザーを制御し、PAMに直接セキュリティを実装します。
2つのグループを作成lusers
しますrusers
。リモートモバイルユーザーをrusers
グループに追加します。使用pam_succeed_if.soPAMモジュールを使用すると、これらのユーザーへのアクセスが許可されます。 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
ローカルユーザーはパスワードまたはキーを使用して接続できるようになりましたが、リモートユーザーはキーを使用する必要があります。パスワードを使用してキーを生成できます。
追加のボーナスとして、1つだけを管理し、1つのポートsshd_config
でのみsshを実行する必要があるため、自分で管理が簡素化されます。
2017-01-21 編集- ファイルの使用を制限しますauthorized_keys
。
authorized_keys
ユーザーが自分のSSHキーを生成し、それをファイルと共に使用してログインできないようにするには、sshdが認証されたキーを見つける特定の場所を設定してそれを制御できます。
変更/etc/ssh/sshd_config
:
AuthorizedKeysFile %h/ssh/authorized_keys
類似:
AuthorizedKeysFile /etc/.ssh/authorized_keys/%u
ユーザーが書き込み権限のない制御されたディレクトリを指すとは、ユーザーが自分のキーを生成できず、それを使用して設定されたルールをバイパスできないことを意味します。