Sambaを使ったファイルサーバの再構築

ファイルサーバを再構築した。

理由は2つ。P2Pファイル同期ソフト「Syncthing」とCrystalDiskInfoに似たソフト「CrazyDiskInfo」を使いたかったからだ。
これまでのOS、CentOS7.6ではどうも導入方法が分からなかったので、Ubuntu20.04LTSに乗り換えた。

以下はその備忘録である。

【前提条件】

  • OSをインストールするディスク以外のディスクは外しておく。
  • ファイルサーバ内のデータは別のHDDに保存しておく。

Ubuntu20.04をダウンロード・インストールする

Ubuntu Desktop 20.04 LTSをhttps://jp.ubuntu.com/downloadからダウンロードし、インストールする。Desktop版なのはSyncthingをブラウザで使いたいため。

なお、インストール中にアップデートを入れる項目にチェックを入れないと、インストール完了後に起動出来ない事態が発生した。

インストールについてはウィザードに従っていけば良いので特に記載はしない。

rootを有効化する

$ sudo passwd root
[sudo] password for UserName ←自身のパスワードを入力する。
New password: ←rootパスワード設定
Retype new password: ←確認再入力
passwd: password updated successfully

ネットワークを設定する

タスクバーのネットワーク画面でIPアドレスを固定する。

システム最新化

# apt update
# apt upgrade

vimのインストール・設定

# apt install vim

# vi /etc/vim/vimrc

" 文字コードを指定する
set encoding=utf-8

" ファイルエンコードを指定する
set fileencodings=utf-8,iso-2022-jp,sjis,euc-jp

" 自動認識させる改行コードを指定する
set fileformats=unix,dos

" 検索履歴を50個残す
set history=50

" 検索時に大文字小文字を区別しない
set ignorecase

" 検索語に大文字を混ぜると検索時に大文字を区別する
set smartcase

" 検索語にマッチした単語をハイライトする
set hlsearch

" 行番号を表示する
set number

" 括弧入力時に対応する括弧を強調する
set showmatch

" ウィンドウ幅で行を折り返す
set wrap

Sudoの設定

# apt install sudo

# visudo
最終行に追記
UserName ALL=(ALL:ALL) ALL

# vi /etc/pam.d/su

auth required pam_wheel.so group=adm ←コメントを外す

# usermod -G adm UserName

SSHサーバ構成

# apt -y install openssh-server

rootログインを禁止 & SSHポートを変更する。

# vi /etc/ssh/sshd_config
PermitRootLogin no

SSHポートナンバー変更

# vi /etc/ssh/sshd_config
#Port 22 → Port 12345(コメントを外す)
# systemctl restart sshd

ファイアウォールのインストール・設定

  1. ソフトウェアからgufwを検索してインストールする。
  2. インストール後、全てのソフトウェアから起動。
  3. statusをONにしてルールを作成する。
  4. ルール → プラスボタンと移行し、簡易タブをクリック。名前フォームにSSH、ポートフォームに12345を記入(それ以外はそのまま)し、追加ボタンを押す。
  5. サービスタブをクリックして、ApplicationからSambaを選択し、追加ボタンを押した後に閉じるボタンを押す。

ルールにSambaとSSHが追加されているのを確認し、ウィンドウを閉じる。

===ここからはTera Termで操作する===

HDD(データ保管用)の接続・マウント

サーバをシャットダウンをして、HDD(データ保管用)を接続後に起動する。
「ディスク」で接続を確認したら、dev/sdb1をext4でフォーマットしマウントする。

フォルダを作る。

# mkdir -p /mnt/Data/Base/

# mount /dev/sdb1 /mnt/Data/

UUIDを調べる。

#blkid(dev/sdb1のUUIDをメモする)

fstabにUUIDを記述する。

# vi /etc/fstab/

#dev/sdb1
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /mnt/Data ext4 defaults 0 0

Sambaのインストール

# apt -y install samba

Sambaの設定

# vi /etc/samba/smb.conf

[global]
unix charset = UTF-8
dos charset = CP932
interfaces = 127.0.0.0/8 192.168.10.0/24
bind interfaces only = yes
log file = /var/log/samba/log.%m
log level = 1
map to guest = Never
usershare allow guests = no

[Base]
path = /mnt/Data/Base
browseable = yes
writable = yes
guest ok = no
valid users = UserName

[BackUp]
path = /mnt/BackUp/Base/
browseable = no
writable = yes
guest ok = no
valid users = UserName

# systemctl restart smbd

サーバをシャットダウンをして、HDD(データバックアップ用)を接続し起動する。
「ディスク」で接続を確認したら、dev/sdc1をext4でフォーマットしマウントする。

# mkdir -p /mnt/BackUp/Base/
# mount /dev/sdc1 /mnt/BackUp/

UUIDを調べる。

#blkid(dev/sdc1のUUIDをメモする)

fstabにUUIDを記述する。

# vi /etc/fstab/

#dev/sdc1
UUID=YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY /mnt/BackUp ext4 defaults 0 0

ディレクトリのパーミッションを変更する。

# chmod 0777 /mnt/Data/Base
# chmod 0777 /mnt/BackUp/Base
# reboot now

HDD2台が指定した場所にマウントされている事を確認したら完了。両方のHDDにデータをコピーする。

CrazyDiskInfoのインストール

【ダウンロード・インストール】

$ sudo wget http://download.opensuse.org/repositories/home:/tsuroot/xUbuntu_16.04/amd64/crazydiskinfo_1.0.2_amd64.deb

$ sudo apt install ./crazydiskinfo_1.0.2_amd64.deb

【実行】
# sudo crazy

【閉じる】
qを押す。

Syncthingのインストール

なお、ここは四苦八苦したので、記憶から思い出せるだけ引き出して書き連ねる。

最初に同期対象のWindows PC全てにSyncTrayzor(https://syncthing.net/downloads/)をインストールして起動しておく。

続いてサーバ側にSyncthingをインストールする。

$ sudo apt install curl
$ curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
$ echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
$ sudo apt-get update
$ sudo apt-get install syncthing

同期フォルダをデータ保管用HDD内に適当な名前で作成する。今回は/mnt/Data/Base/に「Syncthing」という名前でフォルダを作成した。

全てのソフトウェアから「Syncthing」で検索し、Start Syncthingをクリックする。
同様にSyncthing Web UIをクリックする。するとFirefox127.0.0.1:8384が開く。

===ここからブラウザで操作===

アップデートを終えたら、フォルダを追加ボタンをクリックし、一般タブからフォルダ名と同期するフォルダのパスを記入して保存する。
同期するWindows端末のIDが表示されたら、接続先デバイスとして追加する。
接続先デバイス追加後、同期対象フォルダを選択、フォルダの編集→共有タブを開き、共有したいデバイスにチェックを入れる。

===ここまでブラウザで操作===

Windows PC側に戻り、接続先デバイスにサーバを追加する。
同期対象フォルダを選択、フォルダの編集→共有タブを開き、サーバ名にチェックを入れる。

同様にファイルバージョン管理タブを開き、「ゴミ箱によるバージョン管理」を選択。1日後に完全削除するよう設定する。

同期対象フォルダにファイルを入れて同期されることを確認出来たら、完了。

以上