Amazon EC2、DebianでFTP(vsftpd)設定

2009/04/06

エンジニアではない、ただのWebデザイナーの私なのですが、
[Enter] + [Y] を連打してたら、Amazon EC2、Debianを設定 できちゃったので、
次はいよいよ、FTPの設定をしてみます。

まずは、vsftpのインストールと、FTPの設定から。

  1. EC2へSSHログイン
    # ssh -i EC2key.pem root@ec2-XXXX.amazonaws.com
  2. vsftpdをインストール
    # apt-get install vsftpd
  3. [Y/n]? と聞かれるので
    # Y
  4. FTPコマンドをインストール
    # apt-get install ftp
  5. [Y/n]? と聞かれるので
    # Y
  6. FTPランレベルを確認
    chkconfig --list vsftpd
    コマンドが使えないって言われる。(´・ω・) 
  7. chkconfigコマンドをインストール
    # aptitude install chkconfig
  8. [Y/n]? と聞かれるので
    # Y
  9. FTPランレベル確認に再挑戦
    chkconfig --list vsftpd
    vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off となればOK
  10. OS再起動時に自動的にvsftpdを実行させる
    # chkconfig vsftpd on
  11. 21 番ポートが LISTEN されているか確認
    # netstat -lnptg
    tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1965/vsftpd となればOK
  12. 使われていないポートを確認する
    # cat /proc/sys/net/ipv4/ip_local_port_range
    32768 61000が開いてると言われるのでメモ



次は、設定ファイル「vsftpd.conf」の変更。場所は、/etc/の中に格納されています。

  1. etcディレクトリに移動する
    # cd etc
  2. 念のため、vsftpdの設定ファイ「vsftpd.conf」のバックアップ作成
    # cp -p vsftpd.conf vsftpd.conf.backup
  3. nanoエディタで「vsftpd.conf」を編集
    # nano /etc/vsftpd.conf
  4. 14行: listen=YES
    23行: anonymous_enable=NO
    26行: local_enable=YES
    29行: write_enable=YES
    33行: local_umask=022
    52行: connect_from_port_20=NO
    62行: xferlog_file=/var/log/vsftpd.log
    65行: xferlog_std_format=NO
    68行: idle_session_timeout=600
    71行: data_connection_timeout=120
    90行: ascii_upload_enable=YES
    91行: ascii_download_enable=YES
    105行: chroot_local_user=YES
    110行: chroot_list_enable=YES
    112行: chroot_list_file=/etc/vsftpd.chroot_list
    133行: #pam_service_name=vsftpd
    137行: #rsa_cert_file=/etc/ssl/certs/vsftpd.pem
    末尾に追加: use_localtime=YES
    末尾に追加: pasv_enable=YES
    末尾に追加: pasv_addr_resolve=YES
    末尾に追加: pasv_min_port=60000
    末尾に追加: pasv_max_port=61000
    末尾に追加: force_dot_files=YES
    末尾に追加: pasv_address=00.00.00.00(EC2の固定IP)


pasv_min_port=60000
pasv_max_port=61000
cat /proc/sys/net/ipv4/ip_local_port_range した時に
開いてるって言われたポートを指定

force_dot_file — 「.」から始まるファイルを表示する
pasv_addres — PASV接続用に Amazon EC2の固定IPを指定しておく


他にも設定しなくちゃいけないファイルがあるみたい…。
まずは、FTPアクセス禁止ユーザを「ftpusers」に指定する。
とりいそぎ、rootでFTPアクセスできるようにしておきたいので


  1. nanoエディタで「ftpusers」を編集
    # nano /etc/ftpusers
    ↓↓2行目の rootの前に「#」をつける
  2. # /etc/ftpusers: list of users disallowed FTP access. See ftpusers(5).
    # root
    daemon
    bin
    sys
    sync
    games
    man
    lp
    mail
    news
    uucp
    nobody
  3. 内容を保存して、nanoエディタを終了する
    [ctrl]+x (controlキーと「x」を同時に押す)
    Save modified buffer ?と聞かれたら
    y と打って [Enter]

次に、上位ディレクトリに移動させたくないユーザを「vsftpd.chroot_list」に指定する

  1. nanoエディタで「vsftpd.chroot_list」を編集
    # nano /etc/vsftpd.chroot_list
  2. 空のファイルが開くので何も入力せずに内容を保存して、nanoエディタを終了する
    [ctrl]+x (controlキーと「x」を同時に押す)
    Save modified buffer ?と聞かれたら
    y と打って [Enter]

最後に、FTPアクセスを許可するユーザを「vsftpd.chroot_list」に指定する

  1. nanoエディタで「vsftpd.user_list」を編集
    # nano /etc/vsftpd.user_list
  2. rootユーザのFTPアクセスを許可したいので
    root
  3. 内容を保存して、nanoエディタを終了する
    [ctrl]+x (controlキーと「x」を同時に押す)
    Save modified buffer ?と聞かれたら
    y と打って [Enter]

rootユーザで FTP接続できるか確認する

  1. vsftpd.confを再起動!
    # /etc/init.d/vsftpd restart
  2. 恐る恐るFTP接続...
    # ftp localhost
  3. Name (localhost:root): と言われたので
    # root
  4. 331 Please specify the password. と言われたので
    # rootのパスワード 230 Login successful. と出ればFTPアクセス成功!
  5. 現在地を調べる
    ftp > pwd
    var/www と出ればOK。
  6. 何があるか調べる
    ftp > ls
    index.html が見えればOK。
  7. ftpコマンド終了
    ftp > bye


ヤベー、とうとうEC2でFTPアクセスまで可能にしてしまった!! (◎_◎;)
エンジニアではない、ただのWebデザイナーの私なのに?!


関連エントリー

  1. こんなにスゴイぞ、Amazon EC2
  2. Amazon Web Service、アカウントを取得してみた
  3. Amazon EC2/S3を申し込んでみた
  4. Amazon EC2、X.509証明書を取得してみた
  5. AWS Management Consoleで Key Pairsを取得してみた
  6. Mac OSXでAmazon EC2 Command-Line Toolsを使ってみた
  7. Amazon EC2、インスタンスを立ち上げてみた
  8. Amazon EC2、SSHでログインしてApacheを起動してみた
  9. Amazon EC2、Debianを設定してみた
  10. Amazon EC2、DebianでFTP(vsftpd)設定
  11. Amazon EC2のイメージファイルをS3に保存する
  12. Amazon EC2で固定IPを取得する
  13. Amazon EC2を独自ドメインで使う
  14. Amazon EC2をバーチャルドメインで運用する
  15. Amazon EC2、EBS(Elastic Block Store)を使ってみた
  16. Amazon EBSで Apache2とmysqlを動かしてみた
  17. Amazon CloudFront でちょっぱやを実装してみた
  18. Amazon EC2、AMIを共有する
  19. Amazon EC2上でインスタンスをオートスケールできる「Wakame」
  20. [ 非常事態宣言!!] Amazon EC2、ホームページが消えました
  21. Amazon サポートセンターに連絡を取ってみた
  22. Amazon EC2、SSH(22番ポート)の設定方法はこうすべき!

Post to Twitter

コメントを投稿する