ox0xo infosec tutorial

ファイアウォール

2018-08-21

ファイアウォールを操作する

コマンド

ファイアウォールを起動する

# systemctl start firewalld
enp0s8にpublicゾーンを割り当てる

# firewall-cmd --zone=public --change-interface=enp0s8 --permanent
publicゾーンに外部からTPC80番ポートへの通信を許可する

# firewall-cmd --add-port=80/tcp --zone=public --permanent
最新のfirewall設定を反映させる

# firewall-cmd --reload
現在有効なゾーンを一覧表示する

# firewall-cmd --get-active-zone
publicゾーンの詳細を表示する

# firewall-cmd --list-all --zone=public

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3, enp0s8
  sources:
  services: ssh dhcpv6-client
  ports: 80/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

一味違うファイアウォールを構築するための情報

firewalldはiptablesのラッパーとして動作する。

iptablesはINPUT OUTPUT FORWARDの3つのルールの組み合わせで動作する。

  • INPUT ホスト宛のパケット向けのルール
  • OUTPUT ホストから送信されるパケット向けのルール
  • FORWARD ホストを経由して他のホストへ転送されるパケット向けのルール

firewalldは基本的にIPNUTに作用するのでホスト(エンドポイント)のファイアウォールとしての運用が基本となる。 ルータとして構成したCentOSにファイアウォール機能を付与する場合はFORWARD-PORTSを設定する事。

サンプル構成

client
  172.16.0.1/24
router-fw
  enp0s8 : 172.16.0.100/24
  enp0s9 : 192.168.1.100/24
  enp0s10: 192.168.2.100/24
proxy
  192.168.1.1/24
www
  192.168.2.1/24

ルーターの設定

external (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s8
  sources:
  services: ssh
  ports:
  protocols:
  masquerade: no
  forward-ports: port=8080:proto=tcp:toport=:toaddr=192.168.1.1
  source-ports:
  icmp-blocks:
  rich rules:

internal (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s10
  sources:
  services: ssh mdns samba-client dhcpv6-client
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

dmz (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s9
  sources:
  services: ssh
  ports:
  protocols:
  masquerade: no
  forward-ports: port=80:proto=tcp:toport=:toaddr=192.168.2.1
  source-ports:
  icmp-blocks:
  rich rules:

ルーティングプロトコルを通過させる

ルーターはOSPFやBGPなどのプロトコルに則って経路情報をやり取りします。 ファイアウォールで経路情報がブロックされるとルーターが動作しなくなります。 add-protocolsを使ってospfやbgpのプロトコルに通過許可を出しましょう。

# firewall-cmd --add-protocol=ospf --zone={ゾーン名} --parmanent

IPマスカレード/NAPTって?

内部に複数のプライベートIPを持つネットワークが、ルータを通じて外部に通信するための手法です。 ルーターはプライベートIPを外部に転送する際グローバルIPに変換します。 グローバルIPは1つ(ルータのIP)しかないので複数のIPを区別するためにポート番号を利用します。

  • プライベートIP-A(10.10.10.1)はグローバルIPのポート10001
  • プライベートIP-B(10.10.10.2)はグローバルIPのポート10002
  • プライベートIP-C(10.10.10.3)はグローバルIPのポート10003

このようなポートを利用した1対Nのアドレス変換がIPマスカレード/NAPTです。 firewwalldではIPマスカレードは出口インタフェース(グローバルIPが割り当てられているNIC)に指定します。

参考

http://zokibayashi.hatenablog.com/entry/2017/11/07/001411

https://qiita.com/kenjjiijjii/items/1057af2dddc34022b09e

http://www.atmarkit.co.jp/ait/articles/1602/18/news019_2.html


Similar Posts

Content