前記事に書いたように、CentOS8 が晴れてEOLを迎えるためGWの有り余るヒマ時間貴重な休日を割いてUbuntuに移行した。二度とRHEL系は使わないからな!!バーカ!!
将来再度環境構築する際の自分用の備忘録として記載していく。
お品書き
- Ubuntuのインストールから初期設定まで
- 録画環境の構築(人様の記事を見ながら)
Ubuntuのインストール
- 特に言及することはなく、Ubuntu20.04のisoをRufusでUSBに焼きこみ、インストール。
- sdaにOS用のSSD、 sdb, sdcにデータ用のRaid1HDDをつないでいたので、sdaにインストールするよう設定。
- 参考: https://www.yokoweb.net/2020/05/04/ubuntu-20_04-lts-server-install/
Ubuntuのインストール後作業
サーバーの完全なシャットダウン・再起動
- Ubuntuの再インストール後、 「完全に」 シャットダウンする。
-
sudo shutdown
の後電源コードを物理的に抜き、5分放置、再度電源をつなげて起動。 - この作業を行わなかったがためにチューナーがエラーを吐き、1日費やした。
IPアドレスの固定・DNS設定
- ネットワーク内の別PCから操作するため。
- IP固定は個人的にはルータ側でMACで指定するのが好み。
/etc/netplan/99_config.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: false
dhcp6: false
addresses: [192.168.xxx.yyy/24]
gateway4: 192.168.xxx.1
nameservers:
addresses: [192.168.xxx.1, 8.8.8.8, 8.8.4.4]
sudo netplan apply
sshdの設定変更
- セキュリティ向上のため
- 直接sshd_configを設定するのではなく、
/etc/ssh/sshd_config.d/*.conf
を作成。
/etc/ssh/sshd_config.d/my_config.conf
# 接続ポートの変更
Port XXXXX
# ルートログインの禁止
PermitRootLogin no
# 公開鍵認証の有効化
# パーミッションを .sshは600, authorized_keysは700に設定
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# パスワード認証の制限(オプション)
# PasswordAuthentication no
# sshバージョンの制限
Protocol 2
sudo service ssh reload
- クライアント側では固めの鍵を作成しましょう。
-
ssh-keygen -t ecdsa -b 384 -f [鍵名]
-
- 参考:
firewall無効化
- より上位のルータで正しく制限されていることを確認の上実施。基本的には非推奨。
sudo ufw disable
- 参考: https://qiita.com/auto_masanori/items/3b4f60eb65d7db8ac48c
AppArmor無効化
- セキュリティの観点から無効化は非推奨。
sudo systemctl disable apparmor
- 参考: https://goto-linux.com/ja/2019/7/11/ubuntu-20.04-focal-fossa-linux%E3%81%A6apparmor%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/
rootのパスワード変更
- Ubuntu初期インストールにおいてrootの初期パスはなし。
sudo passwd root
パッケージマネージャの更新
sudo apt update
sudo apt upgrade
PostfixからGmail経由でメールを送信する
- 各種モニタリングの通知用。ウイルスチェック、RAID監視、SMART監視・・・
- 参考: http://www.ckenko25.jp/2019/05/gmail-%E7%B5%8C%E7%94%B1%E3%81%A7%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%92%E9%80%81%E4%BF%A1%E3%81%99%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB-postfix-%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B-for-ubuntu
ClamAVのインストール
- セキュリティのため。毎日深夜に実行するよう設定
# インストール
sudo apt install clamav clamav-daemon
# ログ関係でエラーが出るので以下を設定
sudo rm /var/log/clamav/freshclam.log
sudo touch /var/log/clamav/freshclam.log
sudo chown clamav:clamav /var/log/clamav/freshclam.log
# 設定ファイルの書き換え
# old: create 640 clamav adm
# new: create 640 clamav clamav
sudo vi /etc/logrotate.d/clamav-freshclam
# 定義更新
sudo freshclam
# サービス起動の確認
sudo service clamav-freshclam status
# 定期スキャンスクリプトの作成
sudo vi /root/script/clam-full.sh
sudo chmod +x /root/script/clam-full.sh
sudo mkdir /root/virus
# 定期スキャン設定
sudo crontab -e
# 0 2 * * * /root/script/clam-full.sh >> /var/log/clamav/clamav_scan.log
/root/script/clam-full.sh
#!/bin/sh
echo =========================================
date
hostname
clamscan / \
--infected \
--recursive \
--log=/var/log/clamav/clamscan.log \
--move=/root/virus \
--exclude-dir=^/boot \
--exclude-dir=^/sys \
--exclude-dir=^/proc \
--exclude-dir=^/dev \
--exclude-dir=^/var/log/clamav/virus
if [ $? = 0 ]; then
echo "Virus not found."
else
echo "Virus found."
cat /var/log/clamav/clamscan.log | mail -s "Server: Virus found" [RecievedErrorMail]@test.com
fi
Timezoneの設定
sudo timedatectl set-timezone Asia/Tokyo
- 参考: https://www.server-world.info/query?os=Ubuntu_20.04&p=timezone
ntpを日本のものに変更
- これをやらないと録画冒頭が10sec程切れて泣きを見る。
/etc/systemd/timesyncd.conf
[Time]
NTP=ntp.nict.jp
FallbackNTP=ntp1.jst.mfeed.ad.jp ntp2.jst.mfeed.ad.jp ntp3.jst.mfeed.ad.jp
systemctl restart systemd-timesyncd
PowerTopで省電力化
- 常に起動するサーバーなので省電力化する。
sudo apt install powertop tlp tlp-rdw
sudo powertop --auto-tune
sudo systemctl enable tlp
sudo systemctl start tlp
ファン制御
- サーバーを寝室に設置しているのでファンを制御し静穏化する。
sudo apt install lm-sensors fancontrol
sudo sensors-detect
sudo service fancontrol stop
sudo pwmconfig
mdadmで作成したRaid1ストレージの移行
- [おま環]一度解除し、再度作成してresyncする必要があった??
# 一度解除し、再度raid1で設定
# 通常の環境ならこの作業は必要ないように思う。
# どうも前環境の時点でデグレ運用していた模様。気づいていなかった…
mdadm --misc --stop /dev/md0
mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sdb1 /dev/sdc1
# 設定の保存とresyncしているかの確認
mdadm --detail --scan > /etc/mdadm.conf
cat /proc/mdstat
- fstabに設定して起動時マウント可能にする
-
sudo blkid
でuuidを確認
-
# /etc/fstab
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /share auto defaults 0 0
-
参考: https://qiita.com/wnoguchi/items/b31e268b6b7236cdf8db
- 異常発生時にメール通知する
/etc/mdadm/mdadm.conf
ARRAY /dev/md0 metadata= ....
# メール通知先を設定
MAILADDR [RecievedErrorMail]@test.com
- メールのテスト送信
mdadm --monitor --test --oneshot --scan
docker, docker-compose インストール
- docker
- docker-compose
sambaでネットワークファイル共有(Docker, Docker-compose利用)
- dockerで環境を汚さず共有。録画ファイル等を別PCで見るために利用。
docker-compose.yml
version: '2'
services:
samba:
image: dperson/samba
container_name: samba
ports:
- "139:139"
- "445:445"
volumes:
- /path/to/share:/mnt/pub
restart: unless-stopped
command:
"-s share;/mnt/pub;yes;no;no;samba;samba -u samba;<PASSWORD>"
# ---Commandの説明---
# 設定詳細は https://hub.docker.com/r/dperson/samba を確認
# Windowsからの接続なのでパーミッションで悩まないAdminにする。
# 共有用のディレクトリを用意し、Ubuntu上のシステムファイル等を共有しない。
-s "<name;/path>[;browse;readonly;guest;users;admins;writelist;comment]"
-u "<username;password>[;ID;group;GID]"
録画環境構築
前記事を記載した時点ではサーバーに直でインストールする方法の記事が多かったが、ここ1年でdockerで作成する方法が増えている。そもそもの本家MirakurunもDocker化しており、少し知識があれば誰でも手間なく録画サーバーを作成できるようになった。また、EPGStationもバージョンが上がりかなり使いやすくなっている。特に検索回りは楽になった。素晴らしい。
参考記事で丁寧に紹介されているため、参考記事を選定理由と共に述べるにとどめる。
-
こちらで紹介されている方法を使用した。
- 【完全解説】LinuxとPX-W3U4でEPGStation v2を構築する方法(PX-Q3U4/W3PE4/Q3PE4)
- この方法で動作することを確認。正常に動作している。
-
選定理由
- px4_drvでmirakurun 3.5を利用可能。
- Dockerfileがあり最悪自分での修正が容易、ただしコンテナ作成に結構な時間がかかる。
- 過去自分が利用していた方法に近い。
-
その他の方法
- tv-recorder | https://github.com/collelog/tv-recorder
- たぶんこれが一番楽だと思います。
- mirakurun 3.5を試してみたかったので選定から外した。
- 今回参考にした方法と組み合わせることで少量の改変でtv-recorderでも利用可能になりそう。
- mirakcやハードウェアエンコが使えそうな雰囲気がある。
- ラズパイ利用者やハードウェアエンコできる環境ならこちらの方がよい。
- 自分の場合、厳選したものを録画しCMカットして別のつよつよPCでソフトエンコしてるのでハードエンコの恩恵が薄い。
- 市販のTVレコーダーのようにとりあえず予約して見たら消すような使い方の人には重宝しそう。
あとがき
1年ちょっとでこれだけ快適に進化してるというのは驚いた。常に勉強することが一番の省力化なのだなと痛感するところです。
あと、スーパーカブの空気感が良い。みんなも録画しよう。