LoginSignup
1
1

More than 5 years have passed since last update.

DNSを監視して動的にipfwのルールを追加/削除するツール.

Posted at

本文は「FreeBSD Advent Calendar 2017」の10日の記事です。
https://adventar.org/calendars/2797

1.事の発端

職場のメール環境は某大手メーカーが提供しているメールサービス上(本文では以降「クラウド」と書きます。)にあるのですが、FreeBSD上で構成したルータの/etc/rc.firewallにSMTP/IMAP用の穴をあけときました。

${fwcmd} add allow tcp from LOCAL-IP to SMTP-SERVER smtps,submission setup
${fwcmd} add allow tcp from LOCAL-IP to IMAP-SERVER imaps,pop3s setup

これなんですが、、、 専用サーバなら問題ないんですが、クラウドだとダメだったりします。実際設定直後は動作していましたが、しばらくして確認したらダメになっとりました。

理由は簡単です。クラウドサービスはIPアドレスがたまに変わります。

FreeBSDのFirewall(ipfw)は、hostnameを指定した場合でも名前参照は初回のみで、IPアドレスが変わっても動的に変化しません。

http://www.jp.freebsd.org/man-jp/search.html
日本語マニュアル RELEASE 10-1-RELEASE-K
ipfw抜粋

    numeric-ip | hostname
        ドットで区切った数字 4 つ組またはホスト名で指定した、1 つ
        の IPv4 アドレスが適合します。ホスト名の名前解決は、その
        規則がファイアウォールのリストに追加されるときに行われま
        す。

つまり、最初に挙げた設定は、専用サーバなら問題ありませんがクラウドだとダメなんですね。

2.DNSを監視してルールを追加削除する必要あります
同様の事で困った方はいるだろうと思ってMLの「FreeBSD-users-jp」に尋ねてみました。

https://lists.freebsd.org/pipermail/freebsd-users-jp/2017-March/001055.html
[FreeBSD-users-jp 96055] DNSを監視して動的にipfwのルールを追加/削除するツール.

すぐに回答いただきました!

https://lists.freebsd.org/pipermail/freebsd-users-jp/2017-March/001056.html
[FreeBSD-users-jp 96056] Re: DNSを監視して動的にipfwのルールを追加/削除するツール.

ありがどうございます。

3.実は、、
私のメール自動仕分けの設定が悪かったがため、メールを見落としていました(;_;)

返事がないと思い込み、自作のツールを作成していました。 せっかく作ったのでこちらで公開しています。

一応履歴機能がありまして、IPアドレスが変化してもしばらくは古いIPアドレスのルールを覚えている機能があります。

https://github.com/githubmatumoto/ipfw-dns-kanshi
ipfw-dns-kanshi

よろしければどうぞ(^_^;

以上です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1