はじめに
前回の記事で、Gemini Lake世代の最新SoCであるCeleron J4105を搭載したミニPCをご紹介しました。記事中でも触れたとおり、このミニPCは東京にある実家に設置し、在京キー局およびTOKYO MXの番組を録画することを目的として設置しました。
遠隔地録画サーバを設置する
遠隔地録画サーバとは
通常、録画サーバと呼ばれるサーバは自宅内に設置し、自宅で見る番組を録画することが多いと思われます。
一方で、今回設置する録画サーバは自宅のある名古屋から約300km離れた東京都内に設置され、その操作のほぼ全てをリモートで実施することになります。
番組表確認、録画予約、録画確認、録画ファイルの視聴、ダウンロードを全てインターネット越しで実施しなければなりません。
一方で、動画ファイルを無防備にインターネット上からアクセス可能にすることは公衆送信権の侵害として著作権法違反となります。
すなわち、個人で利用する用途ではないと見なされてしまいます。
そのため、LAN内で完結する自宅録画サーバとは異なり遠隔地録画サーバは綿密な計画と設計が必要となります。
用意するもの
- 録画サーバ用のPCと周辺機器
- 録画用のチューナー機器やカードリーダは通常の録画鯖と同じです
- 今回はCentOS7.5とPX-S1UD、USB2-ICCRを使います
- OS自体のセットアップは完了していることとします
- 一般利用ユーザは辞書型攻撃耐性の高いものを用意してください
- ポート開放等で外からアクセス可能な回線
- v6プラスやDS-Lite環境のようなNAPTされる回線はほぼ不可能です
- i-revoあたりの固定IP回線があるとなおヨシ(500円/月ですし)
- Google検索力と根気
Linux OSの設定
※この作業は設置前にローカルで実施します
※作業中にSSH設定を変更するので、SSH接続での設定も避けたほうが良いです
※当然ながら以下の内容はサンプルで、私が実際に設定した値とは異なります
※作業中にSSH設定を変更するので、SSH接続での設定も避けたほうが良いです
※当然ながら以下の内容はサンプルで、私が実際に設定した値とは異なります
カーネルのアップデート
CentOS 7.5のデフォルトカーネルは 3.10.0-862 です。
PX-S1UDチューナーのドライバはカーネル3.15以降でないと含まれていないため、カーネルをアップデートします。
今回は手っ取り早く、現状の最新カーネルである 4.17.14-1 を導入します。
導入は、ELRepoのリポジトリからyum経由で行います。
最新カーネルの導入に関しては以下の2記事が大変分かりやすいのでおすすめです。
SELinuxの無効化
SELinuxは、最近のLinux系OSに搭載されたセキュリティ機能です。
OSファイルの改変を防止する感じの機能なのですが、今回はガッツリと書き換えていきますので無効にします。
$ sudo getenforce Enforcing # SELinuxが有効状態 $ sudo vi /etc/selinux/config #SELINUX=enforcing SELINUX=disabled # enforcingをdisabledに変更する $ sudo shutdown -r now # 再起動する $ sudo getenforce #再起動後に確認 Disabled
SSHポート変更とアクセス制限の設定
Linux系のリモート操作と言えばtelnetかsshですが、今どきはセキュリティ面からもSSHが主流です。
が、SSHはデフォルト設定の22番ポートで待受をすると外部からものすごい攻撃を受けます。
仮に不正ログインの被害に合わなくとも、セキュリティログが汚染される上にPC自体にも負担がかかります。
そこで、SSHのポート番号を変更した上でTCP Wrapperによるホワイトリスト形式のアクセス制御で、許可したアドレス以外からの接続を拒否します。
$ sudo vi /etc/ssh/sshd_config Port 18782 # ポート番号を変更する。0~1023は予約済みなので避けること。 PermitRootLogin no # rootアカウントでのログインを拒否する PasswordAuthentication no # パスワード認証を拒否する $ sudo vi /etc/hosts.allow ALL : 192.168.0.0/255.255.0.0 # LAN内からのアクセスを全て許可する ALL : .iij4u.or.jp .transix.jp # 指定したドメインからのアクセスを許可する $ sudo vi /etc/hosts.deny ALL : ALL # 許可したもの以外は全て拒否する
ファイアウォールの設定
CentOS7からはfirewall-cmdを使って簡単にファイアウォール設定ができるようになりました。
とは言え、Ubuntuのufwほどではないですが……。
SSH、Mirakurun、EPGStationが利用するポート以外はすべて閉じておきます。
というのも、先に設定したTCP Wrapperでは制御できないものも多く、そもそもデフォルトでは通信は拒否されているためです。
$ sudo systemctl enable firewalld # ファイアウォールを自動起動に $ sudo systemctl start firewalld # ファイアウォールを有効化 $ sudo firewall-cmd --permanent --add-port=18782/tcp # SSHのポート $ sudo firewall-cmd --permanent --add-port=40772/tcp # Mirakurunのポート $ sudo firewall-cmd --permanent --add-port=8888/tcp # EPGStationのポート $ sudo firewall-cmd --permanent --remove-service=ssh # デフォルトのSSHポートを閉じる $ sudo firewall-cmd --reload
公開鍵認証によるSSHログイン設定
先ほど、SSHのパスワード認証を拒否する設定を行いました。
パスワード認証はリスト型攻撃や辞書型攻撃に脆弱なため、鍵暗号方式によるログインが安全でおすすめです。
一般的にはRSA 2048bitの公開鍵暗号が使われますが、これはすでに安全とは言い切れずなおかつパフォーマンスもいまいちです。
そこで、今回はパフォーマンスと安全性がより強力なed25519方式の暗号鍵を使います。
秘密鍵を漏らさない自信がある場合はEnter連打で良いですが、不安な場合はpassphraseに適当なパスフレーズを入れましょう。
$ ssh-keygen -t ed25519 Enter file in which to save the key (/home/*****/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): Enter same passphrase again: $ cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys # 鍵リストに追加する
/home/*****/.ssh フォルダ内の id_ed25519 ファイルがログイン時に使用する秘密鍵ファイルになります。
ログイン時に使用するコンピュータにコピーしておきます。
その他の設定(時刻同期、ネットワークアドレス設定など)
ここまでの設定でセキュリティ面の設定は終了ですが、利便性のためにも追加の設定をします。
録画サーバ的に1秒でもズレると困るのが内部時計ですので、より正確なNTPサーバと同期するようにします。
$ sudo vi /etc/chrony.conf # server 0.centos.pool.ntp.org iburst # centos.pool.ntp.org 行を削除する server ntp1.jst.mfeed.ad.jp iburst # インターネットマルチフィード社のNTPサーバを指定 server ntp2.jst.mfeed.ad.jp iburst server ntp3.jst.mfeed.ad.jp iburst
また、ネットワークアドレスをDHCPで取得する設定の場合、ルーターの再起動などでIPアドレスが変わってしまう可能性があります。
ルータ側でDHCP設定を変更しても良いですが、OS側でも設定可能です
$ sudo nmcli connection show NAME UUID TYPE DEVICE enp1s0 88bc6cae-d7e2-4e94-9fe2-cee0878cda72 ethernet enp1s0 $ sudo nmcli connection modify enp1s0 ipv4.method manual $ sudo nmcli connection modify enp1s0 ipv4.addresses 192.168.1.200/24 $ sudo nmcli connection modify enp1s0 ipv4.gateway 192.168.1.1 $ sudo nmcli connection modify enp1s0 ipv4.dns 192.168.1.1 $ sudo systemctl restart network
その他、ログローテーションの設定など(/etc/logrotate.conf)を編集するのもアリでしょう。
次の記事では、録画機器のセットアップを行います。
低スペサーバでは厳しいffmpegのビルド等も行います。
デージーネット
秀和システム
売り上げランキング: 93,243
秀和システム
売り上げランキング: 93,243