AWS

EC2とS3を使用してsftpサーバを構築する

More than 1 year has passed since last update.

EC2とS3を使用してsftpサーバを構築したのでメモ。

ソフトウェアアップデート

$ sudo yum update -y

サーバセキュリティ設定

$ vi /etc/ssh/sshd_config
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
〜編集終了

$ sudo service sshd restart

タイムゾーンの変更

$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ sudo vi /etc/sysconfig/clock # ZONE="Asia/Tokyo"
$ sudo reboot
$ date # 時間確認

ユーザ編集

$ useradd auser
$ passwd auser
$ sudo su - auser
$ mkdir .ssh
$ cd .ssh
$ ssh-keygen -t rsa
$ mv id_rsa.pub authorized_keys
$ chmod 600 authorized_keys
$ cd ../
$ chmod 700 .ssh
$ cat .ssh/id_rsa # ローカルに保存

S3マウント

** S3マウントするために必要なパッケージをインストールする

$ sudo yum -y install automake 
$ sudo yum -y install gcc-c++ 
$ sudo yum -y install fuse 
$ sudo yum -y install fuse-devel 
$ sudo yum -y install libcurl-devel 
$ sudo yum -y install libxml2-devel 
$ sudo yum -y install openssl-devel

** s3fsのソースを取得する
$ wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/s3fs/s3fs-1.74.tar.gz
$ tar -xzf s3fs-1.74.tar.gz

** s3fsのインストール
$ cd s3fs-fuse-1.77
$ ./configure --prefix=/usr/local
$ make
$ sudo make install

** マウントポイント作成
$ sudo su -
$ echo 'XXXXXXXXXX:XXXXXXXXXX' > /etc/passwd-s3fs
$ mkdir -p /mnt/s3/
$ chmod 777 /mnt/s3/
$ s3fs s3 /mnt/s3/ -o rw,allow_other
$ df -h /mnt/s3/ # サイズが大きいはず
$ chmod -R 755 /mnt/s3/

ファイル参照設定

** auser, buserユーザの所定位置にシンボリックリンクを張る

$ ln -s /mnt/s3/auser/ s3
$ ln -s /mnt/s3/buser/ s3

sftp接続確認 (auserユーザで確認)

ユーザの秘密鍵を事前に配布、バケットにtest.txtを作成しておく。

$ chmod 600 id_rsa
$ sftp -oIdentityFile=./id_rsa auser@XXX.XXX.XXX.XXX
$ # パスフレーズ入力
sftp> get s3/test.txt
sftp> exit
$ ls -la # test.txtが存在すればOK