このページでの手元の作業マシンは Linux を想定しています.Windows でも Cygwin を入れればだいたいは代替できますが, GParted だけはLinux での作業が必要になります.GParted 専用の Live CD/USB が用意されていますので,必要ならこれを使うのがよいでしょう.
一応 Raspberry Pi での設定を記述していますが,たぶん Arch Linux 共通の設定も多く含まれています.
自分の覚書として書いているので安全性や完全性については保証いたしかねます.また,通常の使用では Arch Linux でなく, Debian が推奨されています. Linux に慣れていて腕に覚えがある場合のみ Arch Linux を推奨します.
/dev/sdb
の部分と GParted の部分は特に注意して作業してください.
archlinux-hf-2012-09-18.zip
.unzip archlinux-hf-2012-09-18.zip
sudo dd bs=1M if=archlinux-hf-2012-09-18.img of=/dev/sdb
passwd
vi /etc/pacman.d/mirrorlist
でミラーサーバーの一覧を開き,# Server = http://mirror.archlinuxarm.org/armv6h/$repo
をコメントアウトした上でアメリカ合衆国のサーバーをひとつアンコメントする.
こうすることでダウンロード時間が大幅に短縮できるadduser
で新規ユーザーを追加vi /etc/locale.gen
で en_US.UTF-8 UTF-8
と ja_JP.UTF-8 UTF-8
をアンコメント(参考)locale-gen
必要なソフトウエアをインストールし,ついでにシステムのアップデート
ここではこれ以降の全ての設定を行うことを前提にしているので,必要なものだけをインストールするのが良い.
pacman -Sy
pacman -Su vim zsh openvpn nginx emacs-nox avahi python2 sudo python2-virtualenv supervisor tinyproxy tmux ufw mercurial git munin munin-node p7zip motion
オーバークロックとメモリの設定を行う
/boot/config.txt
を書き換える.PermitRootLogin no
を /etc/ssh/sshd_config
に書き加える.visudo
で設定ファイルを編集する.%wheel ALL=(ALL) ALL
をアンコメントしてwheel
グループに対して sudo を許可する./etc/hostname
を編集タイムゾーンを書き換える
cd /etc
rm localtime
ln -s /usr/share/zoneinfo/Japan localtime
fstab を書き換えてスワップを有効にする.
/etc/fstab
の最後に次の行を追加する.パーティションの切り方が違う場合には適宜変更.
/dev/mmcblk0p3 swap swap defaults 0 0
再起動する
ssh-keygen -t rsa
~/.ssh/id_rsa.pub
をリモートの ~/.ssh/authorized_keys
に追記パスワードによるログインを禁止.以下を追記する.(コメントを修正でもOK)
PasswordAuthentication no
ChallengeResponseAuthentication no
sshd を再起動してパスワードでログイン出来ないことを確認.
systemctl restart sshd.service
Permission denied (publickey).
と表示されれば成功.nginx は Apache に比べて軽量なウェブサーバーで特にメモリ使用量が少ないので Raspberry Pi のような環境にはおすすめ.インストールは pacman -S nginx
/etc/nginx/nginx.conf
を必要に応じて書き換える.ドキュメントを参照する.
設定ファイルの確認は
nginx -t
サービスの起動は
systemctl enable nginx.service
systemctl start nginx.service
munin はシステムの状態を監視するためのツール.インストールはpacman -S munin munin-node
プラグインのインストール.大量のプラグインがインストールされるので取捨選択が必要.
munin-node-configure --shell|sh
Raspberry Pi向けのプラグインをインストール
これらを /etc/munin/plugins
に配置し
munin-nodeの開始
systemctl enable munin-node.service
systemctl start munin-node.service
パーティションの修正
chown munin:munin /usr/share/munin/www
Cron の登録
crontab -u munin /etc/munin/munin-cron-entry
あとは nginx の設定を書き換えてブラウザからみれるようにする.必要に応じて Basic 認証をかけると良い.
tinyproxy は簡易 HTTP Proxy で,公衆無線 LAN などで SSH にポートフォワードさせて使っている.インストールはpacman -S tinyproxy
/etc/tinyproxy/tinyproxy.conf
を適宜編集.
サービスの起動は
systemctl enable tinyproxy.service
systemctl start tinyproxy.service
公開プロキシにならないように注意.次の項目の ufw でポートを閉じて,SSH のポートフォワードと組み合わせて使うのが安全性からも良い.
ufw は Ubuntu Firewall の略で難解な iptables の簡易ラッパーである. iptables に比べて設定が大幅に楽なのでお勧め.インストールはpacman -S ufw
以下のように設定.順番を間違えるとSSHにログインできなくなる.許可するポートは用途に応じて変更する.
ufw limit SSH
ufw allow "WWW Full"
systemctl enable ufw
systemctl start ufw
ufw enable
SSHは短期間に何度もログインできないようにした.allow や limit の後ろに使える名前は sudo ufw app list
で一覧を得ることが出来る. ufw allow 80/tcp
のように直接ポート番号を指定することも出来る.詳しくはman ufw
OpenVPN はセキュアでセットアップが簡単な VPN . OS の標準サポートがないのでクライアント側にソフトを入れる必要があるが,面倒ではない.セットアップ方法はHOWTO に載っている通りであるが,Arch Linux での注意点をいくつか挙げておく.
/usr/share/openvpn/
にある.設定ファイルは/etc/openvpn
の中に設置する.もし,/etc/openvpn/server.conf
という名前で保存した場合には
systemctl enable openvpn@server
systemctl start openvpn@server
として有効にする.server
の部分は任意に書き換え可能. UDP と TCP の両方に対応させる場合には設定ファイルを二つ用意する必要があるので,systemctl
も二回繰り返す.
ufw を使用している場合に Packet Forwarding を使いたいときには以下のようにする.
/etc/ufw/before.rules
の頭に以下を追記
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT
参考: https://help.ubuntu.com/12.10/serverguide/firewall.html#ip-masquerading
/etc/defaults/ufw
の編集
DEFAULT_FORWARD_POLICY="ACCEPT"
/etc/ufw/sysctl.conf
の以下の行をUncomment
net/ipv4/ip_forward=1
最後にufw allow 1194/udp
でポートを空けた上でufw disable && ufw enable
で Firewall を再起動して完了.
Motion はWebカメラを用いた動体検知プログラムである.カメラに写っているものが動いた場合に録画してくれる.
とりあえず動かしてみるためには以下のコマンドをroot
権限で実行する.
motion -sn
設定ファイルは/etc/motion/motion.conf
にあるが変更すべき箇所は多くない.
359行目付近のtarget_dir
を変更するくらいで他は保存するファイル名を必要に応じて変更する.
動体検知されたときにスクリプトを実行することもできるので,検知された際に自動的にTwitterにツイートすることも出来る.