Raspberry Pi 3にWebサーバーを立てる

こんにちは、津路です。
今回は、Raspberry Pi 3 Model B にWebサーバーを立てた手順を紹介します。
既に、SDカードにRaspbian jessieをインストールしてあります。
また、有線LAN設定も済ませてあります。

1.SSH接続有効化
LAN内からログインできるように、有効にする必要があります。
デフォルトのpi ユーザ(このままですとリスクが高いので、後程、変更します。)でログインし、
sudo raspi-configにて、ssh serverを有効にします。
メニュー配下の設定からも変更できます。

2.クライアント側Windows
PuTTYをインストールします。TeraTermとかも使えます。
サーバー側のアドレスを指定して、接続してみます。piユーザでログインします。

3.hostnameでのアクセス
raspi-configを起動して名前を変更します。
avahi-daemonをインストール
Windows側では、Bonjourをインストール。
hostname.localでアクセスできます。

4.ipアドレスを固定
hostnameでのアクセスに必要です。192.168.0.1はルータアドレスです。

私の場合、最初ipaddressとなっていて、有効になりませんでした。ので、ルータ側で手動割り当てにしていました。
納得いかないので後日、希望のip addressをdhcpリースされないようにしておき、dhcpcd.confにはip_addressとして書き込んでおけば、固定できました。

5.セキュリティ
rootユーザと、piユーザを放置すると、外部からコントロールされるので、対策します。
5.1.rootユーザのパスワードを変更します。
raspi-config にて変更します。か、

sudo passwd root

5.2.新規ユーザを作成し、piを管理者から外します。
piをsudoersグループから外すので、メニューからは設定ができなくなりますので、注意。
思い切って削除する方も多いですが、piのファイルがありうるので、残します。
新規ユーザ作成

sudo adduser newuser
sudo gpasswd -a newuser sudo

グループに追加

groups pi
sudo usermod -G pi,adm,...(groups piの結果) newuser

新規ユーザに切り替えます。
piユーザのファイルをコピー

cp -r /home/pi/* /home/newuser

パスワードなしで実行できる権限を追加

sudo visudo
#includedir /etc/sudoers.d

pi ALL=(ALL) NOPASSWD: ALL
newuser ALL=(ALL) NOPASSWD: ALL

最後に、piユーザをsudoersから外します。

sudo gpasswd -d pi sudo
sudo nano /etc/sudoers
piユーザの行をコメントアウト
#pi ALL=(ALL) NOPASSWD: ALL
ユーザ名もadminへ変更
sudo usermod -l admin pi
sudo usermod -d /home/admin -m admin
sudo groupmod -n admin pi
sudo passwd admin

次回は、サーバー用ソフトのインストールとセットアップです。