同じsshd
設定を複数のユーザーに適用しようとしています。
マニュアルによると、それはMatch User
はAND
のように機能します:
条件付きブロックを導入します。
Match
行の条件がすべて満たされている場合、次の行のキーワードは、構成ファイルのグローバルセクションで設定されているキーワードを上書きします
「これらのユーザーのいずれかのために...」とどのように述べるか、この例では、bob
、joe
、およびphil
はSSHをプロキシとして使用することを許可されていますが、ログインを許可されていません:
Match User bob, User joe, User phil
PasswordAuthentication yes
AllowTCPForwarding yes
ForceCommand /bin/echo 'We talked about this guys. No SSH for you!'
自分でこれを行ったのではなく、私はマニュアルが言うことだけを続けることができます:
_sshd_config
_マニュアルから:
一致パターンは、単一のエントリまたはカンマ区切りのリストで構成でき、
ssh_config(5)
のPATTERNSセクションで説明されているワイルドカードおよび否定演算子を使用できます。
これはあなたが言うことができるはずであることを意味します
_Match User bob,joe,phil
PasswordAuthentication yes
AllowTCPForwarding yes
ForceCommand /bin/echo 'We talked about this guys. No SSH for you!'
_
情報セキュリティフォーラムのこの回答もご覧ください。 https://security.stackexchange.com/a/18038
ユーザーではなくグループに対してMatchディレクティブを使用します。次に、そのグループにユーザーを追加します
Match Group users_with_no_ssh
PasswordAuthentication yes
AllowTCPForwarding yes
ForceCommand /bin/echo 'We talked about this guys. No SSH for you!'
ForceCommandがSFTPでうまく機能するかどうかはわかりません。また、ログに「DenyUsers」という単語を表示する方が良いかもしれません。とにかく、私はこれを使用します(まあ、おそらくそれはグループを使用する方が良いでしょう):
sshd_config
# support, ansible & backup only from specific IP
Match User ansible,backup,support Address *,!176.x.x.x
DenyUsers ansible,backup,support
Match User backup
AllowTcpForwarding yes
AllowAgentForwarding yes
PermitListen 127.0.0.1:2223
AcceptEnv RESTIC_REPOSITORY RESTIC_PASSWORD
テスト構成
# sshd -T -C addr=176.x.x.x,user=backup | egrep '^((deny|allow)users|permitlisten|acceptenv)'
denyusers root
acceptenv RESTIC_REPOSITORY
acceptenv RESTIC_PASSWORD
permitlisten 127.0.0.1:2223
# sshd -T -C addr=8.8.4.4,user=backup | egrep '^((deny|allow)users|permitlisten|acceptenv)'
denyusers ansible,backup,support
acceptenv RESTIC_REPOSITORY
acceptenv RESTIC_PASSWORD
permitlisten 127.0.0.1:2223
実世界テスト
Jan 29 16:50:12 mx1 sshd[71309]: Connection from 199.x.x.x port 21042 on 199.x.x.x port 2222 rdomain "0"
Jan 29 16:50:13 mx1 sshd[71309]: User support from 199.x.x.x not allowed because listed in DenyUsers
Jan 29 16:50:13 mx1 sshd[71309]: Connection closed by invalid user support 199.x.x.x port 21042 [preauth]
基本的にあなたの構文は間違っています、あなたは持っています:
Match User bob, User joe, User phil
しかしそれは
Match User bob,joe,phil