インフラメンバー(先輩)に
「sshをポートでユーザごとに制限かけれるように設定してほしい」と言われたので、
そもそもそんなことできるのか!?と自分の能力のなさに笑ってしまったので、とりあえず調べました。
■Matchってなんなの
クライアントの接続条件によって sshd の設定内容を変更するもの。
異なるポートで複数のコンフィグファイルを使用して別々にサーバを起動させないとダメなところを1つにまとめることができる。
ポート以外の条件でも異なる設定内容が使えたりなどなど。
とりあえずMatchを使えばユーザごとに制限できる!
# man sshd_configをしてみた。
1 2 3 4 5 |
# man sshd_config |grep Match Match Introduces a conditional block. If all of the criteria on the Match line are satisfied, the keywords on the following lines override those set in the global section of the config file, until either another Match line or the end of the file. If a keyword appears in multiple Match blocks that are satisified, only the first instance of the keyword is applied. |
訳)
マッチライン上の基準のすべてを満たしている場合には、次の行にキーワードが別のマッチライン
またはファイルのいずれかの端までのconfigファイルのグローバルセクションに設定されたものを上書きします。
■Matchで使えるキーワード
1 2 3 4 5 6 |
1.User 2.Group 3.Host SSH 4.LocalAddress 5.LocalPort 6.Address |
とりあえずこの6つが上書きされます。
■設定例
1 2 3 4 5 6 7 |
# grep adachin /etc/ssh/sshd_config Port 22 AllowUsers !* Match LocalPort 22 AllowUsers adachin ec2-user |
これでadachin、ec2-userのみsshできるようになりました!(解決)
■まとめ
ユーザごとに制限ができるので、SFTPもセキュリティー高められそう。
他にもポートだけじゃなく、ユーザグループも指定できるので、ここらへんは使い分けるといいですね。
1 |
Match Group adachinmember みたいに |
参考:http://togakushi.bitbucket.org/build/html/OpenSSH_AdventCalendar2014/06.html
0件のコメント