LoginSignup
0
0

More than 1 year has passed since last update.

[忘備録][CentOS6]サーバーへsshアクセスを行うのにIP制限を行う

Posted at

この記事は、もうとっくにCentOSが死んで長いのにさらにCentOS6で行ったもののため、この内容は最新の情報にマッチしないことがあります。

手元のサーバーで行う際は、十分に情報を確認の上行ってください。 

はじめに

セキュリティのため、サーバーへsshアクセスを行うのにIP制限を行うようにすることにした。

適当に調べたところによると、/etc/security/access.confを編集し、/etc/pam.d/sshdファイルにaccess.confを確認するように記述してアクセス制限を行うらしいが、そのまま行うといくつかの落とし穴にハマってしまった。

この記事はそれら落とし穴にはまらないようにIP制限を行う手順書である。

IP制限を書こう!

/etc/security/access.confの中にはデフォルトでコメントの形で「どのように記述すればいいのか」が書いてある。
そのコメントを参考に記述内容を事前に決めておく。
なお、そのままコメントの下に記述を行うと、crontabコマンドにもアクセス制限がかかってしまうので、別ファイルを作成する。

/etc/security/sshd_access.conf
+ : ALL : 192.168.0.0 
- : ALL : ALL

もしも解禁したいIPが複数ある場合はスペースを挟んで書いたり、複数行並べることもできる。
.htaccessのように上から順に「まずすべて禁止して…」と書きたくなるが、access.confでは逆なので注意。

IP制限を反映させよう!

実際にsshへのアクセス制限を記述しているファイルは/etc/pam.d/sshdである。
こちらも上から順に認証をかけているようなので、終了されてしまう前に制限をかけるようにする。
具体的には、account include password-authが成功したら以降の処理をすべてスキップして処理終了の動きをしてしまっているので、それよりも前に記述する。

/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 accessfile=/etc/security/sshd_access.conf

account    include      password-auth
password   include      password-auth

...以下色々書いてある

なおここのファイルは記述ミスするとエラーメッセージ無しで全アクセスが不能になるので必ずチェックすること。

最後に/etc/ssh/sshd_configの中身を確認し、そもそもpam.dの設定が使えるかどうかを確認する。
以下の記述があれば利用できます。

UsePAM yes

以上で完了です。
最後にservice sshd reloadを忘れずに。

そしてセッションを切ってしまう前に別のbashでアクセスし、ちゃんと制限がかかっている(または余計な制限をかけてしまっていないか)確認すること。

最後に

この記事は以下のURLを参考にしました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0