Raspberry Pi 2 + RASPBIAN JESSIE LITE でサーバー構築 (バックアップ・セキュリティ関連)

2016/11/18

本来の目的であるバックアップ体制の構築とセキュリティ関連の強化を目的に設定します。


USB アダプタを認識させる

Raspbian Jessie LITE の標準状態では USB を認識しないので usbmount をインストールします。

  root@raspberrypi:~# df-h 現在のファイル構成を確認します。

 Filesystem      Size  Used Avail Use% Mounted on
 /dev/root        15G  1.4G   13G  10% /
 devtmpfs        459M     0  459M   0% /dev
 tmpfs           463M     0  463M   0% /dev/shm
 tmpfs           463M  6.2M  457M   2% /run
 tmpfs           5.0M  4.0K  5.0M   1% /run/lock
 tmpfs           463M     0  463M   0% /sys/fs/cgroup
 /dev/mmcblk0p1   63M   21M   43M  33% /boot
 ※USB の SDカードを認識していません。
 root@raspberrypi:~# apt-get install -y usbmount

 root@raspberrypi:~# reboot 再起動

再起動後、次のように USB の SD カードを認識していれば次に進みます。

  root@raspberrypi:~# df-h

 Filesystem      Size  Used Avail Use% Mounted on
 /dev/root        15G  1.4G   13G  10% /
 devtmpfs        483M     0  483M   0% /dev
 tmpfs           487M     0  487M   0% /dev/shm
 tmpfs           487M  6.5M  481M   2% /run
 tmpfs           5.0M  4.0K  5.0M   1% /run/lock
 tmpfs           487M     0  487M   0% /sys/fs/cgroup
 /dev/mmcblk0p1   63M   21M   43M  33% /boot
 /dev/sda1        63M   21M   43M  33% /media/usb0
 /dev/sda2        15G  1.4G   13G  10% /media/usb1

rsync のインストール

rsync はバックアップ用ツールで、ディレクトリやファイルを高速にバックアップします。 また、ローカルで削除されたファイルなら、バックアップ先のファイルも同じように削除されます。 また、リストファイルにより指定したディレクトリをバックアップしない等の設定もできます。

rsync は、ミラーリングに近い考え方で使用できるので、完全バックアップに近い形で同期をとることができます。

  root@raspberrypi:~# apt-get install -y rsync

同期しないディレクトリをリストにして設定します。 リストは面倒なのでルートに置きます。

  root@raspberrypi:~# cd /
 
 root@raspberrypi:/# vi rsync-exclude.txt ファイル名は何でもよい

 =空のファイルに以下を追記する= は修正・追記

 /proc/*
 /sys/*
 /dev/*
 /boot/*
 /tmp/*
 /run/*
 /mnt/*
 /var/tmp/*
 /var/log/*
 /media/*

USB の microSD が認識されているようでした、一度コマンドラインで同期を実行します。

  root@raspberrypi:~# rsync -aEv --delete-during --exclude-from=/rsync-exclude.txt / /media/usb1/

microSD 内にファイルが作成されていれば OK です。

crontab で自動実行

毎日でも、1時間毎でも、1週間毎でも構いませんが、自動実行を指定しておきます。

なお、contab のエディタが指定されていないので、環境変数で vi を指定しておきます。

  root@raspberrypi:~# EDITOR=vi
 root@raspberrypi:~# export EDITOR

 root@raspberrypi:~# crontab -e

 =末尾に追記= は修正・追記

 0 4 * * *  rsync -a --delete-during --exclude-from=/rsync-exclude.txt / /media/usb1
 ※上記設定では 毎朝 4時に同期を実行します。

ext4 (Journal) の停止

ext4 ファイルシステムではファイルの書き込みの際に管理データのログを取り、ファイルシステムの安全性を高めています。

処理能力が高ければ安全性の面から有効にしておくべきなのですが、Raspberry Pi の非力なサーバーでは負担も大きく、また、デバイスに SD カードを使用しているため。 書き込み回数は出来るだけ少ない方が寿命が延びます。

サーバーの運用では若干危険性を伴いますが、ここは思い切ってジャーナルを記録しないよう設定します。

  root@raspberrypi:~# tune2fs -O ^has_journal /dev/mmcblk0p2

 root@raspberrypi:~# tune2fs -l /dev/mmcblk0p2 | grep features

 上記のコマンドで出力されたメッセージ内に has_journal の文字が無ければ設定完了

swap ファイルの停止

swap を停止する。 スワップファイルを削除しても良いが、再起動時に作成されるかもしれないので、削除しない。

  root@raspberrypi:~# dphys-swapfile swapoff

 root@raspberrypi:~# chkconfig dphys-swapfile off 起動時に起動しないようにする