LoginSignup
1
3

More than 1 year has passed since last update.

SFTP専用ユーザーを作成し、特定directoryのみ更新できるよう制限する

Posted at

これは何

SFTP専用ユーザーを作成し、特定directoryのみ更新できるよう制限してみたので、メモをここに残します。
FTPソフトはCyberduckを使ってます。

要件

sftp-userを作成する
/home/sftp-user配下のファイルしか操作できない様にする(chrootする)
ただし、/var/www/html/hogeだけは更新できる様にしたい

やってみた

ユーザー作成

useradd sftp-user

httpd install

yum -y install httpd

sftp-userがアップロードしたファイルをApacheが動かせるようにする

gpasswd -a apache sftp-user

SSH directory 作成

cd /home/sftp-user
mkdir .ssh
chmod 700 .ssh

鍵作成

sudo su - sftp-user
cd .ssh
ssh-keygen 
key name : sftp-user

rootに戻る

exit

公開鍵の名称とパーミッションの変更

mv sftp-user.pub authorized_keys
chmod 600 authorized_keys

コピペで保存

cat sftp-user 
(pemファイル)

sftp-user でログイン可能か確認する

(bastionにて)
vi sftp-user.pem
コピペ内容貼り付け
ssh -i sftp-user.pem  sftp-user @Private IP

sftp-userを、ファイル転送専用ユーザーにする

vi /etc/ssh/sshd_config

# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
  ↓

# override default of no subsystems
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp

ファイルの末尾に、以下を追記。

Match User sftp-user
        ChrootDirectory /home/sftp-user
        ForceCommand internal-sftp

特定のディレクトリを別のディレクトリにマウントする
/var/www/htmlディレクトリの内容は、2つの 場所、 /var/www/html と /home/sftp-user/hoge/で利用できるようになる。

mount -B /var/www/html /home/sftp-user/hoge/

/home/sftp-userディレクトリの所有者とパーミッションを変更

chown root:root /home/sftp-user
chmod 755 /home/sftp-user

ユーザーディレクトリ内にディレクトリを作成し、ユーザーに所有させる

mkdir /home/sftp-user/hoge
chown sftp-user:sftp-user /home/sftp-user/hoge
chmod 775 /home/sftp-user/hoge

sshdを再起動し、設定を反映

sshd -t
エラーがなければ再起動
service sshd restart

sftpコマンドで転送する。

(hoge directoryにcdしなければ、putは失敗した。)

sftp -i sftp-user.pem sftp-user@踏み台の先のEC2 Private IP
Connected to XXX
sftp> cd /hoge/
sftp> put XXX.jpeg 
Uploading XXX.jpeg to /hoge/XXX.jpeg
XXX.jpeg                                                                                                                                                        100%   11KB  20.3MB/s   00:00    
sftp> exit

/var/www/html配下に移動できているか確認

ls -la /var/www/html/XXX.jpeg 
-rwx------. 1 sftp-user sftp-user 11136 Sep 13 09:56 /var/www/html/XXX.jpeg

一応、ポートフォワーディングを行い、ファイル転送できるか確認

ポートフォワーディング
ssh -f -N -L 10220(任意):踏み台の先のEC2 Private IP:22 -i 秘密鍵 踏み台OSユーザー@踏み台Public IP

FTPソフトで接続し、ファイル転送。

スクリーンショット 2021-09-14 16.30.21.png

総括

なかなかセキュアな環境ができたのではないでしょうか。(konami)

参考

https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/5/html/global_file_system_2/s1-manage-pathnames
https://lab.taf-jp.com/sftp%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%81%A6%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E8%BB%A2%E9%80%81%E7%94%A8%E3%81%AB%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B/
https://cloudpack.media/14365

参考にさせていただきました。ありがとうございます。

1
3
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
1
3