一般ユーザは、SFTPで特定のディレクトリのみしか触れないようにしたい
サーバのファイル操作を複数人で行うようなことは、エンジニアの現場ではよく起きることです。
そのような場合、全員が管理者権限を持ってしまうと、みんなが自由にサーバの設定を変えることができるため、セキュリティ面で何かと問題があります。
管理者以外のユーザは、SFTPで特定のディレクトリのみしか触れないようにしたい場合、以下の手順で対応できます。
ちなみにこの手順では、SSHのログインもできないように設定します。
ディレクトリの作成
SSHでサーバにログイン後、「su -」で管理者ユーザに切り替わった状況からスタートします。
まずはディレクトリを用意します。
これは、今回操作権限を付与するユーザが、唯一操作できるディレクトリになります。
「/var/www/」直下にhomeDirというディレクトリを作るとします。
※すでに用意してある場合は不要です。
cd /var/www mkdir homeDir
最後にも確認しますが、homeDirの所有権はrootユーザになるようにしてください。
そうしないとエラーが発生してしまいます。
ここで終わりではなく、さらにhomeDirの中にuploadDirというディレクトリを作成してください。
cd homeDir mkdir uploadDir
最終的には、今回操作権限を与えるユーザがログインした場合、ホームディレクトリ(ログインした後にたどり着くディレクトリ)をhomeDirとしますが、実際にファイルの更新などができるのはuploadDirの中だけとしたいです。
ユーザとグループの作成
次にユーザを作成しましょう。
今回はtestUserというユーザを作成することにします。
useradd testUser
そして作成したユーザのパスワードを設定します。
passwd testUser
続いてグループを作成します。
今回はsftpgroupというグループを作成し、このグループに所属するユーザは、操作権限が与えられるものとします。
※gpasswdはユーザのグループ情報を管理するコマンドです。
groupadd sftpgroup gpasswd -a testUser sftpgroup
※今後同じようなユーザを増やしたい場合、上記で作成したグループに入れましょう。
この時点でSSHやSFTPでログインできることを確認してください。
今のままではこのユーザのディレクトリ操作制限が設定されていないので、書き込み権限はないもののサーバの中身が丸見えです。
ディレクトリの権限変更
この対応では権限設定を間違えると上手くいきません。
各ディレクトリに対して以下のような権限設定をしてください。
homeDirは今回唯一操作可能なディレクトリということになりますが、書き込み・読み込み権限を与えた上で、ユーザ所有権・グループ所有権共にrootにしてください。
cd /var/www chmod 775 homeDir chown root:root homeDir
次にファイルの更新を行うディレクトリに関してですが、こちらはユーザ所有権をtestUser、グループ所有権をsftpgroupとしてください。
このディレクトリの所有権をrootにしてしまうと、誰も中身を更新できなくなりますし、グループにsftpgroupを指定することで、後ほどユーザをグループに追加すれば誰でも更新できるようになります。
cd /var/www/homeDir chown testUser:sftpgroup uploadDir
sshd_configを変更して操作権限を付与
あとは以下のようにsshd_configの一番下の部分を変更してください。
vim /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server # コメントアウトする Subsystem sftp internal-sftp # SSHログインを制御してSFTPでないとログイン不可に Match Group sftpgroup ChrootDirectory /var/www/homeDir PasswordAuthentication yes
簡単に説明しますと、sftpgroupのグループに属するユーザがログインした場合、homeDirしか操作できなくするという意味です。
sshdの再起動を忘れずにしましょう。
service sshd restart
ログインがうまくいかない場合は以下のログで確認してください。
/var/log/secure
以下は権限の設定ミスにより発生したログですが、なぜログインできないのか原因を吐き出してくれています。
fatal: bad ownership or modes for chroot directory
まとめ
いかがでしたか?
長い手順に見えますが、意外とすぐにできてしまいます。
セキュリティのためにも、一般ユーザには極力触れる範囲を絞るようにしましょう。
定量的リスク管理の実務―流動性リスク管理、FTP、リスク統合、ストレステストの実践的手法
- 作者:ジミー・スコグランド,ウェイ・チェン
- 発売日: 2018/03/06
- メディア: 単行本
- 作者:中嶋 章
- 発売日: 2009/10/14
- メディア: 大型本
- 作者:川上 峻史
- メディア: 単行本
いきなりできます! 最新ホームページ作り&HTML超入門 第3版
- 作者:株式会社デジカル
- 発売日: 2015/01/24
- メディア: 単行本