2014/08/10

Rsapberry Pi に MediaTomb と ownCloud 第1話

今までのをまとめて書き直し

Raspbianインストール編

B+購入記念にMediaTombとownCloudをインストールして24時間運用してみる。

準備したもの
・RaspberryPi ・・・ 1 枚
・SDカード ・・・ 1 枚 (Raspbian用)
・USBメモリ ・・・ 2 本 (MediaTomb用 1本 ownCloud用 1本)
逝っちゃった時の被害を最小限に抑えるため、それぞれ独立させた。
・・・が有効な方法なのかは不明。

●Raspbianインストール

ホストマシンにSDカードを差し込む
自動認識する場合はアンマウント(全パーティションをアンマウント)
$ umount /dev/mmcblk0p1

ダウンロードしたRaspbianイメージを書き込む
$ sudo dd if=YYYY-MM-DD-wheezy-raspbian.img of=/dev/mmcblk0 bs=1M

固定IPでセットアップするために一旦挿し直す
マウント先のinterfacesファイルを編集
$ sudo vi /media/[マウント先]/etc/network/interfaces

iface eth0 inet dhcp
↓↓
iface eth0 inet static
  address 192.168.xxx.yyy
  network 192.168.xxx.0
  netmask 255.255.255.0
  broadcast 192.168.xxx.255
  gateway 192.168.xxx.zzz
  dns-nameservers 192.168.xxx.zzz

キーボード設定ファイルを編集
$ sudo vi /media/[マウント先]/etc/default/keyboard

XKBMODEL="pc105"
XKBLAYOUT="gb"
↓↓
XKBMODEL="jp106"
XKBLAYOUT="jp"

RaspberryPiに挿し込んで、いざ入電!

●Raspbianセットアップ

ホストからラズパイに接続
$ ssh pi@192.168.xxx.yyy

初期設定
$ sudo raspi-config

[ 1 Expand Filesystem ]
[ 4 Internationalisation Options ] - [ I1 Change Locale ] - [ [*] ja_JP.UTF-8 UTF-8 ] - [ ja_JP.UTF-8 ]
[ 4 Internationalisation Options ] - [ I2 Change Timezone ] - [ Asia ] - [ Tokyo ]
[ 8 Advanced Options ] - [ A2 Hostname ] - [ 任意のホスト名 ]
[ 8 Advanced Options ] - [ A3 Memory Split ] - [ 16 ]


再起動してから再接続
rootパスワード定義
[HOST]$ ssh pi@192.168.xxx.yyy
$ sudo passwd root

ユーザー作成
$ su -
# useradd -m -s /bin/bash [ 任意のユーザー名 ]
# passwd [ 任意のユーザー名 ]

viを高機能版に変更
# apt-get install vim
# update-alternatives --config editor
 ⇛ "vim.basic"を選択する

rootログイン禁止、パスワード認証禁止、チャレンジレスポンス認証を許可
# vi /etc/ssh/sshd_config

PermitRootLogin yes
↓↓
PermitRootLogin no

ChallengeResponseAuthentication no
↓↓
ChallengeResponseAuthentication yes

#PasswordAuthentication yes
↓↓
PasswordAuthentication no

ttyの一部を無効化
# vi /etc/inittab

2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
↓↓
#2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6

システム&ファーム更新
# apt-get update
# apt-get upgrade
# apt-get autoremove
# rpi-update

不要サービス停止
# update-rc.d dbus disable
# update-rc.d triggerhappy disable
# update-rc.d alsa-utils disable
# update-rc.d lightdm disable
# update-rc.d motd disable
# update-rc.d plymouth disable
# update-rc.d ntp disable

ntpクライアント(ntpdate)インストール&時刻合わせ設定
# apt-get install ntpdate
# vi /etc/default/ntpdate

NTPSERVERS="0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org"
↓↓
#NTPSERVERS="0.debian.pool.ntp.org ...
NTPSERVERS="0.ntp.nict.jp 1.ntp.jst.mfeed.ad.jp 2.ntp.ring.gr.jp"

# crontab -e

0 1 * * * /etc/network/if-up.d/ntpdate > /dev/null 2>&1

アカウントpiを停止するために再起動(作成したアカウントでログインしなおす)
# reboot

[HOST]$ ssh [hogehoge]@192.168.xxx.yyy
$ su -
# passwd -l pi

追加アカウントでsudoが使えるようにする
# visudo

[hogehoge] ALL=(ALL) ALL

fstabを編集しRAMDiskを有効化(/tmpなど をtmpfsへ)
# vi /etc/fstab

/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
↓↓
/dev/mmcblk0p1  /boot           vfat    defaults          0       0
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       0
tmpfs           /tmp            tmpfs   defaults,size=32m 0       0
tmpfs           /var/tmp        tmpfs   defaults,size=16m 0       0
tmpfs           /var/log        tmpfs   defaults,size=32m 0       0

仮想メモリ停止
# dphys-swapfile swapoff
# dphys-swapfile uninstall
# update-rc.d dphys-swapfile disable

ログ出力抑制
# vi /etc/rsyslog.conf
(抜粋)
###############
#### RULES ####
###############

#
# First some standard log files.  Log by facility.
#
auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
#cron.*                         /var/log/cron.log
#daemon.*                       -/var/log/daemon.log
#kern.*                         -/var/log/kern.log
#lpr.*                          -/var/log/lpr.log
#mail.*                         -/var/log/mail.log
#user.*                         -/var/log/user.log

#
# Logging for the mail system.  Split it up so that
# it is easy to write scripts to parse these files.
#
#mail.info                      -/var/log/mail.info
#mail.warn                      -/var/log/mail.warn
#mail.err                       /var/log/mail.err

#
# Logging for INN news system.
#
#news.crit                      /var/log/news/news.crit
#news.err                       /var/log/news/news.err
#news.notice                    -/var/log/news/news.notice

#
# Some "catch-all" log files.
#
#*.=debug;\
#       auth,authpriv.none;\
#       news.none;mail.none     -/var/log/debug
*.=info;*.=notice;*.=warn;\
        auth,authpriv.none;\
        cron,daemon.none;\
        mail,news.none          -/var/log/messages

#
# Emergencies are sent to everybody logged in.
#
*.emerg                         :omusrmsg:*

#
# I like to have messages displayed on the console, but only on a virtual
# console I usually leave idle.
#
#daemon,mail.*;\
#       news.=crit;news.=err;news.=notice;\
#       *.=debug;*.=info;\
#       *.=notice;*.=warn       /dev/tty8

# The named pipe /dev/xconsole is for the `xconsole' utility.  To use it,
# you must invoke `xconsole' with the `-file' option:
#
#    $ xconsole -file /dev/xconsole [...]
#
# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
#      busy site..
#
#daemon.*;mail.*;\
#       news.err;\
#       *.=debug;*.=info;\
#       *.=notice;*.=warn       |/dev/xconsole

ログ初期設定スクリプト
# vi /etc/init.d/make-logfile

#!/bin/bash
#
### BEGIN INIT INFO
# Provides:          make-varlog-files
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Required-Start:
# Required-Stop:
# Short-Description: Create /var/log/... files on tmpfs at startup
# Description:       Create /var/log/... files needed by system daemon
### END INIT INFO

#
# main()
#
case "${1:-''}" in
  'start')

    mkdir -p /var/log/ConsoleKit
    mkdir -p /var/log/apt
    mkdir -p /var/log/fsck
    mkdir -p /var/log/mrtg
    mkdir -p /var/log/ntpstats
    mkdir -p /var/log/samba
    mkdir -p /var/log/squid3
    mkdir -p /var/log/apache2

    chown root.adm /var/log/mrtg
    chown ntp.ntp /var/log/ntpstats
    chown root.adm /var/log/samba
    chown proxy.proxy /var/log/squid3
    chown root.adm /var/log/apache2
    chmod 750 /var/log/apache2

    touch /var/log/lastlog
    touch /var/log/wtmp
    touch /var/log/btmp
    touch /var/log/apache2/access.log
    touch /var/log/apache2/error.log
    touch /var/log/apache2/other_vhosts_access.log


    chown root.utmp /var/log/lastlog
    chown root.utmp /var/log/wtmp
    chown root.utmp /var/log/btmp
    chown root.adm /var/log/apache2
    chown root.adm /var/log/apache2/access.log
    chown root.adm /var/log/apache2/error.log

    chmod 640 /var/log/apache2/access.log
    chmod 640 /var/log/apache2/error.log


   ;;
  'stop')
   ;;
  'restart')
   ;;
  'reload'|'force-reload')
   ;;
  'status')
   ;;
  *)
   echo "Usage: $SELF start"
   exit 1
   ;;
esac

サービス登録
# chmod 755 /etc/init.d/make-logfile
# update-rc.d make-logfile defaults 01 10

再起動してエラーが発生しないか確かめる

0 件のコメント:

コメントを投稿

フォロワー