ユーザーのssh のアクセス制限をIPアドレスで掛けたい。
IPアドレスからのパスワード・アクセスを許可したり、ユーザーごとに許可したりは、Match条件できる。
Match User apache PasswordAuthentication yes Match Address 192.168.10.* PasswordAuthentication yes
上記のようにしたらできる。
特定のIPからの指定のユーザーだけを許可するのはどうするのか
結論から言うと、こう書くといい。
AllowUsers apache@172.10.0.0/16
この例だと、指定したIPからのみ、ユーザー名Apacheがログインできる。よく使いそうなユーザー名 www-data や apache などは /sbin/nologin で守ることもできるけど、どうしても使いたいなってときだけに、このようにすることで特定ユーザーの制限されたIPからのみに限定できる。
And条件などが使えないので、具体的には、このように書くしかないんですね。
大胆に、指定IPだけ、SSHを許可する
iptables でやれって話なんですが。うまく使えば、指定IPからだけのSSH接続を許可するっていう使い方ができる。
AllowUsers *@172.10.0.0/16
逆に、拒否するときとか
DenyUsers *@172.10.0.0/16
いちおうman には載ってるんだけど、結構悩んだのでメモしておく。