Raspberry Pi 2(Raspbian) 初期設定
性懲りもせずにRaspberry pi2を購入しました。
初代に比べて相当スペックが向上しており、4coreのメモリ1GBです。
さくらのVPSの1GBプランよりはこちらの方が性能が良いかもしれませんね(固定IPがないですが)
今回は以下の流れです。
・OS準備などraspberry piのセットアップ準備
・インストール
・OS初期設定
購入と準備
購入商品一覧
まずは今回私が購入したもの一覧。
本体、ケース、電源、SD、無線用USBアダプタになります。
無線用USBは後から見たら150Mbpsでした。ん〜……、このご時世では少し不満。他のにすればよかったと後悔です。
初代のraspberry piであればcpuの貧弱さからこれぐらいでも処理しきれなさそうだからよかったかも?
どちらにせよ、今もI/Oはmicro sdなので案外大丈夫なのかもしれません。
で、今回購入したケースを組み立てたのが以下。
わりとおしゃれです。
5枚くらいのプレートで挟み込む感じでした。CPUに取り付ける柔毛みたいなものも付いていました。
これで熱処理効率がupしますね。
ただこのケース、埃とか普通に入るのでそこのところをどうするか悩みどころです。
もろもろの準備
SDのフォーマットやOSの書き込みなど、まずは準備が必要になります。
細かい準備は初代のraspberry piと同じでしたのでこちらを参照してください。
私自身がいろいろ忘れてて自分の記事を参考にしました。
OS (Raspbian)のインストール
今回はRaspbianをOSとして採用しました。
本当はpidoraがよかったのですが、どうもpidoraの更新が止まっていそうなのと、raspberry pi2にいまいち対応しきれていないという情報を入手しました。
さすがに動作不安定だと設定時に問題の切り分けがしづらいですし、OSレベルで不可能なことがでそうなのでpidoraは諦めます。
では、さっそくRaspbianのインストールを行います。
1. Expand Filesystem <- 選択して/のパーティション拡張 2. Change User Password <- ユーザのパスワード変更 3. Enable Boot to Desktop/Scratch <-デフォルトのCUIに 4. Internationalisation Options <- ja_JP.UTF-8, asia/tokyo 5. Enable Camera <- 設定しない 6. Add To Rastrack <-参加しない 7. Overclock <- 設定しない 8. Advanced Options <- sshだけ有効化。 9. About raspi-confing <- 特にみない
簡素にはなりますが、Raspbianは起動直後にいろいろと自動で進み最終的には設定画面のようなものが開きます。
そこでは上記のようなメニューが表示されており、そこから初期設定を行います。
今回は上にコメントであるような設定を行いました。
簡単にいくつか補足説明をすると
4番でキーボードの設定も可能ですが、私は表示が文字化けしていて何がなんだかわからなかったのと、今後はsshで繋ぐので特に何も設定していません。
6番は、「みんなでraspberry piの位置を登録しようぜ!」っていう団体?への参加らしく、いやなのでしませんでした。
7番のオーバークロックは熱が怖いのと、初期状態の動作を試したかったので特に設定していません。基本やめておいた方がいいんじゃないかなって思います。
またこの画面で設定を忘れてもコンソールから以下のコマンドを入力することで再度表示可能です。
sudo raspi-config
初期設定
ここから、簡単なOSの初期設定を行います。
redhat (CentOS)に慣れきった私にはややストレスのたまる作業になりました。
ファイルが所定の位置にないこととはこんなにもストレスなのですね。
またここからはsshで接続して行っていますが、初期ではpiというユーザが存在しています。
そのユーザでアクセスしましょう。
ネットワーク(Nic)設定
まずはraspberry piに固定IPを振ります。
今回は自宅の閉じたネットワークに内にあり、publicなネットワークには属さない前提です。
pi@raspberrypi ~ $ sudo cp /etc/network/interfaces /etc/network/interfaces.org pi@raspberrypi ~ $ sudo vi /etc/network/interfaces pi@raspberrypi ~ $ sudo vi /etc/network/interfaces pi@raspberrypi ~ $ diff /etc/network/interfaces.org /etc/network/interfaces 5,6c5,10 < allow-hotplug eth0 < iface eth0 inet manual --- > #allow-hotplug eth0 > #iface eth0 inet manual > iface eth0 inet static > address 192.168.aaa.bbb > netmask 255.255.255.0 > gateway 192.168.aaa.1 pi@raspberrypi ~ $ sudo /etc/init.d/netwok restart
address部にあるaaaは各々の環境に合わせて設定を行ってください。
raspberry pi以外のパソコンでipを確認すると何を設定すればいいのかわかります。
macであればコンソールからifconfigを行った時にでる192.168.aaa.cccの、aaa部分を引用します。(実際には数字)
windowsであればコマンドプロンプトからipconfigです。
bbbの部分は自分で2〜255の間で好きに設定して構いません。
debianにはserviceコマンドみたいなものはないんでしょうかね?
多分あると思うのですが。
パッケージの更新
次はパッケージを更新します。
debian系では初期状態ではapt-getというコマンドがあります。
で、それとは別にaptitudeというコマンドがあるのですが、raspbianではデフォルトでインストールされているようです。
apt-getが基本にあり、それを拡張したaptitudeみたいなイメージです。
大きな違いはアンインストールするときの挙動で、aptitudeの方が関連するパッケージをちゃんと削除してくれます。
ただaptitudeでインストールしたログがないと綺麗に削除できないようなので、新しく使い始めるのであればaptitudeを利用していきましょう。
pi@raspberrypi ~ $ sudo aptitude update
# 以下 2015/10/27追記
pi@raspberrypi ~ $ sudo aptitude full-upgrade
さっくりと完了です。
full-upgradeの削除の速度がわりと普通だったので、やはり初代raspberry piに比べて2は相当スペックがあがっているのではないでしょうか。
ストレスありません。
<2015/10/27追記>
updateだけでは更新されてませんでした!
upgradeをしないとパッケージリスト更新しているだけでした!
そりゃ早いわけだ!
ユーザ追加
管理用ユーザを追加します。
pi@raspberrypi ~ $ sudo adduser hogehoge ユーザ `hogehoge' を追加しています... 新しいグループ `hogehoge' (1002) を追加しています... 新しいユーザ `hogehoge' (1001) をグループ `hogehoge' として追加しています... ホームディレクトリ `/home/hogehoge' を作成しています... `/etc/skel' からファイルをコピーしています... 新しいUNIXパスワードを入力してください: 新しいUNIX パスワードを再入力してください: passwd: パスワードは正しく更新されました hogehoge のユーザ情報を変更中 新しい値を入力してください。標準設定値を使うならリターンを押してください フルネーム []: 部屋番号 []: 職場電話番号 []: 自宅電話番号 []: その他 []: 以上で正しいですか? [Y/n] y pi@raspberrypi ~ $ sudo /etc/group | grep pi adm:x:4:pi dialout:x:20:pi cdrom:x:24:pi sudo:x:27:pi audio:x:29:pi video:x:44:pi plugdev:x:46:pi games:x:60:pi users:x:100:pi pi:x:1000: netdev:x:106:pi input:x:999:pi spi:x:998:pi i2c:x:997:pi gpio:x:996:pi pi@raspberrypi ~ $ sudo id pi uid=1000(pi) gid=1000(pi) groups=1000(pi),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),106(netdev),999(input),998(spi),997(i2c),996(gpio) pi@raspberrypi ~ $ sudo usermod -G adm,dialout,cdrom,sudo,audio,plugdev,games,users,netdev,input,spi,i2c,gpio hogehoge
行数が多いですが、行っているのはユーザの追加とグループの設定です。
piユーザは初期状態でいくつかのグループに入っているようなので、念のため新規に追加した管理ユーザにも同様のグループへ所属させました。
ここでwheelグループがないと気づいたのですが、debian系ではadmグループがwheelグループにあたるものとして利用されているようです。
またsudoグループというものがあり、このグループに所属している場合にsudoが実行可能になります。
root系権限設定
続いてroot系の権限設定です。
pi@raspberrypi ~ $ sudo passwd root pi@raspberrypi ~ $ sudo cp /etc/sudoers /etc/sudoers.org pi@raspberrypi ~ $ ls -l /etc/sudoers* -r--r----- 1 root root 696 5月 7 07:39 /etc/sudoers -r--r----- 1 root root 696 9月 20 21:26 /etc/sudoers.org pi@raspberrypi ~ $ sudo visudo pi@raspberrypi ~ $ diff /etc/sudoers.org /etc/sudoers 28c28 < pi ALL=(ALL) NOPASSWD: ALL --- > #pi ALL=(ALL) NOPASSWD: ALL pi@raspberrypi ~ $ su - root@raspberrypi:~# cp /etc/pam.d/su /etc/pam.d/su.org root@raspberrypi:~# vi /etc/pam.d/su root@raspberrypi:~# diff /etc/pam.d/su.org /etc/pam.d/su 15a16 > auth required pam_wheel.so group=adm # 新規追加ユーザでsudo, su -の動作確認 root@raspberrypi:~# adduser test root@raspberrypi:~# su - test test@raspberrypi ~ $ su - パスワード: su: 拒否されたパーミッション test@raspberrypi ~ $ exit ログアウト root@raspberrypi:~# userdel -r test root@raspberrypi:~# userdel -r pi
まずrootユーザにパスワードを設定します。
これでsu -でアクセスができるようになります。
sudoersの設定ではpiからパス無しsudo権限を解除しています。
pam.d/suの設定ではadmグループを管理者管理用グループ指定しています。
これでadmグループのユーザはsu -が実行できるようになります。
また、sudoersファイルの中で %sudoと記載されている部分があります。
ここを%admに変更すると、sudoを実行できるのがsudoグループ配下のユーザではなく、adm配下のユーザに切り替わるはずです。お好みに応じてadmに変更したりしてください。
ここまでできたら新しく通常のユーザを作成し、このユーザがsudo, suを実行できないことを確認できたら完了です。
私はpiユーザを削除しましたが、怖いと感じる方は残しておきましょう。
私はpiユーザという広く知られたユーザがサーバにいることの方が気持ち悪かったです。
iptables設定
最後にiptablesの設定です。
root@raspberrypi:~# aptitude install iptables-persistent # なんか出てくるが、一から設定するので気にせずOK root@raspberrypi:~# /etc/init.d/iptables-persistent restart root@raspberrypi:~# cp /etc/iptables/rules.v4 /etc/iptables/rules.v4.org root@raspberrypi:~# vi /etc/iptables/rules.v4 root@raspberrypi:~# diff /etc/iptables/rules.v4.org /etc/iptables/rules.v4 3,5c3,9 < :INPUT ACCEPT [13383:1240482] < :FORWARD ACCEPT [0:0] < :OUTPUT ACCEPT [7305:742584] --- > :INPUT DROP [0:0] > :FORWARD DROP [0:0] > :OUTPUT ACCEPT [0:0] > -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT > -A INPUT -p icmp -j ACCEPT > -A INPUT -i lo -j ACCEPT > -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 7d10 < # Completed on Sun Sep 20 22:11:09 2015 root@raspberrypi:~# /etc/init.d/iptables-persistent restart
debianではiptables-persistentというのをインストールして利用するみたいです。
今回は内から外は許可して、外から内は全部ドロップ。
22番とping系のみ許可という形にしています。
最小構成っぽい感じですので、あとはお好みに応じて肉付けしてください。
あとがき
本来であればsshの鍵認証設定と、sshd_config周りの設定を行って完了になるのですが、一旦ここまで。
publicに公開するまではこれでも十分だとは思います。
VPSと違ってglobalIPがないので、そういうときの楽しみ方を試行錯誤するのが楽しいですね。
DDNSやルータのポートフォワード設定は簡単だとして、stun,trunサーバを利用したルータ越えの通信設定など行ってみたいです。何かわかってないのでルータ越えにそれが使えるのかすらよくわかりませんが。
少し触っただけですが、raspberry pi2はなかなか動作が軽快です。
学生のサーバ勉強用途としては最強なんではないでしょうか。OSがdebianなのは個人的にはかなり嫌ですがw
購入物
Raspberry Pi 2 Model B (2015年2月発売品)
- 出版社/メーカー: きばん本舗
- メディア: エレクトロニクス
- この商品を含むブログを見る
- 出版社/メーカー: EleDuino
- メディア: エレクトロニクス
- この商品を含むブログを見る
PLANEX 無線LAN子機 (USBアダプター型) 11n/g/b 150Mbps MacOS X10.10対応 GW-USNANO2A (FFP)
- 出版社/メーカー: プラネックス
- 発売日: 2013/09/06
- メディア: Personal Computers
- この商品を含むブログを見る
【ノーブランド品】ラズベリーパイモデルB + /ラズベリーパイ2用ネジ/ W DC 5Vの0.2Aの冷却ファン
- 出版社/メーカー: 【ノーブランド品】
- メディア: Personal Computers
- この商品を含むブログを見る