Raspberry PiでWebサーバーの諸設定(その2)
まだ設定が終わってなかったので、前回の続きを書いておきます。環境はRPi3にRaspbian 8.0/jessie(kernel 4.4.50-v7)、apache/2.4.10です。
FTPサーバーの設定
自宅サーバーを地元のハムクラブのWebページの引越し先にするという話になり、以前のWebページの管理者がFTPでファイルを転送する必要がでてきました。
$sudo apt-get install vsftpd
/etc/vsftpd.confを編集します。
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 ascii_upload_enable=YES ascii_download_enable=YES chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list
次にユーザー設定ファイル/etc/vsftpd.chroot_listにFTPユーザーのリストを記載。
さらに、ルーターの静的マスカレード設定でftpのポートtcp20と21番を開けて、ファイアウォールの設定を許可し、デーモンをリスタート。
$sudo ufw allow 20 $sudo ufw allow 21 $sudo service vsftpd restart
BASIC認証を設定
Webのとあるページを仲間うちだけアクセスできるよう、パスワードをかけておく基本的な認証方式。やり方はいろいろあるようで、その一つのうまく行った例を上げておきます。
まずはパスワードファイル.htpasswdを作る。IDはfoobarとする。
$sudo htpasswd -c /etc/apache2/.htpasswd foobar
保存先を/etc/apache2になっているが場所は任意。パスワード聞かれるので答えるとファイルが生成される。
/etc/apache2/apache2.confの末尾に、
<Directory "/home/xxxx/public_html/"> AuthType Basic AuthName "Please enter your ID and password" AuthUserFile /etc/apache2/.htpasswd Require valid-user #AuthGroupFile /dev/null </Directory>
としapache2をrestart。/home/xxxx/public_html/にアクセスしようとするIDとパスワードを求められるようになります。
let's encryptによるSSL化
let's encryptで無料でSSL化できるということなのでやっておきした。https://でないWebは怖がってアクセスされないようです。
まずはルーターの443番ポートを静的マスカレード設定で開けておき、
$sudo ufw allow 443
ファイアウォールでも443番ポートを開けておく。GitでCertbotをCloneする。
$sudo apt-get install git $cd /usr/share $sudo git clone https://github.com/certbot/certbot $cd certbot $./certbot-auto
この時点でいろいろ聞かるけど、Ctrl+Dで一旦終了。証明書をもらう手続きをコマンドでやってしまう。独自ドメインだとまず問題なくもらえるらしいです。
$./certbot-auto certonly --standalone -d jf1dir.info -m jf1dir@jarl.com --agree-tos
/etc/apache2/sites-available/default-ssl.confを編集。
SSLEngine on SSLCertificateFile /etc/letsencrypt/live/jf1dir.info/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/jf1dir.info/privkey.pem
SSLの設定を有効にしておく。
$sudo a2ensite default-ssl $sudo a2enmod ssl $sudo service apache2 restart
これでjf1dir.infoがSSL化されます。
なお90日で更新せよとメールが来ますので、certbotをインストールしたディレクトリに移動して、
$sudo service apache2 stop $sudo ./certbot-auto renew $sudo service apache2 start
これで更新できます。
NTPサーバとRaspberry Piの時刻同期
NTPデーモンの設定ファイルである/etc/ntp.confファイルを編集。
$ sudo nano /etc/ntp.conf
server 0〜4から始まる行をコメントアウトまたは削除し、"pool ntp.nict.jp iburst"を加える。
$ sudo service ntp restart
NTPデーモンを再起動します。"ntpq -p"で同期状態を確認できます。