DNSレコードの内容変更をメール通知する from さくらのレンタルサーバー

_netblocks.google.com の変更を能動監視したかったので、色々勉強も兼ねて。

1.DNS通知のPythonスクリプトを入手
ゼロからPythonスクリプトを書くのは時間がかかるので…以下Googleさんより。
dns-rr-monitor – Monitor a DNS RR, alert via email on change. – Google
Project Hosting

https://code.google.com/p/dns-rr-monitor/

2.Pythonスクリプト(dns_watcher.py)を配置
アップロードは方法は何でも良いけれど、さくらのファイルマネージャだとブラウザのみで完結できて楽。時代は変わった…
https://secure.sakura.ad.jp/rscontrol/rs/fileman2/
chmod 755 dns_watcher.py など実行権限つけるのを忘れずに。

3.Pythonスクリプト(dns_watcher.py)を書換え
まずは、
 MAILHOST = ‘[申込ユーザ名].sakura.ne.jp’

あとは地味な間違いも修正。
(誤) msg[‘Subject’] = ‘DNS-RR-Monitoer Alert: %s changed.’ % rr
(正) msg[‘Subject’] = ‘DNS-RR-Monitor Alert: %s changed.’ % rr

4.転送用メールアドレスの設定
上記3の通り、SMTPホストに [申込ユーザ名].sakura.ne.jp を使う場合、外部ドメインにメールを送ろうとすると、POP before SMTP の制限に弾かれる。


> telnet [申込ユーザ名].sakura.ne.jp 25
Trying *.*.*.*...
Connected to [申込ユーザ名].sakura.ne.jp.
---(中略)---
HELO [申込ユーザ名].sakura.ne.jp
250 *.sakura.ne.jp Hello *.sakura.ne.jp [*.*.*.*], pleased to meet you
MAIL FROM:alerts@[申込ユーザ名].sakura.ne.jp
250 2.1.0 alerts@[申込ユーザ名].sakura.ne.jp... Sender ok
RCPT TO:alerts-test@[外部ドメイン]
553 5.3.0 alerts-test@[外部ドメイン]... Please receive your mail before sending

回避のために、[申込ユーザ名].sakura.ne.jp 転送専用アカウントを作ってしまい、そこから本来飛ばしたいアラートメール送付先に転送してしまうと楽。


RCPT TO:alerts@[申込ユーザ名].sakura.ne.jp
250 2.1.5 alerts@[申込ユーザ名].sakura.ne.jp... Recipient ok

アカウントの作成は、メールアドレスの管理から作成&転送設定するだけ。簡単。
https://secure.sakura.ad.jp/rscontrol/rs/mail

5.cronでの呼び出し設定
今回は用途から考えると、一日に一回程度で十分。
実行日時は「月:毎月」「日:毎日」「時:*時」「分:*分」、
https://secure.sakura.ad.jp/rscontrol/rs/crontab

実行コマンドは以下。これで _netblocks.google.com のTXTレコード変更を検出すると、メールが送出される。


/home/[申込ユーザ名]/[格納パス]/dns_watcher.py -e [作成したメールアドレス]@[申込ユーザ名].sakura.ne.jp -f [送信元メールアドレス(任意のアドレス)] -r _netblocks.google.com

公開されているPythonのソースは分かりやすいので、TXTレコード以外の監視にも応用が効くので、他の用途にも活用できそう。
さくらはレンタルサーバ(≠VPS)なのに、500円/月でここまで出来るのは、個人向け・勉強用には本当に便利。有り難や。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする