OSのダウンロード&インストール
Ubuntu Serverのダウンロード
Raspberry Pi用のUbuntu ServerイメージをUbuntuのサイトからダウンロードします。
今回は、Raspberry Pi3用のUbuntu 18.04.4 LTS 64bitをダウンロードしました。
Ubuntu ServerをSDカードに書き込む
Rufusを使用して、SDカードにOSイメージを書き込みます。
起動確認
OSを書き込んだSDカードをRaspberry Piに差し込んで起動するか確認します。Raspberry Piにディスプレイとキーボードを接続し、しばらく待ちます。Ubuntu loginと出ると、成功です。
初期設定
パスワードの変更
ユーザー名とパスワードにubuntu
と入力すると、パスワードをすぐに変更してくださいと表示されるので、現在のパスワード(ubuntu)を入力した後、変更したいパスワードを入力してください。
ユーザーの追加&削除 ※お好みに応じて
ユーザーの追加
sudo adduser ユーザー名
Enter new UNIX password
と表示されるので、設定したいパスワードを入力します。
その後、Full Name
などが出てきますが、入力することがなければ、空白のままエンターで構いません。最後に、情報は正しいですかと表示されるので、yを入力します。
管理者権限の追加
sudoコマンドを使用するために、sudoグループに追加します。
sudo gpasswd -a ユーザー名 sudo
ユーザーの変更
su ユーザー名
デフォルトユーザーの削除
ユーザーを削除するために、再起動させます。
sudo reboot
ユーザーの削除
sudo userdel -r ubuntu
SSHの設定
公開鍵の追加
authorized_keys
に公開鍵を追加します。
※エラーが出た場合は、パーミッションを700
にします。
sudo vim ./.ssh/authorized_keys
秘密鍵を使ってログインできることを確認します。
ssh -i 秘密鍵 -l ユーザー名 IPアドレス
root&パスワードログインの無効化
/etc/ssh/sshd_config
を編集する前に、バックアップを作成します。
cd /etc/ssh
sudo cp sshd_config sshd_config-backup
エディタで編集します。
sudo vim sshd_config
32 PermitRootLogin prohibit-password
37 PubkeyAuthentication yes
56 PasswordAuthentication no
PermitRootLogin
のところは、prohibit-password
かno
にします。prohibit-passwordは、鍵認証の場合は、rootでログインできます。noにすると、鍵認証でもSSHでrootにログインできなくなります。
SSHDの再起動
sudo systemctl restart sshd
秘密鍵を使わずにSSH接続をしようとすると、Permission denied
と表示されることを確認します。
IPアドレスの固定
nmtuiとcockpitでは、有線接続のIPアドレス固定が出来なかったので、50-cloud-init.yam
を使用してIPアドレスを固定します。
6 network:
7 ethernets:
8 eth0:
9 addresses: [固定したいIPアドレス]
10 gateway4: デフォルトゲートウェイ(ルーターのIPアドレス)
11 dhcp4: false
12 optional: true
13 nameservers:
14 addresses: [DNSサーバーのアドレス]
15 version: 2
設定を有効化させます。
sudo netplan apply
SSHから締め出され、上記で指定した固定IPでSSHできれば成功です。
ファイアーウォールの設定
SSH、HTTP、HTTPSを使用するために、22、80、443番ポートを開放します。
NodeJSやFlaskを使用する場合は、3000、5000ポートなどを開放させます。
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
上記で許可したポート以外全て閉じるようにします。
sudo ufw default deny
ファイアウォールを有効化させます。
sudo ufw enable
SSHが中断する可能性がありますが、続けますかと表示されるので、y
を入力します。
最後に、指定したポートが開放されているか確認します。
sudo ufw status
Webサーバー(Nginx)のインストール
sudo apt-get install -y nginx