Raspberry Pi Raspbian Stretch のインストール

Raspberry Pi
Raspbian Stretch セットアップ 方法
 
Debian Stretch キャラクターDebian のコードネームは、「Toy Story」のキャラクターの名前が引き継がれており、Debian 9 のコードネームは「 Stretch 」になった。Debian 10 は「 Buster 」になるそうだ。Raspberry Pi に『 2017-08-16-raspbian-stretch version 』で、新規インストールを行った。

以下に、Raspbian Stretch  (Debian 9 stretch) のインストール方法について記載。
 
スポンサー リンク
 
 
 目 次
1. Raspbian Stretch のセットアップ
 1-1. Systemタブの設定
 1-2. Interfacesの設定
 1-3. オーバークロックの設定
 1-4. Localisationの設定
2. Rspberry Pi の最適化
 2-1. ipアドレスの固定化
 2-2. Chkconfig のインストールと不要デーモンの無効化
 2-3. 不要パッケージの削除
 2-4. swap の無効化
 2-5. tmpフォルダ の RAMディスク化
 2-6. cron により一日に一回システムをリブート
 2-7. ログの最小限化
3. セキュリティ設定
 3-1. root パスワードの設定とユーザの追加
 3-2. sshのポート変更 と root でのログインを無効化
 3-3. SSH接続のアクセス制限
 3-4. ファイヤーウォールの導入
 3-5. SSH接続の公開鍵化
 
 
 
 
1.Raspbian Stretch のセットアップ 
 
SDカードのフォーマット要領 や Raspberry Pi 起動ディスクの作成要領 については、Raspberry Pi SDカードに関するノウハウ一覧 を参照されたい。
 
 
初回起動で、いきなり立ち上がる X Windows のGUI 画面は、Jessie と全く同じ。
 
アプリケーションメニューから → Raspberry Pi Configuraition を起動。
 
1-1. Systemタブの設定
 
Systemタブの設定画面、Jessie からの変化点2つ。
1. Expand Filesystem が無くなった。
2. Resolutin が追加された。

Raspberry Pi の初期設定

 
①.ディフォルトユーザー ” pi ” のパスワードは、セキュリティ対策として必ず変更する。
②.ホスト名を設定。
③.起動時画面を『To CLI』に変更する。( CLI画面が使い慣れているから )
④.自動ログインのチェックを外す。
これで次回からはいきなりGUIは立ち上がらず、CLIの地味な画面でユーザ名とパスワードを入力してログインすることになる。
⑤.ディスプレイの解像度を設定する。

ディスプレイの解像度は、プルダウンで選択できる。
ディスプレイの設定

 
上記の設定は、下記の設定と同じで、この設定が簡単に行えるようになった。
sudo nano /boot/config.txt の編集
hdmi_ignore_edid=0xa5000080
Disable_overscan=1
hdmi_group=2
hdmi_mode=35
 
 
1-2. Interfacesの設定
 
SSH: SSH によるログインを【 Enabled 】とする。
stretch インターフェース設定
 
 
1-3. オーバークロックの設定
 
ディフォルトのままとする。
stretch_オーバークロック設定
 
 
1-4. Localisationの設定
 
それぞれの項目を『日本』仕様にする。
stretch_Localisationの設定
 
①.Set Locale:CLI モードを使用するので、ここでは日本語化しない。(ここで日本語化すると、今度は CLI モードで文字化けが起こる。)
stretch_ロケール設定
 
Raspbian Jessie にはデフォルトで日本語フォントが入っていたが、Raspbian Stretch では日本語フォントが入っていない。Stretch で日本語化する場合は、日本語フォントをインストールする必要がある。
sudo apt-get install fonts-ipafont
sudo apt-get install ibus-mozc
 
②.Set Timezone: 時間帯を設定する。
Stretch Set Timezone: 時間帯を設定する
 
③.Set Keyboard Layout: キーボード設定が反応しないので、アプリケーションメニューの【Keyboard and Mouse】から設定する。
Stretch Set Keyboard Layout: キーボードを設定する
 
【Keyboard and Mouse】設定の【Keyboard Layout】をクリックする。
stretch_キーボード設定
 
Country : Japan と Variant : Japanese(OADG 109A) を選択する。
Stretch Set Keyboard Layout: キーボードを設定する
 

④.Set WiFi country:WiFi country コードの設定。
stretch_Set WiFi country設定

これで、Raspbian Stretch のセットアップは完了。
ここで一旦、reboot。
 
 
 
2. Rspberry Pi の最適化
 
ここからの作業は、ifconfig で IP Adress を確認し、SSHでの操作とする。
 
2-1. ipアドレスの固定化
 
Raspbian Stretch からは、従来までの eth0 スタイルではなく、enxb827eb815b91 のようなMACアドレスに基づくinterface名に変わった。
最近、また eth0 スタイルに戻った。(2017.11.29)
 
このMACアドレスは『 ifconfig 』で、調べる事が出来る。
Stretch eth0 MAC アドレス
 
/etc/dhcpcd.conf の編集。
sudo nano /etc/dhcpcd.conf で、ファイルの最下部に以下を追記。
– – – – –
interface enxb827eb815b91 ← MACアドレス ← eth0 で良くなった。
static ip_address=192.168.11.xxx/24
 ← xxx 固定 ipアドレス
static routers=192.168.11.1
static domain_name_servers=192.168.11.1
 
 これでリブートすれば、IPアドレスが固定化される。
 
 
2-2. Chkconfig のインストールと不要デーモンの無効化
 
sudo apt-get install chkconfig
– – – – –
$ sudo chkconfig triggerhappy off
$ sudo chkconfig alsa-utils off
$ sudo chkconfig lightdm off
$ sudo chkconfig plymouth off
 
 
2-3. 不要パッケージの削除
 
$ sudo apt-get autoremove -y wolfram-engine
$ sudo apt-get autoremove -y scratch
$ sudo apt-get autoremove -y python-pygame
$ sudo apt-get autoremove -y pistore
$ sudo apt-get autoremove -y sonic-pi
$ sudo apt-get autoremove -y python-minecraftpi
$ sudo apt-get autoremove -y idle idle3
$ sudo apt-get autoremove -y netsurf-common dillo
$ sudo apt-get autoremove -y debian-reference-common
$ sudo apt-get autoremove -y libraspberrypi-doc
– – – – –
$ sudo rm -rf /home/pi/python_games/
$ sudo rmdir /usr/local/games/
$ sudo rmdir /usr/games/
– – – – –
$ sudo apt-get autoremove -y man manpages
$ sudo apt-get autoremove -y git git-man
$ sudo apt-get autoremove -y galculator
 
 
2-4. swap の無効化
 
スワップは(マイクロ)SDカードへ負荷をかけるので、これを無効にする。freeで確認すると、スワップが100MBほどある。
 
swapを無効化。
sudo swapoff –all
 
再度、freeで確認。スワップがゼロになった。
 
これだけだと、リブートしたときに復活するので swap が起動しないようにパッケージを削除。
sudo apt-get remove dphys-swapfile
 
ブート設定でも、自動起動しないように dphys-swapfile をオフにする
sudo chkconfig dphys-swapfile off
 
dphys-swapfile オフの確認。
 
swap ファイルの削除
sudo rm /var/swap
 
 
2-5. tmpフォルダ の RAMディスク化
 
tmpフォルダのマウント状況確認。
 
sudo nano /etc/fstab で次の2行を追記。
 
# tmp files put on RAM disk
tmpfs /tmp tmpfs defaults,size=32m 0 0
tmpfs /var/tmp tmpfs defaults,size=16m 0 0
#
 
 再起動。
sudo reboot
 
df -h で tmp がマウントされているか再確認。上記で追加したtmp がマウントされている。
 
 これでRAMディスク化ができたので、SDカード上の tmpファイルを削除する。
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
 
 
2-6. cron により一日に一回システムをリブート
 
 RAMをクリアするために、システムを自動でリブートする設定を行う。
sudo crontab -e
nanoでcrontabファイルの編集ができる。
最後の行に下記を追加する。ここでは午前4時5分に再起動がかかるようにした。
5 4 * * * /sbin/reboot
 
 
2-7. ログの最小限化
 
rsyslog.confを編集し、必要最小限のログ(auth , syslogとmessages)のみを記録させるようにして、ディスクへの書き込みを減らす。

sudo nano /etc/rsyslog.conf
 
青のところだけ残し、他はコメントにする 。
 
 
 
 
3.セキュリティ設定
 
3-1. root パスワードの設定とユーザの追加
 
 root パスワードの設定。
sudo passwd root
 
exit し root でログインした後、xxxxxx ユーザの追加と sudo グループへの追加。
sudo adduser xxxxxx
sudo gpasswd -a xxxxxx sudo
 
/etc/sudoersを編集し、xxxxxx ユーザのコマンド毎での、パスワード入力を不要にする 。
sudo nano /etc/sudoers
次の行を追記する。
xxxxxx ALL=(ALL) NOPASSWD: ALL
 
pi ユーザーの削除。
userdel -r pi
 
 
3-2. sshのポート変更 と root でのログインを無効化
 
ssh設定ファイルのバックアップ。
cd /etc/ssh/
sudo cp sshd_config sshd_config.org
 
sshのポート番号を変更し、SSHの root でのログインを無効にする。
sudo nano sshd_config
(自由に利用できる番号として、公式には49152-65535が規定されている)
Port 22 → nnnnn
 ← 変更
PermitRootLogin no
 ← 追記
 
sshサーバを再起動。
cd
sudo service ssh restart
 
 
3-3. SSH接続のアクセス制限
 
SSH接続は外部から破られるとコンピュータを乗っ取られるので、ローカルLANまたは指定IPからの接続のみを許可するように、アクセス制限を行う。
 
hosts.denyファイルを修正する。
sudo nano /etc/hosts.deny
# アクセス制限を追加(すべてのアクセスを拒否)
sshd: ALL
 
hosts.allowファイルを修正する。
sudo nano /etc/hosts.allow
# ローカルLANからのアクセスのみを許可
sshd: 192.168.11.0/24 127.0.0.0/8
 
 
3-4. ファイヤーウォールの導入
 
ファイヤーウォールの導入。
sudo apt-get install ufw
 
ステータスの確認。
sudo ufw status
inactive
 
アクセス制限の設定。Port 22 → nnnnn に変更済み番号。
sudo ufw limit nnnnn
 
ポート 80 と 443 を許可する。
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
 
ファイヤウォールを有効にする。
sudo ufw enable
 
ステータスの確認。
sudo ufw status
active
 
 
3-5. SSH接続の公開鍵化
 
以下の要領は、すでに公開鍵があり、同じものを使いまわす場合の手順で記載。
 
参考:
 
公開鍵ファイル id_rsa.pub をTera Termにドラッグアンドドロップする。
ドラッグアンドドロップすると「ファイル転送を行いますか?」というメッセージが表示されるので、「SCP」をクリックし、ファイルを転送する。
ssh 公開鍵化
 
鍵格納用フォルダを作り、作成したフォルダのパーミッションを設定した後、鍵をフォルダに移動する。
$ pwd
/home/yaopi
$ ls
id_rsa.pub
$ mkdir .ssh
$ chmod 700 .ssh
$ mv id_rsa.pub .ssh/authorized_keys
 
SSHの設定を、認証鍵方式のログインに変更。
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org2
sudo nano /etc/ssh/sshd_config
– – – – –
PubkeyAuthentication yes
 ← #を外す
AuthorizedKeysFile %h/.ssh/authorized_keys
 ← 追記
PasswordAuthentication no
 ← #を外し、yesをnoに変更
 
以上で設定は終了。SSHサーバーを再起動して設定を読み込ませる。
sudo service ssh restart
 
 
参考:
 
 

以上。
(2017.09.10)

 
             

スポンサー リンク
 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください