[FreeBSD-users-jp 96055] DNSを監視して動的にipfwのルールを追加/削除するツール.

Ryuji MATSUMOTO matumoto @ pluto.ai.kyutech.ac.jp
2017年 3月 7日 (火) 09:35:21 UTC


松元@福岡です.

こういうツールをご存知の方はいらっしゃいませんか.

FreeBSDのFirewall(ipfw)に hostnameを記載しても,ipfwが実行
された時に引いたIPアドレス固定になるようです.

http://www.jp.freebsd.org/man-jp/search.html
日本語マニュアル RELEASE 10-1-RELEASE-K
ipfw
---
	numeric-ip | hostname
        ドットで区切った数字 4 つ組またはホスト名で指定した、1 つ
        の IPv4 アドレスが適合します。ホスト名の名前解決は、その
        規則がファイアウォールのリストに追加されるときに行われま
        す。
---

上記だとhostname-IPアドレスの対応が変化した時に動かなくなるので,定期的
にDNSを参照して Firewallのルールを更新してくれるツールです.

具体的にやりたい事は,外部のSMTP/IMAPサーバのIPを監視しててIPアドレスに
変動があれば更新する.(具体的にはGmail/Office365.)

例えばimapサーバ向けにportを開けるipfwルール12340-12341があるとします.

imap.example.com : IPが192.0.2.1, 192.0.2.2とします. 

> 12340 allow tcp from LOCAL-IP to 192.0.2.1 dst-port 993
> 12341 allow tcp from LOCAL-IP to 192.0.2.2 dst-port 993

これIPが変化したら無効になります.なので,こんな感じで

while(1)
{
	sleep(1時間ぐらい);
	
	dig +short imap.example.com > ip-list.txt

	if(ip-list.txtの中身が変動した)
	{
		ipfwルール番号 12340-12341を削除する.
		ipfwルール番号 12340-12341の所に新しいルールを追加する.
	}
}

こういう事をやってくれるツールがどこかにありそうな気がするのですが.

--
松元隆二 


  


freebsd-users-jp メーリングリストの案内