Alma Linux8 VPSにSyncthing
Alma Linux8のVPSにSyncthingをインストールして設定してみる。このVPSには当然X環境は無い。
インストール
たぶんデフォルトのパッケージに含まれる。
※間違い。おそらくepelリポジトリなので、無い場合は追加しておく。
dnf install syncthing
起動設定
rootで動作させる。
systemctl enable syncthing@root.service
systemctl start syncthing@root.service
同期用ポートのオープン
※この項はTailnet内でのみ使う場合は不要。trustedしか使わないので、ポートは既に空いている。
ポートが開いてないので、開けるのだが、Firewall Setupを参考にする。
これは、外部にポートを全公開してしまうが、全く問題は無い。
ただし、実際にはTailnetのVPN環境でしか使わず、それはtrustedゾーンになっているので、publicではなくtrustedでも十分。trustedの場合は、デフォルトですべてのポートが開いてるので、何もする必要はない。つまり、以下は行う必要がない。
sudo firewall-cmd --zone=public --add-service=syncthing --permanent
sudo firewall-cmd --reload
ちなみに「cat /usr/lib/firewalld/services/syncthing.xml」
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Syncthing</short>
<description>Syncthing is a Peer-to-Peer file synchronization service. Enable this option, if you plan to run the Synthing service.</description>
<port protocol="tcp" port="22000"/>
<port protocol="udp" port="21027"/>
</service>
制御用GUIポートのオープン
※この項はTailnet内でのみ使う場合は不要。trustedしか使わないので、ポートは既に空いている。
これについては注意。このままだと、制御GUIに誰でもアクセスできてしまう。何らかの保護をしないといけない。以下ではゾーンをpublicではなく、trustedにしているので注意。
※ここは間違い。trustedの場合はデフォルトで全ポートが開いてるので、何もする必要はない。
sudo firewall-cmd --zone=trusted --add-service=syncthing-gui --permanent
sudo firewall-cmd --reload
ちなみに「cat /usr/lib/firewalld/services/syncthing-gui.xml」
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Syncthing GUI</short>
<description>Enable this option in addition to the Syncthing option to allow traffic to the Syncthing web interface. (Be sure to secure it accordingly).</description>
<port protocol="tcp" port="8384"/>
</service>
GUIリッスンアドレスの変更
※この項はTailnet内でのみの利用でも必要。
制御用GUIポートをtrustedゾーンに対してオープンしても、デフォルトでは、ローカルホストからの接続しか受け付けない。これを変更する。
rootで起動しているため、/root/.config/syncthing以下に設定ファイルができている(バージョンによっては、/root/.local/state/syncthing)。ここのconfig.xmlを編集する。127.0.0.1だったところを、0.0.0.0に変更。
<gui enabled="true" tls="false" debugging="false">
<address>0.0.0.0:8384</address>
<apikey>bNFoMiwL2E7dRoLDGND2f99uR4dGkngM</apikey>
<theme>default</theme>
</gui>
そして以下を行う。
systemctl restart syncthing@root.service
制御画面
GUIポートを開放しているtrustedゾーンは、VPSのTailnet内からしかアクセスできない。同じTailnet内にあるパソコンのブラウザで「http://100.64.0.3:8384」などとしてアクセスする。
あとは、他のSyncthingと同じ扱いだ。ただし、パスワードを設定しないと「危険だ!」という警告が出続ける。この環境ではパスワードなど必要ないのでこれがうっとおしい。