CentOS7を想定しています。
TCP wrapperとPAMを使用して簡素に設定。
####①クライアント側からのアクセスをTCP wrapperで設定する
/etc/hosts.denyに追記 (接続禁止リスト)
sshd:all #全て拒否
/etc/hosts.allowに追記 (接続許可リスト)
sshd:192.168.0.10(許可するIPアドレス)
アクセスを全て拒否し、必要なものだけを許可する。
####②サーバー側のssh接続させるユーザーの設定
/etc/pam.d/sshの7〜8行目あたりに追記して許可ファイルを有効にする。
account required pam_access.so
/etc/security/access.conf (⬆️のpam_access.soで有効にしたファイル)の最終行に追記
-:ALL EXCEPT sshgrp:ALL #sshgrp(グループ名)以外は禁止。ユーザー名も指定可。
root昇格を許可する場合は/etc/pam.d/suの6行目あたり
auth required pam_wheel.so use_uid #(コメント)を外して有効にする
/etc/login.defsの最終行に追記。wheelグループのみroot昇格を許可。
SU_WHEEL_ONLY yes
/etc/ssh/sshd_configの97行目あたりを確認。
UsePAM yes #UsePAM no だと上記の設定が反映されない
設定を反映させるためにsshdを再起動
systemctl restart sshd.service
ユーザーに必要なグループを追加する
gpasswd -a ユーザー名 グループ名