LoginSignup
7
4

More than 5 years have passed since last update.

AWS FTP設定 (ユーザーの追加とセキュリティグループでIP制限をかける)

Last updated at Posted at 2017-12-20

内容

やること

・FTPユーザー追加
ftp接続のみのためのユーザーの想定のため、
ユーザーのホームディレクトリは作らず、ログインディレクトリを設定し、
また、それ以上の階層には移動できないように制限をかける。

・EC2のSecurity GroupsでIP制限をかけれるように設定

環境

FTPは既にインストール済みのec-2
※ec2のAMIは CentOS 7 (x86_64) - with Updates HVM を採択

FTPユーザー追加

FTPユーザー追加

awsにsshログイン後、まずはユーザー追加するコマンドを流します。

useradd -d /var/www/html/app/hogeroot -M -p b2ZTi94W use-hoge

-d /var/www/html/app/hogeroot
作業ディレクトリの指定

-s /sbin/nologin
suできない。スーパーユーザー(root)になれないアカウント

-M

ホームディレクトリを作らない

-p b2ZTi94W

パスワード
※このオプションは、そのまま平文使えないっぽく、あとでパスワード設定し直ししてます。

ユーザー追加の確認

cat /etc/passwd

一番下に表示されています。

use-hoge:x:1003:1003::/var/www/html/app/hogeroot:/bin/bash

これでも確認出来ます。

id -a use-hoge

uid=1003(use-hoge) gid=1003(use-hoge) groups=1003(use-hoge)

ユーザー切り替え(失敗)

[centos@ip-172-0-0-0 ~]$ su - use-hoge
パスワード:
su: 認証失敗
[centos@ip-172-0-0-0 ~]$

パスワードの設定がだめだったようです。

パスワード設定し直し

sudo passwd use-hoge

[centos@ip-172-0-0-0 ~]$ sudo passwd use-hoge
ユーザー use-hoge のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
[centos@ip-172-0-0-0 ~]$

これでログインできる

[centos@ip-172-0-0-0 ~]$ su - use-hoge
パスワード:
最後の失敗ログイン: 2017/12/19 (火) 01:24:00 UTC日時 pts/3
最後の正しいログインの後に 3 回の失敗ログインの試行があります
-bash-4.2$

現在のFTPの設定の確認

[centos@ip-172-0-0-0 ~]$ sudo cat /etc/vsftpd/vsftpd.conf
# Configuration file created by Chef
# Manual changes to this file will be overwritten

anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[centos@ip-172-22-0-205 ~]$

こんなふうになっています。

ホームディレクトリの設定をする

mkdir /etc/vsftpd/user_conf
vi /etc/vsftpd/user_conf/use-hoge

[centos@ip-172-0-0-0 ~]$ sudo cat /etc/vsftpd/user_conf/use-hoge
local_root=/var/www/html/app/hogeroot
[centos@ip-172-22-0-205 ~]$

confファイルはデフォではsudoユーザでも書き込みできないので、権限を与える

chmod 700 /etc/vsftpd/vsftpd.conf

まずこれを追加

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

まず

chroot_local_user=NO
chroot_list_enable=YES

ローカルユーザーは全員chroot無し、
全ユーザーがホームディレィクトリより上層へアクセス可能になります。

chroot_list_file=/etc/vsftpd/chroot_list

ここのリストに書かれるユーザーは、
自身のホームディレクトリよりも、上層ディレクトリにはアクセスできなくなります。

というわけで、
chroot_listを作成しましょう。

vi /etc/vsftpd/chroot_list

[centos@ip-172-0-0-0 ~]$ sudo cat /etc/vsftpd/chroot_list
use-hoge
[centos@ip-172-0-0-0 ~]$

これでOKです。

確認はローカルから下記で出来ます。

ftp XXX.XXX.XXX.XXX(IPアドレス)

→追加したユーザー名とパスワードを入れる

ftp>
このようになったら、lsで確認します。
ログインディレクトリや、cd ../ で上層階にいけるか、
ftp>put ファイル名(ローカルに置いてある)
で、実際にファイルが送られるかも確認出来ます。

と思いきや、こんなエラーが出現してしまいました

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

local-Mac:hoge hoge$ ftp XXX.XXX.XXX.XXX
Connected to XXX.XXX.XXX.XXX.
220 (vsFTPd 3.0.2)
Name (XXX.XXX.XXX.XXX:hoge): use-hoge
331 Please specify the password.
Password:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
ftp: Login failed

confファイルに下記を追記すると直ります。

allow_writeable_chroot=YES

Security GroupsでIP制限をかけれるように設定

Security Groupsの設定を有効にするために

セキュリティグループの設定の前に

/etc/vsftpd/vsftpd.confに下記を追加することで、

tcp_wrappers=NO

EC2のSecurity Groupsの設定を有効に出来ます。

Security Groupsの設定

カスタム TCP ルール
プロトコルをTCP、
ポート番号は21にして、
IPを付与して完了です

再起動

systemctl status vsftpd
systemctl restart vsftpd

最終的なvsftpd.confファイルの中身

[centos@ip-172-0-0-0 ~]$ sudo cat /etc/vsftpd/vsftpd.conf
# Configuration file created by Chef
# Manual changes to this file will be overwritten

anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=NO

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
user_config_dir=/etc/vsftpd/user_conf
[centos@ip-172-0-0-0 ~]$

おしまい

参考

https://qiita.com/Yuki_BB3/items/deeb84c360c6f3c37f51 (ec2セキュリティグループ関連)
https://qiita.com/sakuraya/items/b7e513a6add1dfc198b5 (ざっくりの流れ)
http://promamo.com/?p=3067
https://qiita.com/dogyear/items/289b314db9af42e15cfa
http://blog.sugulab.com/?p=1635
https://ex1.m-yabe.com/archives/2650
https://qiita.com/tukiyo3/items/5360e74eff80c894dfae

7
4
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
7
4