白執事の徒然なる日々


主にコンピュータ関係の記事を書いています。

プロフィール

白執事☆

こんにちは、白執事です。
PC関係の記事を書いていきますので
よろしくお願いします。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

カテゴリー:スポンサー広告 | タグ:
|コメント(-) |トラックバック(-) | --年--月--日 (--)--時--分

Raspberry Pi にsambaを導入してファイル共有

このページの目標

Raspberry Pi に samba を導入して、ファイルサーバーとして機能させてみます。


apt をアップデート

sudo apt-get update

apt-get … パッケージを取得してインストール・アップデート・アンインストールするコマンド。
update … aptのパッケージリストを更新します。


samba をインストール

sudo apt-get install samba


samba-common-bin をインストール

sudo apt-get install samba-common-bin

samba-common-bin はパスワードの設定で必要です。


samba を再起動

sudo service samba restart


エラーでsambaを再起動できない場合は、以下のコマンドで再起動します。
sudo service smbd restart
sudo service nmbd restart


Sambaのユーザー登録を行う

(1) sambaにユーザーを追加します。
  • Raspberri pi と同じユーザー名にして下さい。
    初期状態では pi になっているはずです。
    sudo smbpasswd -a pi


(2) sambaのパスワードを設定します。
  • 先程、追加したユーザー pi にパスワードを設定します。
    sudo smbpasswd pi

    Raspberri Pi と同じパスワードにして下さい。
    初期状態では raspberry になっているはずです。
    New SMB password:
    Retype new SMB password:
    セキュリティのため、入力した文字列は非表示ですが気にせず入力を続けて下さい。


ファイアウォールの設定をチェック

(1) 現在の設定を確認します。
  • sudo ufw status

    [参考例]
    To                         Action      From
    --                         ------      ----
    22/tcp                     ALLOW       192.168.1.0/24
    137/udp                    ALLOW       192.168.1.0/24
    138/udp                    ALLOW       192.168.1.0/24
    139/tcp                    ALLOW       192.168.1.0/24
    445/tcp                    ALLOW       192.168.1.0/24
    

    この中で下記のポートが許可されていればOKです。
    137/udp
    138/udp
    139/tcp
    445/tcp


(2) 上記のポートが許可されていない場合、ファイアウォールにルールを追加します。
  • sudo ufw allow proto udp from 192.168.1.0/24 to any port 137
    sudo ufw allow proto udp from 192.168.1.0/24 to any port 138
    sudo ufw allow proto tcp from 192.168.1.0/24 to any port 139
    sudo ufw allow proto tcp from 192.168.1.0/24 to any port 445

    192.168.1.0/24 の部分はそれぞれの環境に合わせて読み替えて下さい。


sambaの設定ファイルを変更

(1) /etc/samba ディレクトリに移動。
  • cd /etc/samba


(2) smb.conf のバックアップをとる。
  • sudo cp smb.conf smb.conf_original


(3) smb.conf を編集。
  • sudo nano smb.conf

    [global] のすぐ下に、文字コードの設定を追加します。
    [global]
    unix charset = UTF-8
    dos charset = CP932

    設定ファイルの末尾に、共有フォルダの設定を追加します。
    [common]
    comment = RasPi2 Share Directory
    path = /media/usb0/data
    browseable = yes
    read only = no
    guest ok = no
    force user = pi
    

    [common]  …  ここで指定された名前が、共有フォルダの名前になります。
    comment  …  共有フォルダの説明。
    path  …  実際に共有する Raspberry Pi のディレクトリ。
    browseable  …  yes にすると他のコンピュータから見えるようになります。
    read only  …  no にすると、他のコンピュータからファイルの作成・変更をできるようになります。
    guest ok  …  no にすると、guest account による操作が禁止。ユーザー名・パスワードを求められるようになります。
    force user  …  samba に対するデフォルトユーザー。指定のユーザーの権限で、ファイル操作が行なわれます。

    Ctrl + O で上書き、Ctrl + Xnano を終了します。

    ※ログファイルのサイズを変更したり、共有プリンタの機能を切る事もできますが、ここでの説明は割愛します。


samba を再起動

sudo service samba restart


エラーでsambaを再起動できない場合は、以下のコマンドで再起動します。
sudo service smbd restart
sudo service nmbd restart


以上で、他のコンピュータから Raspberry Pi の共有フォルダを利用できるはずです。


各種・設定方法

【準備】 Raspberry Pi 2 を用意してみよう
(1) Raspberry Pi 2 の OS をインストールする
(2) IPアドレスを設定
(3) システム時刻を日本に設定
(4) RAMディスクを使って、micro SDを長寿命化
(5) Raspberry Pi にUSBメモリをマウント
(6) ファイアウォールを設定
(7) samba を導入して、共有フォルダを作る


スポンサーサイト

カテゴリー:Raspberry Pi | タグ:
コメント(0)トラックバック (0) | 2016年04月01日 (金)19時11分

Raspberry Pi のファイアウォールを設定

このページの目標

Raspberry Pi を自宅のファイルサーバーとして運用する場合、外部からのアクセスを遮断する必要があります。
その対策として、ファイアウォールを設定します。
設定を間違えると、Raspberry Pi との通信ができなくなるので注意して設定して下さい。


ufw をインストール

ファイアウォールを簡単に設定できるソフト ufw をインストールします。
sudo apt-get install ufw


ufw を設定する

(1) 通信を全て遮断するように設定。
sudo ufw default deny


(2) TCPプロトコルで22番ポートの通信を許可する。
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 22

22番ポートはTeratermとのSSH通信で使用します。

192.168.1.0/24 とは?
  • 192.168.1.1~192.168.1.254 からの通信を許可するという意味です。
    それぞれの環境に合わせて読み替えて下さい。
    例えば、ローカルエリアのIPアドレスが 192.168.0.1~192.168.0.254 の場合、
    192.168.0.0/24 と指定します。


(3) UDPプロトコルで137番・138番ポート、TCPプロトコルで139番・445番ポートの通信を許可する。
sudo ufw allow proto udp from 192.168.1.0/24 to any port 137
sudo ufw allow proto udp from 192.168.1.0/24 to any port 138
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 139
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 445

137番・138番・139番・445番ポートはWindowsとのファイル共有で使用します。
192.168.1.0/24 はそれぞれの環境に合わせて読み替えて下さい。


(4) ファイアウォールを有効にします。
sudo ufw enable


(5) ファイアウォールの状態を確認する。
sudo ufw status

[参考例]
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       192.168.1.0/24
137/udp                    ALLOW       192.168.1.0/24
138/udp                    ALLOW       192.168.1.0/24
139/tcp                    ALLOW       192.168.1.0/24
445/tcp                    ALLOW       192.168.1.0/24

以上で、とりあえずの設定は終了です。
上記以外の通信を許可する場合は、その都度設定していきましょう。


uwf のその他の操作方法

(1) ufw を無効にする場合
sudo ufw disable


(2) uwf の設定を全てリセットする場合
sudo ufw reset


(3) 特定のルールを削除する場合
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       192.168.1.0/24
137/udp                    ALLOW       192.168.1.0/24
138/udp                    ALLOW       192.168.1.0/24
139/tcp                    ALLOW       192.168.1.0/24
445/tcp                    ALLOW       192.168.1.0/24
65535/tcp                  ALLOW       192.168.1.0/24

例えばこの中から 65535/tcpALLOW192.168.1.0/24 を削除するには次のコマンドを実行します。
sudo ufw delete allow proto tcp from 192.168.1.0/24 to any port 65535


各種・設定方法

【準備】 Raspberry Pi 2 を用意してみよう
(1) Raspberry Pi 2 の OS をインストールする
(2) IPアドレスを設定
(3) システム時刻を日本に設定
(4) RAMディスクを使って、micro SDを長寿命化
(5) Raspberry Pi にUSBメモリをマウント
(6) ファイアウォールを設定
(7) samba を導入して、共有フォルダを作る



カテゴリー:Raspberry Pi | タグ:
コメント(0)トラックバック (0) | 2016年04月01日 (金)19時10分

Raspberry Pi にUSBメモリをマウント

このページの目標

Raspberry Pi にUSBメモリを認識させてみます。
USBメモリを ext4 でフォーマット。
起動時に特定の場所にマウントするように設定します。

この先の操作をすると、USBメモリのデータは消えます。
データがある場合はバックアップしておきましょう。


デバイスの情報を確認

Raspberry Pi にUSBメモリをつないだら、次のコマンドを実行します。
sudo fdisk -l

fdisk … ハードディスクのパーティションを設定するコマンド。
-l … fdiskのオプション。現在マウントされているデバイスの情報を表示する。

[参考例]
Disk /dev/sda: 28.9 GiB, 31024349184 bytes, 60594432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x386954cf

Device     Boot Start      End  Sectors  Size Id Type
/dev/sda1        2048 60594431 60592384 28.9G 83 Linux

まっさらの状態で初めてUSBメモリを装着すると、/dev/sda1 でマウントされるはずです。
ただし、環境によって違うので記憶容量やフォーマットのタイプで判断して下さい。

ここから先は、/dev/sda1 がUSBメモリのマウント先だと仮定して話を進めます。
マウント先が違う場合はその都度、読み替えて下さい。


USBメモリのパーティションを設定

/dev/sda1 がUSBメモリだった場合、fdisk でパーティションを再設定します。
sudo fdisk /dev/sda1

fdisk 実行中にコマンドを問われるので、以下のように進めます。

  • (1) パーティションを削除
    Command (m for help): d

    (2) パーティションを追加
    Command (m for help): n

    (3) パーティション情報を表示
    Select (default p): p

    (4) 1番目を選択
    Partition number (1-4, default 1): 1

    (5) 表示された情報でよければ、パーティション情報を書き込んで終了
    Command (m for help): w
    ※パーティションを設定しないで終了する場合は q を入力して終了


USBメモリをフォーマット

Linux上でファイルの読み書きが早いと言われる ext4 でフォーマットしてみます。
(Windowsでは認識しなくなります、ご了承ください。)
sudo mkfs.ext4 /dev/sda1


マウント先を変更

(1) Raspberry Pi に新しいディレクトリ /media/usb0 を作成
sudo mkdir /media/usb0

mkdir … ディレクトリを作成するコマンド。make directory の略。


(2) USBメモリのマウント先を /media/usb0 に変更
sudo mount /dev/sda1 /media/usb0


(3) ファイルシステムのディスク容量を確認
df

[参考例]
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        3743376 3461876     71632  98% /
devtmpfs          469708       0    469708   0% /dev
tmpfs             474028       0    474028   0% /dev/shm
tmpfs             474028    6412    467616   2% /run
tmpfs               5120       4      5116   1% /run/lock
tmpfs             474028       0    474028   0% /sys/fs/cgroup
/dev/mmcblk0p1     61384   20312     41072  34% /boot
tmpfs              94808       0     94808   0% /run/user/1000
/dev/sda1       30280032      16  30280016   1% /media/usb0

ここで /dev/sda1 のマウント先が /media/usb0 になっていればOKです。


Raspberry Pi の起動時にUSBメモリを自動マウント

(1) USBメモリの UUID を確認
sudo blkid /dev/sda1

blkid … ブロックデバイスに関する情報を表示するコマンド。

[参考例]
/dev/sda1: UUID="dc69fc31-4a50-44e2-a3f7-f5648fea6f8d" TYPE="ext4" PARTUUID="386954cf-01"
※ここで表示される UUID を後で使います。


(2) /etc ディレクトリに移動
cd /etc


(3) fstab のバックアップをとる
sudo cp fstab fstab_backup2
※RAMディスクを設定する時に一度バックアップをとっているはずなので、ファイル名が重複しないようにします。
ls コマンドでファイル名の一覧を確認できますので、重複しないように一応確認しておいて下さい。


(4) fstab に追記
sudo nano fstab

[編集前(一部抜粋)]
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1

[編集後(一部抜粋)]
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
#/dev/sda1       /media/usb0     ext4    defaults,noatime  0       0
UUID=dc69fc31-4a50-44e2-a3f7-f5648fea6f8d /media/usb0     ext4    defaults,noatime  0       0
/dev/sda1 で指定してもいいのですが、環境やUSBメモリを挿す順番で変わる場合があります。
※より確実に指定するために UUID で設定します。

Ctrl + O で上書き、Ctrl + Xnano を終了します。


(5) Raspberry Pi を再起動
sudo reboot


(6) df コマンドでマウント先を確認
df

[参考例]
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        3743376 3461876     71632  98% /
devtmpfs          469708       0    469708   0% /dev
tmpfs             474028       0    474028   0% /dev/shm
tmpfs             474028    6412    467616   2% /run
tmpfs               5120       4      5116   1% /run/lock
tmpfs             474028       0    474028   0% /sys/fs/cgroup
/dev/mmcblk0p1     61384   20312     41072  34% /boot
tmpfs              94808       0     94808   0% /run/user/1000
/dev/sda1       30280032      16  30280016   1% /media/usb0

マウント先が /media/usb0 になっていればOKです。


Raspberry Pi からUSBメモリを取り外す場合

Raspberry Pi からUSBメモリを取り外す場合、アンマウントする必要があります。
アンマウントせずにいきなり取り外すと、ファイルシステムが壊れてデータの読み書きができなくなる可能性があります。

(1) USBメモリをアンマウントします。
sudo umount /media/usb0

(2) Raspberry Pi からUSBを取り外しできます。


各種・設定方法

【準備】 Raspberry Pi 2 を用意してみよう
(1) Raspberry Pi 2 の OS をインストールする
(2) IPアドレスを設定
(3) システム時刻を日本に設定
(4) RAMディスクを使って、micro SDを長寿命化
(5) Raspberry Pi にUSBメモリをマウント
(6) ファイアウォールを設定
(7) samba を導入して、共有フォルダを作る



カテゴリー:Raspberry Pi | タグ:
コメント(0)トラックバック (0) | 2016年04月01日 (金)19時09分

Raspberry Pi、RAMディスクで micro SDを長寿命化

このページの目標

Raspberry Pi のメモリ上に RAMディスク を作り、ログファイルやキャッシュ等をそこへ書き込みます。
また、swap機能を切って、メインメモリと補助記憶装置のやりとりを減らします。

RAMディスク
  • コンピュータのメインメモリ上に確保して、補助記憶装置と同じように利用できる領域のこと。
    電源を切ったり再起動すると、内容は失われます。

swap
  • メインメモリであまり使われないデータを補助記憶装置に移して空き領域を作ったり、
    そのデータを使う時はメインメモリに書き戻して、使える状態にする仕組み。

Raspberry Pi 2 は補助記憶装置に micro SD を使っています。
しかし、SDカードやUSBメモリ等のフラッシュメモリは、データを保存するメディアとして寿命がかなり短いです。
そのため micro SD がなるべく長持ちするように、書き込みを減らします。


swap を無効にする

(1) swapの確認。
次のコマンドで、現在のswapの状態を確認できます。
free


(2) swapを無効化。
sudo swapoff --all


(3) 再起動すると復活するので、swapが自動起動しないようにパッケージを削除。
sudo apt-get remove dphys-swapfile


(4) Raspberry Pi を再起動。
sudo reboot


(5) 再起動したら、swapを確認。
swapの使用量が0になっていればOKです。
free


一時フォルダとログファイルをRAMディスクにマウント

(1) /etc ディレクトリに移動。
cd /etc


(2) fstab のバックアップをとる。
sudo cp fstab fstab_original


(3) fstab を編集する。
sudo nano /etc/fstab

[ファイルの末尾に追加]
# 一時フォルダをRAMディスクにマウント
tmpfs                   /tmp            tmpfs    defaults,size=32m,noatime,mode=1777      0       0
tmpfs                   /var/tmp        tmpfs    defaults,size=16m,noatime,mode=1777      0       0
# /var/log をRAMディスクにマウント
tmpfs                   /var/log        tmpfs    defaults,size=32m,noatime,mode=0755      0       0

Ctrl + O で上書き、Ctrl + Xnano を終了する。


ログファイルの設定を変更

(1) /etc ディレクトリに移動。
cd /etc


(2) rsyslog.conf のバックアップをとる。
sudo cp rsyslog.conf rsyslog.conf_original


(3) rsyslog.conf を編集する。
sudo nano rsyslog.conf

以下のログファイルだけ残すように変更。
/var/log/auth.log
/var/log/syslog
/var/log/daemon.log

[変更前]
###############
#### 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

[変更後]
###############
#### 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

Ctrl + O で上書き、Ctrl + Xnano を終了する。


rc.local を編集

(1) /etc ディレクトリに移動する。
cd /etc


(2) rc.local のバックアップをとる。
sudo cp rc.local rc.local_original


(3) rc.local を編集する。
sudo nano rc.local

ログを記録するプログラムでは、ディレクトリが無いとエラーになる場合があります。
その対策として起動時に、RAMディスクにディレクトリを作成します。
下記を参考に、コマンドを追加して下さい。

[変更前]
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

exit 0

[変更後]
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

# 
# RAMディスクに自動的にフォルダを追加
# 
mkdir -p /var/log/ConsoleKit
mkdir -p /var/log/samba
mkdir -p /var/log/fsck
mkdir -p /var/log/apt
mkdir -p /var/log/ntpstats
chown root.ntp /var/log/ntpstats
chown root.adm /var/log/samba
touch /var/log/lastlog
touch /var/log/wtmp
touch /var/log/btmp
chown root.utmp /var/log/lastlog
chown root.utmp /var/log/wtmp
chown root.utmp /var/log/btmp

exit 0

Ctrl + O で上書き、Ctrl + Xnano を終了する。


Raspberry Pi を再起動

sudo reboot


以上で、RAMディスクの設定は終了です。


各種・設定方法

【準備】 Raspberry Pi 2 を用意してみよう
(1) Raspberry Pi 2 の OS をインストールする
(2) IPアドレスを設定
(3) システム時刻を日本に設定
(4) RAMディスクを使って、micro SDを長寿命化
(5) Raspberry Pi にUSBメモリをマウント
(6) ファイアウォールを設定
(7) samba を導入して、共有フォルダを作る



カテゴリー:Raspberry Pi | タグ:
コメント(0)トラックバック (0) | 2016年04月01日 (金)19時07分

Raspberry Pi のシステム時刻を変更する

このページの目標

Raspberry Pi は初期状態だと、システム時刻が世界標準時間に設定されています。
このページでは、日本標準時間に固定する方法を説明します。


Raspberry Pi の現在時刻を表示してみる

Teraterm で Raspberry Pi につなぎ、次のコマンドを実行してみましょう。
date

現在の時刻とズレているはずです。


時刻を日本に合わせる

次のコマンドを実行します。
sudo timedatectl set-timezone Asia/Tokyo

現在時刻を表示してみます。
date

現在の時刻と合致しているはずです。

しかし、1つ大きな問題があります。
Raspberry Pi を再起動すると、システム時刻が世界標準時間に戻ってしまいます。
次の項目で、起動時にシステム時刻を変更してみます。


起動時にシステム時刻を変更する

(1) /etc/init.d/ ディレクトリに移動。
cd /etc/init.d/


(2) 起動時に実行するスクリプト autorun_date を新規作成、編集する。
sudo nano autorun_date

[書き込む内容]
#!/bin/sh
### BEGIN INIT INFO
# Provides: mathkernel
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: mathkernel
### END INIT INFO

#システム時刻を日本に合わせる
sudo timedatectl set-timezone Asia/Tokyo

Ctrl + O でファイルを保存、Ctrl + Xnano を終了します。


(3) スクリプトに実行権限を与える
sudo chmod 755 autorun_date

chmod … ファイルの読込・書込・実行の権限を変更するコマンド。change mode の略。


(4) スクリプトの権限を確認する。
ls -l autorun_date

ls … ファイルやディレクトリの情報を一覧表示する。
-l … lsコマンドのオプション。パーミッション、オーナー名、グループ名などを表示する。

次のような結果が表示されればOKです。
pi@raspberrypi:/etc/init.d $ ls -l autorun_date
-rwxr-xr-x 1 root root 324 Mar 23 13:45 autorun_date


(5) スクリプトが自動実行するように、システムに登録する。
sudo update-rc.d autorun_date defaults


(6) Raspberry Pi を再起動。
sudo reboot


(7) 再起動したら、再び Teraterm でつないで現在時刻を確認。
date

これで現在の時刻と合致していれば、設定は終了です。


各種・設定方法

【準備】 Raspberry Pi 2 を用意してみよう
(1) Raspberry Pi 2 の OS をインストールする
(2) IPアドレスを設定
(3) システム時刻を日本に設定
(4) RAMディスクを使って、micro SDを長寿命化
(5) Raspberry Pi にUSBメモリをマウント
(6) ファイアウォールを設定
(7) samba を導入して、共有フォルダを作る



カテゴリー:Raspberry Pi | タグ:
コメント(0)トラックバック (0) | 2016年04月01日 (金)19時05分
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。