基本は全てbr0へinのルールで設定
何度も言うようだがeth0とeth1はブリッジ。
つまりIPアドレスに関して、どちらがIn側/Out側という概念はありません。
br0を通過しようとする時点でのパケットに対してSource/Destinationを中心にルールを記述していくため、Vyatta上でFWルールはbr0に対するinトラフィックに適用します。
DMZから外向きの設定
接続はこのようになっていることを想定。
DMZのホスト達はグローバルなIPが振られ、インターネット上のホストと自由に通信ができているはず。
これらのDMZホストから自由に通信ができて、かつDMZホスト宛の通信を任意に遮断します。
DMZ側のホストをグループにする
ホストはまとめて任意の名前でグループ化することができ、ルール設定にも使えます。
グループ化しておかないとすべてのホスト毎に設定を繰り返す羽目になるのでこれはありがたい。
set firewall group address-group dmzhosts description "dmz address"
set firewall group address-group dmzhosts address 192.0.2.50
set firewall group address-group dmzhosts address 192.0.2.55
set firewall group address-group dmzhosts address 192.0.2.101-192.0.2.200
アドレスは単体でも範囲でも指定できます。
DMZから外への通信を許可
まずデフォルトポリシーをDropに設定します。※テスト時はRejectのほうが使いやすい。
Vyattaのデフォルト=ルール番号10000で、最後に適用されるルールになります。
set firewall name ruleset01 default-action drop
ICMPの通過、established,relatedのパケット許可、SourceがdmzhostsグループのIPなら通信を許可します。
ルールにはすべてaccept またはdrop(reject)の設定が必要なので、最初に書いてから条件を入れていくのがよいでしょう。
set firewall name ruleset01 rule 1 action accept
set firewall name ruleset01 rule 1 protocol icmp
set firewall name ruleset01 rule 1 icmp type-name any
set firewall name ruleset01 rule 2 action accept
set firewall name ruleset01 rule 2 state established enable
set firewall name ruleset01 rule 2 state related enable
set firewall name ruleset01 rule 3 action drop
set firewall name ruleset01 rule 3 state invalid enable
set firewall name ruleset01 rule 4 action accept
set firewall name ruleset01 rule 4 source group address-group dmzhosts
ルール4でSourceがdmzhosts ならaccept していますね。
ルール2では、セッション確立済みや関連パケットも通すようにすることで、戻りの通信をaccept。
DNS(udp53)などもルール2の記述があればOKなので、related に入ってるのかと思う。
br0のinにFireWallルールを適用
FireWallのルールセットをインターフェイスに適用すれば見事TransParent FireWallの完成。
set interfaces bridge br0 firewall in name ruleset01
commit
※解除する場合はこう
delete interfaces bridge br0 firewall in name ruleset01
次回はDMZ宛の許可ルール設定。
まあDestination Portを指定するくらいなので大したことではないね。
1 件のコメント:
[...] ょっかいが出せるようになりました。 次はようやくFirewall設定かな。 [...]
コメントを投稿