EC2にApacheとBasic認証、ftpをセットアップする

AWS

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

タイトルの通りですが、今後も使うかもしれないので、備忘録として残しておきたいと思います。

まずはAWS Management Consoleでt1.microのインスタンスを作成します。(あえて手順は書きません)

次にEC2インスタンスがrunningになったのを確認してSSHでログインします。(security groupの設定で事前にSSHを許可しておきます。インスタンス作成時に作成したSSH鍵も指定します。)

ec2-userでログイン後はタイムゾーンを日本時間に設定しておきます。

sudo su -
cp -i /usr/share/zoneinfo/Japan /etc/localtime

※以後の操作はすべてrootユーザで行っています。

次にApacheのインストールをします。

yum -y install httpd

次にユーザ及び公開するディレクトリを作成し、Apacheを起動します。(自動起動の設定も同時に行っておきます)

useradd test-user ←ユーザを作成します。
passwd test-user ←作成したユーザのパスワードを設定します。

cd /var/www/html/
mkdir public
chown -R test-user:test-user public
chmod 755 public
service httpd start
chkconfig httpd on

これで、apacheまでのインストールは完了です。次にAmazon EC2上でvsftpdをインストールします。

yum install vsftpd

/etc/vsftpd/vsftpd.confをviで開いて編集します。

anonymous_enable=NO
ascii_upload_enable=YES(先頭の#を削除)
ascii_download_enable=YES(先頭の#を削除)

以下の行を追加します。
use_localtime=YES
force_dot_files=YES
pasv_min_port=60000
pasv_max_port=61000
pasv_address=xxx.xxx.xxx.xxx(Elastic IPアドレスを指定します。)

vsftpdの起動をします。(自動起動の設定も同時に行っておきます)

service vsftpd start
chkconfig vsftpd on

とりあえずFTPクライアントをインストールしました。(FFFTPを使用して無事接続確認が完了)

Apacheの公開用ドキュメントディレクトリにBasic認証をつけるための手順を以下にまとめておきます。まずはユーザ認証によるアクセス制限をかけるディレクトリを/var/www/html/publicとします。(適宜読み替えてください。)ディレクトリが決まったら、htpasswdコマンドでtest-userというユーザーを作成し、パスワードを設定する。パスワードの設定に必要なパスワードファイルは、ここでは/etc/httpdディレクトリに.htpasswdとして作成します。(新規に.htpasswdファイルを作成する際には-cオプションをつけます

htpasswd -c /etc/httpd/.htpasswd test-user
New password:
Re-type new password:
Adding password for user test-user

次にApacheの設定ファイルにBasic認証するための設定を追加します。

vi /etc/httpd/conf/httpd.conf

以下の設定をviで編集します。

<Directory "/var/www/html/public">
    AuthType Basic
    AuthName "Secret Zone"
    AuthUserFile /etc/httpd/.htpasswd
    Require user test-user
</Directory>

/etc/httpd/conf/httpd.confの編集後はApacheの再起動が必要なので、再起動します。

service httpd restart

http://Elastic IPアドレス/publicにアクセスして、認証画面がでるかを確認します。

参考までにInboundでsecurity groupに設定している項目

  • SSHポート(22番)の開放設定
  • HTTPポート(80番)の開放設定
  • FTPポート(21番)の開放設定
  • パッシブFTPのデータ転送用のポート(60000-61000)

これで一通りやりたかったことは完了