Contents
1. FTPサーバー導入
1.1 vsftpdをインストール
インストール # apt install vsftpd FTP Port21許可 # ufw allow ftp |
vsftpd設定ファイル編集
# 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 |
次に、vsftpd.chroot_listをetcの下に新規で作成します。
このファイルにDebianのユーザ名(例: debian-user)を追加します。
# vi /etc/vsftpd.chroot_list debian-user |
最後に、vsftpdを有効にして再起動
# 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番ポートを開ける
# ufw allow http |
Apache2 をインストール
# apt -y install apache2 |
Apache2 の基本設定
# vi /etc/apache2/conf-enabled/security.conf # 25行目:変更 ServerTokens Prod # vi /etc/apache2/mods-enabled/dir.conf # 2行目:ディレクトリ名のみでアクセスできるファイル名を確認 DirectoryIndex index.html index.htm index.php # vi /etc/apache2/apache2.conf # 70行目:サーバー名追記 ServerName <ドメイン名> # 172行目:変更 AllowOverride ALL # vi /etc/apache2/sites-available/000-default.conf # 11行目:管理者アドレス変更 ServerAdmin hoge@hoge.com # systemctl restart apache2 |
2.2 Apache2; Perlスクリプトを利用する
CGI を有効にして Perl スクリプトが利用できるように設定します。Perl をインストールし有効にします。
# apt -y install perl CGI モジュールを有効にします。 |
CGI モジュールを有効にすると、デフォルトで [/usr/lib/cgi-bin] 配下が CGI 実行許可されます。
[/usr/lib/cgi-bin/index.cgi] スクリプトを作成して配置することで、[http://(Apache2 サーバー)/cgi-bin/index.cgi] へアクセス可能となります。 なお、当設定は [/usr/lib/cgi-bin] 配下のファイルを全て CGI と扱うため、CGI 以外のファイルは表示できません。ためしに、次のテストスクリプトを作成し動作確認してみます。
テストスクリプトを作成 # cat > /usr/lib/cgi-bin/sample_script <<‘EOF’ #!/usr/bin/perl print “Content-type: text/html\n\n”; print “CGI TEST\n”; EOF スクリプトファイルに権限を与える # chmod 705 /usr/lib/cgi-bin/sample_script 動作確認 # curl http://localhost/cgi-bin/sample_script Hello CGI まれに、“curl: コマンドが見つかりません”と表示されたら # apt install curlでcurlインストール後再度確認する |
2.3 Apache2; PHPスクリプトを利用する
PHP をインストールします。
# apt -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring |
Apache2 の設定
# a2enconf php7.3-cgi Enabling conf php7.3-cgi. To activate the new configuration, you need to run: systemctl reload apache2 # systemctl restart apache2 |
PHPの設定ファイルの編集
# vi /etc/php/7.3/apache2/php.ini # 841行目: upload_max_filesize = 2M → upload_max_filesize = 200M # 956行目:コメント解除しタイムゾーン設定 date.timezone = “Asia/Tokyo”# systemctl restart apache2 |
PHPテストページを作成して動作確認
テストページの作成
# 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> |
以下のようなページが表示されればOKです。
2.4 バーチャルホストの設定
デフォルトの設定ファイルをコピーし、バーチャルホストの設定をします
# cd /etc/apache2/sites-available/ # cp 000-default.conf vhost-hoge.com.conf |
設定ファイルを編集
# vi vhost-hoge.com.conf <VirtualHost *:80> ~省略~ ServerName hoge.com ServerAdmin hoge@hoge.com DocumentRoot /var/www/html/hoge.com ~省略~ ErrorLog ${APACHE_LOG_DIR}/hoge.com.error.log CustomLog ${APACHE_LOG_DIR}/hoge.com.access.log combined ~省略 </VirtualHost> |
設定ファイルにシンボリックリンクを貼り、デフォルトの設定ファイルを無効化する
# cd /etc/apache2/sites-available/ # a2ensite vhost-hoge.com.conf # a2dissite 000-default.conf デフォルト無効化 # systemctl restart apache2 |
hostsファイルの編集
# vi /etc/hosts 127.0.0.1 hoge.com |
ディレクトリー作成
# mkdir /var/www/html/hoge.com |
テストページを作成し、動作確認
# vi /var/www/html/hoge.com/index.html <html> <body> <div style=”width: 100%; font-size: 40px; font-weight: bold; text-align: center;”> Virtual Host Test Page </div> </body> </html> |