fortigateをルータの代わりに設定してwebサーバをインターネットに公開しましょう。
ルータと比較した場合fortigateのメリットとして
・FWなので高セキュリティ
・webフィルターなど設定可能
・なんならウィルス対策も
などがありますね。
では以下に設定例を記載いたします。
その他、fortigateに関する記事はこちらにまとめていますのでご参照ください。
Contents
fortigateのnatの設定。cliでバーチャルIPを実装してdmzのサーバを公開しよう
今回はGUIの画面で設定する方法ではなくCLIでご紹介します。
CLIは「コマンドラインインタフェース」の略称ですね。コマンドプロンプトみたいな感じです。
CLIで設定するメリットはコンフィグを保存しておけばコンフィグファイル上で設定を修正してリストアすれば設定変更ができ管理しやすいことがあります。
CLIを開く方法はfortigateのバージョンによっても違うのですが
1.設定画面にアクセスして、右上の「_>」マークをクリックするとCLIで開くメニューが選択できる
2.左メニューからダッシュボードを選択すると下の方にCLIが開いている
3.またはSSHで接続できるならばteratermなどのコンソールソフトでログイン
などなどの方法があります。
インタフェースの設定
今回は
wan : PPPoEを設定、WAN側
internal: LAN側 192.168.1.1/24
dmz : DMZ側 192.168.2.1/24
としました。
config system interface
edit "wan"
set vdom "root"
set mode pppoe
set type physical
set role wan
set username "【PPPOEのID】"
set password 【PPPOEのPW】
edit "internal"
set vdom "root"
set type physical
set ip 192.168.1.1 255.255.255.0
set allowaccess ping https ssh http
set role lan
next
edit "dmz"
set vdom "root"
set type physical
set ip 192.168.2.1 255.255.255.0
set allowaccess ping https ssh http
set role dmz
next
end
ルーティング
デフォルトルートはPPPoEの設定から自動的に取得できるはずです。
DNS設定
config system dns
set primary 【プロバイダのDNS】
set secondary 【プロバイダのDNS】
end
NTPも設定しとこうか
config system ntp
set ntpsync enable
set type custom
set syncinterval 60
config ntpserver
edit 1
set server "133.100.9.2"
next
end
set server-mode enable
set interface "wan"
end
解説:133.100.9.2がNTPサーバのIPアドレスです。
公開サーバの設定
今回は下記のwebサーバを外部に公開します。
webサーバの設定
□ 領域はDMZ
□ DMZ側のIPアドレスは192.168.2.100/24
□ 公開用のグローバルは【GlobalIP】
としました。
webサーバのアドレス登録
config firewall address
edit "webserver"
set associated-interface "dmz"
set subnet 192.168.2.100 255.255.255.255
next
end
バーチャルIPを設定
config firewall vip
edit "【バーチャルIPの名前】"
set extip 【GlobalIP】
set extintf "wan"
set mappedip "webserver"
next
end
解説:
□ グローバルIPとローカルIPを紐付けます。適用はポリシーを作成して行います。(記事の下の方に記載しました)
IPPOOLを設定
config firewall ippool
edit "【IPPOOLの名前】"
set type one-to-one
set startip 【GlobalIP】
set endip 【GlobalIP】
next
end
ポリシーに適用
WAN側⇒DMZ側のポリシー
config firewall policy
edit 1
set name "webpub-1"
set srcintf "wan"
set dstintf "internal"
set srcaddr "all"
set dstaddr "【バーチャルIPの名前】"
set action accept
set schedule "always"
set service "DNS" "HTTP" "HTTPS"
set logtraffic all
next
end
解説:
□ editの数字は他のポリシーとかぶらないようにします。他のポリシーの数字の確認方法はコンフィグを参照します。「show」でコンフィグが表示されるのですがそれだとfortigateの全てのコンフィグ数千の行が表示されるのでポリシーのコンフィグのみ閲覧したい場合はまずポリシーの箇所に移行します。
「config firewall policy」
その後に「show」を実行するとポリシーのみのコンフィグが表示されます。
□ nameは任意です。
□ srcaddrはインターネット側からのアクセスなので全てのアドレスを対象にしています。
□ serviceはwebサービスのみ対象としたいため「DNS」「HTTP」「HTTPS」に限定しています。
□ scheduleは「always」としていますが時間を制限することもできます。
□ このポリシーでは「nat設定は無効」になりますが正解です。有効じゃなくて無効で正解です。
DMZ側⇒WAN側のポリシー
config firewall policy
edit 2
set name "webprivate-1"
set srcintf "dmz"
set dstintf "wan"
set srcaddr "webserver"
set dstaddr "all"
set action accept
set schedule "always"
set service "ALL"
set logtraffic all
set nat enable
set ippool enable
set poolname "【IPPOOLの名前】"
next
end
LAN側⇒WAN側のポリシー
config firewall policy
edit 3
set name "lan-wan"
set srcintf "internal"
set dstintf "wan"
set srcaddr "all"
set dstaddr "all"
set action accept
set status disable
set schedule "always"
set service "ALL"
set logtraffic all
next
end
LAN側⇒DMZ側のポリシー
config firewall policy
edit 4
set name "lan-wan"
set srcintf "internal"
set dstintf "dmz"
set srcaddr "all"
set dstaddr "all"
set action accept
set status disable
set schedule "always"
set service "ALL"
set logtraffic all
next
end
解説:こちらもとりえあず全ての通信を許可しています。
DMZ側⇒LAN側のポリシー
config firewall policy
edit 5
set name "lan-wan"
set srcintf "dmz"
set dstintf "internal"
set srcaddr "all"
set dstaddr "all"
set action accept
set status disable
set schedule "always"
set service "ALL"
set logtraffic all
next
end
解説:同じくとりえあず全ての通信を許可しています。
以上で完了だけど
以上でwebサーバがインターネットから閲覧できる設定ができました。
インターネット側から「http://【GlobalIP】」とすればwebサーバが起動していればアクセスできるはずです。
が、通常はドメインを取得して公開することが多いですね^^;
ドメイン取得は「バリュードメイン」などで年額数百円~数千円で取得可能ですのでお試しあれ。
fortigateのnatの設定。cliでバーチャルIPを実装してdmzのサーバを公開しよう~まとめ~
今回はCLIでの設定方法をご紹介しました。
GULで設定したい場合はこちらの記事も本記事と合わせてご参照ください。
最後まで読んでいただきありがとうございました。
その他、fortigateの他の記事はこちらの記事も合わせてご参照ください。