僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
NATのフィルタリング。
INPUT、OUTPUT、FORWARD すべてのデフォルトを DROP にする。
NATにDNSサーバ(コンテンツ、キャッシュ)を立てるが、 他所からの問い合わせには応じない。
# iptables -A INPUT -p udp -s $LOCAL_NET --dport 53 -j ACCEPT # iptables -A OUTPUT -p udp -d $LOCAL_NET --sport 53 -j ACCEPT # iptables -A INPUT -p udp --sport 53 -j ACCEPT # iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
念のため、↑のない状態で、かつデフォルトをACCEPTとした設定と
比較しておいた。REFUSEDが返っていたが、閉めた後は
connection timed out になった。
送信元を偽装したDNSアタックの片棒を担ぐ危険性は
減少したはずである。
後は -p tcp で portを 80とかにすればいいはず、かと思ったが、これでは NAT下のノードは、まだ外に出られない。DNSがこれだけで済むのは、鯖が 問い合わせを代行しているからであること を忘れていた。Webを見るためには、こんな設定も必要。
# iptables -A FORWARD -p tcp --sport 80 -j ACCEPT # iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
manを眺めているうちに -m $MODULE_NAME でモジュールを指定して、拡張
できることに気づいた。
例えば、-m multiport で --dport 80,22 とか記述できる。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。