RaspberryPiで遊んでみたーその1 サーバとして使う準備をする


#SDカードを準備する
## Raspbianをダウンロードする
[Download Raspbian for Raspberry Pi](https://www.raspberrypi.org/downloads/raspbian/)からRaspbianをダウンロードする。少し時間がかかります。

##SDカードにRaspbienのディスクイメージを書き込む
###Macの場合
「[RPi-sd card builder v1.2](https://mega.nz/#!PZc2HTTQ!eD9dtFpoKnbZqP1hkvrv43_Pvc9xadMVxRP2K-M8n88)」をダウンロードしてインストールする。
「RPi-sd card builder v1.2」を起動し、[SD card setup – Raspberry Pi – Mac](https://alltheware.wordpress.com/2012/12/11/easiest-way-sd-card-setup/)にある手順通りに進めるとRaspbianの入ったSDカードが作成される。
###Windowsの場合
「[Win32DiskImager](https://launchpad.net/win32-image-writer/+download)」をダウンロードしてインストールする。
「Win32DiskImager」を起動し、ダウンロードしたディスクイメージを選択してDviceでSDカードを選択、「Write」をクリックするとRaspbianの入ったSDカードが作成される。

#RaspberryPiを起動して接続する
##RaspberryPiを起動する
作成したSDカードをRaspberryPiに挿し、LANケーブル、ディスプレイケーブル(HDMI)、USBキーボードを挿してから電源を挿す。RaspberryPiには電源スイッチが無いため、延長タップなどのスイッチを利用して電源のON-OFFを行うといい。
##RaspberryPiに接続する
電源を入れると初期設定画面が現れる。これは後でも設定できるので、とりあえず今はexpand_rootfsと、もし、sshがdisableになっていればenableにする。

**以下の作業はLAN内の他のPCからSSHでログインして行うことができるので、ディスプレイやキーボードは取り外してよい**

##ログイン
初期設定では、ID:「pi」、パスワード：「raspberry」でログインできるので、ログインする。

```bash
$ ssh pi@raspberrypi.local
pi@raspberrypi.local's password: 
```

##固定IPを割り当てる
IPアドレスの割り当ては、DHCPサーバに任せて、DHCPサーバ側で、固定IPを割り当てるようにする。
先にルータの設定画面で、RaspberryPiのMACアドレスに固定IPを割り当てるように設定しておくこと。
設定の仕方はルータによって異なるが、「Aterm WR9500N」では、詳細設定＞DHCP固定割当設定で割り当てられる（他のルータでもだいたい同じ）
MACアドレスは```ifconfig```で調べられる。
ルータの設定が終了したら、RaspberryPi側の設定をする。

```bash
$ sudo vi /etc/network/interfaces
```

```/etc/network/interfaces
...略...
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp	←ここがdhcpになっているか確認
...略...
```

```bash
$sudo /etc/init.d/networking restart
```

#セキュリティに関する設定をする
##ユーザの権限などを変える

rootパスワードを設定し、suでrootになる。

```bash
pi@raspberrypi ~ $ sudo passwd root
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
pi@raspberrypi ~ $ su
Password: 
root@raspberrypi:/home/pi#
```

新しいユーザを追加し、sudoerに登録する。ユーザ「pi」はsudoerから外す。

```bash
root@raspberrypi:/home/pi# adduser hoge
Adding user `hoge' ...
Adding new group `hoge' (1002) ...
Adding new user `hoge' (1001) with group `hoge' ...
Creating home directory `/home/hoge' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for hoge
Enter the new value, or press ENTER for the default
	Full Name []: 
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
root@raspberrypi:/home/pi# visudo
```

```/etc/sudoers.tmp
...略...
#includedir /etc/sudoers.d
#pi ALL=(ALL) NOPASSWD: ALL
hoge ALL=(ALL) NOPASSWD: ALL
```

suを実行できるユーザをsudoグループに制限する。
「pi」をsudoグループから外し、新しく作ったユーザをsudoグループに入れる。

```bash
# vi /etc/pam.d/su
```

```/etc/pam.d/su
# (Replaces the `SU_WHEEL_ONLY' option from login.defs)
# auth       required   pam_wheel.so
auth       required   pam_wheel.so group=sudo
```

```bash
# vi /etc/group
```

```/etc/group
...略...
sudo:x:27:hoge		←piを消去して新しく作ったユーザを追記
...略...
```

##sshを公開鍵認証方式に変える
###公開鍵を登録する準備をする

```bash
hoge@raspberrypi ~ $ cd
$ mkdir .ssh
$ chmod 700 .ssh
$ vi .ssh/authorized_keys
```

```.ssh/authorized_keys
（ここにログイン元の「id_rsa.pub」をコピーする。公開鍵がなければ作る）
```

###「root」ログインの禁止とパスワードログインの禁止
**この作業を行うと、パスワードログインができなくなり、公開鍵認証でうまくログインできなかった場合にハマるので、一度公開鍵認証でのログインテストをしたほうがいいかも・・・というか私は思いっきりハマりました**

```bash
# vi /etc/ssh/sshd_config
```

```/etc/ssh/sshd_config
...略...

# Authentication:
LoginGraceTime 120
#PermitRootLogin yes
PermitRootLogin no
StrictModes yes

...略...

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes
PasswordAuthentication no

...略...
```

###SSHサーバの再起動

```bash
# service ssh restart
```

ログインできれば成功

```bash
$ ssh hoge@raspberrypi.local
Identity added: /Users/fuga/.ssh/id_rsa (/Users/fuga/.ssh/id_rsa)
Linux raspberrypi 3.18.11+ #781 PREEMPT Tue Apr 21 18:02:18 BST 2015 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Aug 24 11:56:37 2015 from piyopiyo.local
hoge@raspberrypi ~ $ 
```

##ファイアウォールのインストールと設定
ここでは設定が簡単な「ufw」を使うことにする。

```bash
$ sudo apt-get install ufw
```

有効にする前にSSHを許可しておかないとSSHが切れるので注意

```bash
$ sudo ufw allow ssh
Rules updated
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
```

****

次はScanSnapを繋いでみるよ
[RaspberryPiで遊んでみたーその2 ScanSnap S1500 をRaspberryPiに繋いでスキャンしたものをDropboxにアップロードする](http://qiita.com/hyperkinoko/items/acde8ec8a58e056431d2)