CentOS7 第4回 はじめての firewalld で作る Linuxルータ

こんにちは、後野です。

CentOS7 になれるため、チーム内の検証環境で利用しているサーバを CentOS7 で
作りなおしてみたいと思います。

作業対象となるのは、iptables で作成したLinuxルータ(NAT BOX)となります。

このサーバの用途を簡単に説明しますと、検証環境にも物理ファイアウォールがあるのですが、
プライベート側のセグメントを自由に使いたい、別なサーバのパケットが飛んできて、紛らわしい、
等があり、その都度、ファイアウォール設定を変更するのが面倒、iptables にもっと慣れようという
思いを込めて作ったサーバです。
※昔は open vpn も動かしていましたが、使わないので止めちゃいました。

 

環境説明

 

firewalld-nmcli-3

 

 

 

 

 

 

 

 

 

 

簡単に構成内容を記載しました。複数ある物理ホスト(今回の対象は vSphere5.0)でCentOSにNICをたくさんくっつけ、担当者毎にセグメントを持っています。
主にやっていることは、IPマスカレード、DNAT、SNAT、ポートフォワード、アクセス制御です。
検証内容によっては、グローバルからアクセスする必要が無いので、必要に応じて設定をする感じですね。

 

作業目標

rt1 サーバは4つの仮想スイッチと接続、配下のサーバは仮想スイッチ2につながった sv1,sv2 を
それぞれIPマスカレード、SNATでインターネット通信可能とします。

 

設定作業

 rt1 サーバNIC設定作業

NIC設定につきましては、石川さんの記事を参考に設定しました。
idが長く、面倒なので、デバイス名=IDへ変更しています。

 

rt1 ipv4転送有効化

centos7 から sysctl.d が出来ましたね、ファイル名は適当に命名しました。

どのファイルに記載されているかを確認&適用します。

これでルーティング可能な状態となりました。

 

rt1 IP masquerade 有効化

グローバル側のインターフェースは最初から masquerade が有効な external を使いました。
public で masquerade を有効にするのとどちらにするか考えましたが、external を使う事にしました。
そしてプライベート側については、trusted へ統一しました。
firewall-cmd で変更する方が多いと思いますが、今回は nmcli での変更です。

ポリシー変更

ssh のポートをサーバ側で 2222 へ変更していたので、external ゾーンの22ポートを削除し
2222ポートを追加します。

 

これでrt1 サーバへは 22 ポート経由では SSHログインできず、2222経由でログイン可能な事を確認しました。

 

 

SNAT、DNAT設定 / FOWARD設定

sv1 に対するスタティックNAT設定、デフォルトチェインのアクション変更が man を見たところ
すぐにわからなかったので明示的にDROPを指定しました。

他に追加したポリシーは、クララの踏み台サーバからの配下のサーバへのsshログイン許可、
仮想スイッチ2に接続されたサーバからのインターネットアクセスの許可です。

iptables と違うと感じた点は、filter テーブルに追加する場合もテーブル指定が必須になったみたいですね。何度かエラーを出しながら下記コマンドで設定が入りました。
ランタイムゾーン、固定ゾーンの両方を設定するのは、慣れないと面倒です。

そして nat ,filter テーブル共に***_direct チェインに入れましたが、お作法的にどこに入れたほうが良いかわからずちょっと悩みました。

 

※グローバルIPアドレスは一部伏せております。

 

IPエイリアス追加

nat、ポリシー設定が完了し、masquarade されて外部へ出る sv2 については問題無かったですが、
スタティックNATの sv1 は戻りのグローバルIPがrt1 に設定されていない為、戻ってこれません。
そのため、sv1用のグローバルIPアドレスを追加します。

※グローバルIPアドレスは一部伏せております。
※nmcli を interactive モードで実施している為、プロンプトを表示

 

上記設定をもろもろ入れると、想定通りに動くようになりました。

今後、このサーバを経由した検証を行うに当たり、設定に詰まるところが出てきたら
続編でまたお伝えしたいと思います。

 

 

 

Share on LinkedIn
LINEで送る
Pocket

claraer

claraer