プロが教えるわが家の防犯対策術!

iptables でsshなどの接続可能な接続元の IPアドレスを指定したいのですが 指定したい先が固定IPではないので ダイナミックDNSを利用して指定したいです。
試しにそのまま以下のように指定してやると iptables起動時のダイナミックDNSのIPアドレスに対しては動作するようですがIPが変更された場合に対応できていないようです。

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -s xxx.dyndns.org -j ACCEPT

たとえば 1.1.1.1から2.2.2.2にダイナミックDNSの参照先が変わった場合 でも
1.1.1.1の時にiptablesを起動開始すると いつまでたっても1.1.1.1しか許可してくれません。
なおiptablesを再起動するときちんとその時点の値を認識してくれるので 2.2.2.2になった後再起動すれば2.2.2.2でアクセス可能になりますので 毎時再起動してやるとかで対応できなくもないのですが
瞬間的にとはいえiptablesを毎時止めるのは抵抗があります。

iptablesを再起動しなくてもダイナミックDNSのIPを反映させる方法は何かないでしょうか?

以上よろしくお願いいたします。

A 回答 (1件)

>iptablesを再起動しなくてもダイナミックDNSのIPを反映させる方法は何かないでしょうか?



リアルタイムで…とかいうのは少々難しいかと。
# まあ、DDNSの反映自体がリアルタイムで…が難しい場合もありますし。

cronでDDNSの正引きを行いIPアドレスが変化したらiptablesのチェーンに追加(以前のものは削除)する。
とかやる事になるかと。

iptables -A で追加するかiptables -I で挿入できますし、iptables -D で削除も可能です。
ルール番号の指定が問題かも知れませんが。
iptables -R で置き換えする方が楽…かも知れませんね。
iptables -N で専用のチェインを作っておいた方が、-I/-D/-Rを使う時には楽かも知れません。
# 新規チェイン作成でRedhat系の/etc/sysconfig/iptablesを編集の場合は少々手間かも知れませんが。

ちなみに……私ならばsshは非標準ポートに変更した上でiptablesでソースアドレスの制限は掛けない。
という運用にしますが……。
# もちろん、公開鍵認証のみにしてパスワード認証はしない。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!