綾小路龍之介の素人思考

iptablesの設定 ~ no-ipのアップデータが使うプロトコルとポートはtcp/8245

無料のダイナミックDNSサービスを使っているので、IPアドレスとFQDNの対応付けをIPアドレスが変わるごとに更新しなければならない。この設定を忘れていると最後の更新から90後にFQDN更新確認のメールが送られてくる。その中に記載されているリンクをクリックしてもいいのだけど、アップデータを導入しておけば手間が省ける。多くのサイトでno-ipのアップデータ導入法は解説されているが、iptablesをかけていると、アップデータとno-ipサーバ間の通信が遮断されてしまう恐れがある。

ログを見て予測されることは次のようなことである、自分のサーバで動いているアップデータはno-ipサーバにtcp/8245からインストール時に設定された更新間隔で更新情報を送り、その上で、数日おきにno-ipサーバからtcp/8245に更新のあったサーバの生存確認が送られてくる。図にすれば下のような感じだ。9割方嘘だと思う。なぜなら、ポートスキャナでポートスキャンしてみたところ、8245番はclosed。どうやって確認しているんだ?もしかして/etc/init.d/noip2に実行権が付いていなかったのか?chmod 755 /etc/init.d/noip2なのか?

+-----------+                         +--------------+
|           |         @30 min         |              |
|           |tcp/8245 ------> tcp/????|              |
| My Server |                         | no-ip Server |
|           |tcp/8245 <------ tcp/????|              |
|           |         @5  day         |              |
+-----------+                         +--------------+

上の図に示したIPパケットを許可するために、下のように設定を追加しました。

# iptables -A INPUT -p tcp --sport 8245 -j ACCEPT
# iptables -A OUTPUT -p tcp --dport 8245 -j ACCEPT

アップデータがデーモンとして起動しているかどうかを確認するために、下のようにコマンドを叩きました。

# /sbin/chkconfig --list
...
noip2           0:off   1:off   2:off   3:on    4:on    5:on    6:off
...

設定されていない場合は下のようにします。2つは等価です。

# /sbin/chkconfig noip2 on
# /sbin/chkconfig --level 345 noip2 on

僕はno-ipのアップデータはどこかのサーバと相互に通信し合うことを知らずにいました。というか、アップデータはOUTPUTしかしないものだと思い込んでいました。OUTPUTのポリシーはACCSPTなので、iptablesに特別な設定をしなくても更新されるものだとばかり思ってました。90日後にメールが送られてきました。でもおかげで、メール内のURLにアクセスすれば、アップデータが不要であることも勉強しました。懺悔。

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2008-08-01T19:13:26+09:00
  2. Modified: 2008-08-01T06:47:17+09:00
  3. Generated: 2017-06-01T23:09:18+09:00