VALUE-DOMAIN DDNS update shell script (on Synology RT2600ac)
VALUE-DOMAIN の DDNSをLinuxで使う。
1. 事前にで、下記のネームサーバを指定しておくこと。
ns1.value-domain.com
ns2.value-domain.com
2. を押して下記を確認
必要なパラメータ情報
ドメイン | example.com(あなたの取得したドメイン) |
---|---|
パスワード[変更] | ←できるだけ長く、かつ英数記号を入れましょう |
ホスト名 | * |
IPアドレス | xxx.xxx.xxx.xxx |
3. 次にチェックを入れて「変更」
ダイナミックDNS機能
4. テスト
https://dyn.value-domain.com/cgi-bin/dyn.fcg?
にブラウザでアクセスして更新できるかテストを行う。
なお、ここまででつまずくようであれば下記の公式ヘルプを参照
5. コードサンプル
valuedomainddnsIPupdate.sh
#/bin/sh</p> #VARIABLES #FQDN(ドメイン名): __DOMAINNAME__="" #パスワード: __PASSWORD__="" #ユーザー名(更新するホスト): __HOSTNAME__="" #外部アドレス: __MYIP__="" #外部IP取得 __MYIP__=`wget -q -O - "https://dyn.value-domain.com/cgi-bin/dyn.fcg?ip"` #echo ${MYIP} #value-domainのcgiがたまにbusyになるのでsleep sleep 5 #更新 wget -q -O - "https://dyn.value-domain.com/cgi-bin/dyn.fcg?d=${__DOMAINNAME__}&;p=${__PASSWORD__}&;h=${__HOSTNAME__}&;i=${__MYIP__}"
ここをみてすぐ書けたのでご参考に*1
念のためshは700にしておきましょう。
6. おまけ
実はSynology RT2600ac ルーターでDDNSプロバイダにVALUE-DOMAINがなかったためこれをCRONしてます。
/etc/crontab に追記したら
#synoservicectl --reload crond
を実行して完了
*1:蛇足になるのでコードサンプルに戻り値の処理は載せていません
Synology RT2600備忘メモ
(更新・追記あり)
RT2600acはSRM(管理OS)のバージョンアップで、ブルートフォース対策としてadminを無効化するよう促すようになった。
3回リトライでBanする設定を入れてあるので問題ないのだが、警告がうるさいので別ユーザをadminに設定した。
ssh接続ができなくなって驚いたが、なんとssh接続は無効化したadminのパスワードが参照されるらしい。どうなってんだこれ困ってる人いるだろ…
--2023/01追記--
RT2600acにSRM1.3が来た関係で上記は古くなった。
※ただし1.2系を使い続けるのであれば問題は上記のまま
1.3で変わった部分や移行についてメモを残す。
1.2→1.3へのバージョンアップで無効にしたadminパスワードがrootのパスワード、という危険な仕様は消えた。
代わりにこちらが手順となっているが注意もある。
上記を参考にsudo -iで使えという至極一般的な仕様に変わっているので、新たに導入する人はそれに従うといい。
(ただしそれだと厳密にはタイトルはウソである)
以前1.2系でログインしていた人などは以下に注意事項を
・/root 配下は初期化される(ファイル等は消えていた)
・/root/.ssh/authentication_keys は引き継がれる
・/etc/ssh/sshd_conf は初期化?される←重要
→ そのため、鍵ログインしていた場合鍵ファイル等はせっかく引き継がれているのに参照されずログインできない。
linuxのあるべきssh設定としては PermitRootLogin no やPasswordAuthentication no はやっておくべきなのでこの期に見直してみてはどうか。
メモ
sshd_config編集後のリスタートコマンド
# sudo synoservicectl --reload sshd