pam によるSSHのIP制限

以前、 HOSTSファイルによるSSHのIP制限 をエントリーしましたが、TCP Wrapper を通るサービス自体が減っており、libwrap ライブラリを利用するサービスは現在、SSH, PostFix 位しかありません。 ldd /usr/sbin/sshd | grep libwrap コマンドでHOSTSファイルが利用できるかどうか、確認が出来ます。しかし今回は、pam(Pluggable Authentication Module)によるSSH のIP 制限の方法をご紹介します。

ユーザ、アクセス元IPアドレスでsshの接続制限をする

詳しい設定は、OpenSSH – IP制限かつユーザの制限を同時に行う – Qiita にありますが、とりあえずローカルネットのユーザーのみに制限する方法として、

/etc/pam.d/sshd

#%PAM-1.0
auth       required     pam_sepermit.so
auth       include      password-auth
account    required     pam_nologin.so
account    required     pam_access.so (新規追加
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    optional     pam_keyinit.so force revoke
session    include      password-auth

/etc/ssh/sshd_config

UsePAM yes

/etc/security/access.conf

- : gusachan : ALL EXCEPT 192.168.0.0/24
# service sshd restart

pam には他にもroot になれるスーパーユーザーをWheel グループのみに制限する、 /etc/pam.d./su もありますね。

auth  required pam_wheel.so use_uid (コメントアウト

参考:http://fnya.cocolog-nifty.com/blog/2012/03/centos-6aa8.html