Contents
1. FTPサーバー導入
1.1 vsftpdをインストール
1 |
# apt install vsftpd |
1 |
# ufw allow ftp |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# vi /etc/vsftpd.conf # 匿名ユーザのログインを許可しない anonymous_enable=NO # ローカル ユーザ アカウントによる ログインを許可する local_enable=YES # ファイルに変更を加える FTP コマンドの使用を許可する write_enable=YES # 新規ファイルに適用するパーミッション値を設定する # 各桁はowner, group, otherを示しており、ビットはrwxを示す local_umask=022 # ユーザのログイン ディレクトリを、そのユーザのルート ディレクトリに変更する chroot_local_user=YES # ユーザはログイン ディレクトリの外側にアクセスできなくなる chroot_list_enable=YES # vsftpd.chroot_listにリストアップされたユーザは上記規制の対象外にする chroot_list_file=/etc/vsftpd.chroot_list # ASCIIによるアップロードを許可する ascii_upload_enable=YES # ASCIIによるダウンロードを許可する ascii_download_enable=YES # 131行目:コメント解除( ディレクトリごと一括での転送有効 ) ls_recurse_enable=YES |
このファイルにDebianのユーザ名(例: debian-user)を追加します。
1 2 3 |
# vi /etc/vsftpd.chroot_list debian-user |
1 |
# systemctl restart vsftpd |
1.2 FTP接続の確認
WindowsのFTPクライアントのFFFTPを使って確認する。
FFFTPを開き、メニューバーから接続を選択します。
ホスト一覧というウィンドウが開きます。新規ホストを選択してください。
ホストの設定というウィンドウが開きます。以下を入力し、OKを押してください
1. ホストの設定名(任意の名前)
2. ホスト名(DebianのIPアドレス)192.168.11.82
3. ユーザ名(Debianのユーザ名)hoge
4. パスワード ********
ホスト一覧ウィンドウに戻りますので。接続を押してください。
暗号化の状態の保存というウィンドウが開きます。はいを選択してください。
左側にWindowsのディレクトリ、右側に Debianのディレクトリが表示されれば、接続成功です。
もし、つながらない場合はPassiveモードを入り切りする
2. WEBサーバーApache2導入
2.1 Apache2インストールと設定
Apache2インストールの前に80番ポートを開ける
1 |
# ufw allow http |
Apache2 をインストール
1 |
# apt -y install apache2 |
Apache2 の基本設定
1 2 3 |
# vi /etc/apache2/conf-enabled/security.conf # 25行目:変更 ServerTokens Prod |
1 2 3 |
# vi /etc/apache2/mods-enabled/dir.conf # 2行目:ディレクトリ名のみでアクセスできるファイル名を確認 DirectoryIndex index.html index.htm index.php |
1 2 3 4 5 |
# vi /etc/apache2/apache2.conf # 70行目:サーバー名追記 ServerName <ドメイン名> # 172行目:変更 AllowOverride ALL |
1 2 3 |
# vi /etc/apache2/sites-available/000-default.conf # 11行目:管理者アドレス変更 ServerAdmin <mail address> |
1 |
# systemctl restart apache2 |
2.2 Apache2; Perlスクリプトを利用する
CGI を有効にして Perl スクリプトが利用できるように設定します。Perl をインストールし有効にします。
1 |
# apt -y install perl |
CGI モジュールを有効にします。
1 2 3 4 |
# a2enmod cgid Enabling module cgid. To activate the new configuration, you need to run: systemctl restart apache2 |
Apacheの再起動
1 |
# systemctl restart apache2 |
CGI モジュールを有効にすると、デフォルトで [/usr/lib/cgi-bin] 配下が CGI 実行許可されます。
[/usr/lib/cgi-bin/index.cgi] スクリプトを作成して配置することで、[http://(Apache2 サーバー)/cgi-bin/index.cgi] へアクセス可能となります。 なお、当設定は [/usr/lib/cgi-bin] 配下のファイルを全て CGI と扱うため、CGI 以外のファイルは表示できません。
ためしに、次のテストスクリプトを作成し動作確認してみます。
テストスクリプトを作成
1 2 3 4 5 |
# cat > /usr/lib/cgi-bin/sample_script <<'EOF' #!/usr/bin/perl print "Content-type: text/html\n\n"; print "CGI TEST\n"; EOF |
スクリプトファイルに権限を与える
1 |
# chmod 705 /usr/lib/cgi-bin/sample_script |
動作確認
1 2 |
# curl http://localhost/cgi-bin/sample_script Hello CGI |
“curl: コマンドが見つかりません”と表示されたらcurlインストール
1 |
# apt install curl |
curlインストール後再度動作確認
2.3 Apache2; PHPスクリプトを利用する
PHP をインストールします。
1 |
# apt -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring |
Apache2 の設定
1 2 3 4 |
# a2enconf php7.3-cgi Enabling conf php7.3-cgi. To activate the new configuration, you need to run: systemctl reload apache2 |
1 |
# systemctl restart apache2 |
PHPの設定ファイルの編集
1 2 3 4 5 |
# vi /etc/php/7.3/apache2/php.ini # 841行目: upload_max_filesize = 2M → upload_max_filesize = 200M # 956行目:コメント解除しタイムゾーン設定 date.timezone = "Asia/Tokyo" |
1 |
# systemctl restart apache2 |
PHPテストページを作成して動作確認
テストページの作成
1 2 3 4 5 6 7 8 9 10 11 |
# vi /var/www/html/index.php <html> <body> <div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;"> <?php print "PHP Test Page"; ?> </div> </body> </html> |
ブラウザでhttp://<IPアドレス>/index.phpにアクセスすると以下のようなページが表示されればOKです。
2.4 バーチャルホストの設定
デフォルトの設定ファイルをコピーし、バーチャルホストの設定をします
1 2 |
# cd /etc/apache2/sites-available/ # cp 000-default.conf vhost-hoge.com.conf |
1 2 3 4 5 6 7 8 9 10 11 12 |
# vi vhost-hoge.com.conf <VirtualHost *:80> ~省略~ ServerName <FQDN> ServerAdmin <mail address> DocumentRoot /var/www/html/<FQDN> ~省略~ ErrorLog ${APACHE_LOG_DIR}/<FQDN>.error.log CustomLog ${APACHE_LOG_DIR}/<FQDN>.access.log combined ~省略 </VirtualHost> |
1 |
# cd /etc/apache2/sites-available/ |
1 |
# a2ensite vhost-hoge.com.conf |
1 |
# a2dissite 000-default.conf |
1 |
# systemctl restart apache2 |
1 2 3 |
# vi /etc/hosts 127.0.0.1 <FQDN> |
1 |
# mkdir /var/www/html/<FQDN> |
1 2 3 4 5 6 7 8 9 |
# vi /var/www/html/<FQDN>/index.html <html> <body> <div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;"> Virtual Host Test Page </div> </body> </html> |