FortiGateの設計/設定ガイド

FortiGateの設計・設定方法を詳しく書いたサイトです。 FortiGateの基本機能であるFW(ファイアウォール)、IPsec、SSL‐VPN(リモートアクセス)だけでなく、次世代FWとしての機能、セキュリティ機能(アンチウイルス、Webフィルタリング、SPAM対策)、さらにはHA,可視化、レポート設定までも記載します。初期化方法やバージョンアップなどの管理面も書いています。標的型攻撃を守るためのゲートウェイとしても導入されることが多いので、セキュリティ機能に関しては充実した記載を心がけます。

Eメールフィルタ(アンチスパム)

1.Eメールフィルタの機能について

・アンチスパム(AntiSpam)機能と考えてもらってもいいでしょう。

1.1 ForiGateのアンチスパム(AntiSpam)機能

・SMTP/POP3/IMAPといったメール通信の属性をスパムに該当するかどうかを照合する。
・チェック方法は、FortiGateのエンジンを使う(FortiGuardスパムフィルタリング)か、自分でホワイトリストやNGワードなどを設定する(ローカルスパムフィルタリング)である。
・ただし、SPAMメール対策専用機のForiMailがあるため、機能的には劣るというか、単純なことしかできない。たとえば、SPAMメールを隔離して保存するなどはFortiMailが必要。

1.2 対象プロトコル

ProxyベースとFlowベースで若干異なる。

モード SMTP POP3 IMAP MAPI
Proxy
Flow ×

※MAPI(Messaging API)は、Microsoftが開発したメールの連携機能(API)で、Outlookと連携したりする。ポート番号は135で待ち受け、実際には別のポートで動作したと思う。
ただ、プロキシベースにしても、画面上にMAPIの表示はない(理由は要確認)。


1.3 スパム判定属性

FortiGuardスパムフィルタリングの場合、以下の4つで判定します。

属性 内容
送信元IPアドレス FortiGuardのデータベースに基づき、送信元IPアドレスでチェック
送信元メールアドレスドメイン FortiGuardのデータベースに基づき、送信元メールアドレスのドメインでチェック
メール本文の不正URL メール本文のURLが、フィッシングなどのURLではないかをチェック。URLは消さないが、ハイパーリンクは削除する
スパムメールチェックサム メールのチェックサムを FortiGuard でチェックする。メール全体をチェックできると思えばいいが、少しでも変えられると有効な検査ではない

※アンチスパムエンジンやデータベースは、Fortinet社独自のものです。

※スパム送信は、FortiGuard Antispam サービスにスパムとして誤ってマークされた非スパムメールを通知するために活用できる。有効にすると、FortiGateはスパムとしてマークされたすべての電子メールの末尾にリンクを追加します。ユーザがリンク をクリックすると、電子メールが誤ってスパムとしてマークされた場合に、FortiGuard Antispam サービスに通知する。

1.4 アンチスパム検知後の動作

スパムアクションとして、以下の3つがありますが、プロトコルごとにできるできないがあります。

スパムアクション IMAP POP3 SMTP 補足
転送 そのまま転送
タグ サブジェクトかMIMEにタグ付けする
破棄 × × SMTPプロトコルで、自社メールサーバ保持する環境のみで破棄ができる

※スパム検知したメールを隔離保持したい場合は、メールセキュリティ専用製品のFortiMailで対応できます。

1.5 メールの添付ファイルの検査

添付ファイルの付いた標的型メール、ばらまき型メールなどが届くが、添付ファイルは、アンチウィルスにて検査する。

2.アンチスパム(AntiSpam)の設定

(1)表示機能設定

エントリーモデルでは、デフォルトでは表示されない設定になっている場合がある。
「表示機能設定」「セキュリティ機能」カテゴリの「Eメールフィルタ」をONにする。

(2)設定

・AVなどの設定と同様に、ポリシーに対して、作成したプロファイルを割り当てます。
・HTTPSなどのSSLでのメール通信の場合、SSLのdeepインスペクションを有効にする必要があります。

(3)プロファイルの設定

セキュリティプロファイル > Eメールフィルタ の「新規作成」ボタンを押す。

スパム検知とフィルタリングを有効にチェックすると詳細設定を表示します。

FotiGuardスパムフィルタリングでスパム判定したい属性にチェックします。全てチェックし、タグ付けしておけばいいと思います。

ローカルスパムフィルタリングとして、以下も設定できます。
・HELOコマンドのDNSチェック(SMTPのみ)
・ReturnEmailDNSチェック(Reply-toアドレスのDNSチェック)
・ブラック・ホワイトリスト

検知後の動作は、プロトコル単位にスパムアクションのプルダウンで選択します。
タグ付けの場合は、挿入場所の選択と挿入タグ文字列を日本語含め設定可能です。

3.アンチスパムのテスト

テスト用メールの作り方が以下に記載されている。
https://spamassassin.apache.org/gtube/
スペースを入れてはいけないなどのルールがあり、フォーマットのサンプルは以下にある。
https://spamassassin.apache.org/gtube/gtube.txt

DNSフィルタ/ビデオフィルタ/ファイルフィルタ

1.DNSフィルタ

1.1 DNSフィルタの概要やメリット

❶概要
・Webサイトに接続する前には、DNSで名前解決をするので、そのドメインでフィルタリングを行う。
・サブドメインでもフィルタができる。
・古いFortiOSでは、Webフィルタの中のインスペクションモードでDNSというのが存在した。
・CiscoUmbrellaはDNSフィルタの仕組みで、カテゴリ単位のペアレンタルコントロールもできる。PaloAltoの場合は、脅威をフィルタするのみで、URLフィルタの機能を踏襲しているわけではない。

❷利点
Webフィルタとは違い、DNSなので、SSLインスペクションが不要。HTTP以外の通信でも活用できる。
→とはいえ、Certificate Inspectionであれば、SSL復号や証明書は不要でFQDNまでフィルタできる。そういう意味ではWebフィルタと同じ
TLS1.3からは、SNIが暗号化されるので、FQDNまでのフィルタができないかと思っていたが、実際にはDNS over HTTPSなどを使ってEncryptedSNIにする必要があり、そこまでやっているところは非常に少ない。→この場合、DNSフィルタもできない

❸デメリット
・DNSフィルタはドメインのみで、URL単位ではないので、細かい制御ができない。たとえば、yahoo配下の危険なURLだけを止めるなどができないので、
利便性として難しい可能性がある。
・実情として、こなれていないというのもあり、DNSフィルタではなくURLフィルタを使っているところがほとんど

❹DNSフィルタの流れ
FortiGateをDNSサーバに指定する。PC→(DNS問合せ)→FGTという流れで、FGTがDNS問い合わせをしてチェック

1.2 設定方法

❶PCのDNSサーバをFortiGateにする
FortiGateのDHCP機能でIPアドレスを払い出していることが多いでしょう。
ネットワーク > インターフェース から LAN側のインターフェースに関して、DHCPサーバにおけるDNSサーバをインターフェースIPと同じ に設定する。

これで、PC側のDHCPでは、FortigateのLAN側のIPがDNSサーバとして割り振られます。

AWSで起動しているWindowsサーバ群などの場合、AWSのサーバ(末尾0.2など)がDNSサーバとして割り振られるので、固定で変更する必要がある。

❷表示機能設定
古いOSの場合、システム > 表示機能設定  で DNSデータベースを 有効にする。
ネットワーク> DNSサーバが表示されればOK

❸設定の有効化
ネットワーク> DNSサーバ で、新規作成 インターフェースをLAN側にし、モードをシステム設定DNSへ転送(フォワーダと思えばいいでしょう)
また、PCがこのDNSサーバ(Fortigate)にDNS問い合わせをすると、FortigateのDNSで設定されたDNSサーバにフォワーダで転送します。
このプロセスにより、DNSフィルタが行えます。

❹カテゴリの設定
セキュリティプロファイル>DNSフィルタ にて、フィルタするカテゴリを選択
詳しくは後述。

❺ポリシー設定
ポリシー&オブジェクト >  ファイアウォールポリシー にて、DNSフィルタを有効にします。
このとき、SSLのdeepインスペクションは必須ではない。

❻通信テスト
検索エンジンを見てみる。ブロックされることがわかります。
ログは、ログ&レポート、DNSクエリにて、列に「メッセージ」を追加する。
すると、以下のように、ブロックされたことがわかる
Domain belongs to a denied category in policy

1.3 設定詳細

(1)設定例

たとえば、検索エンジンなどをブロックしてみましょう。

(2)各種の設定パラメータ

❶事前に設定されたフィルタ
以下の4つのカテゴリがあり、レベルによってFortiGateが選定してくれている。

設定 意味 内容
Custom - 自分で選択
G General Audiences 子供が見ても安心。つまり、制限が一番厳しい
PG-13 Parental Guidance-13 13歳以下の子供には注意が必要 .
R Restricted 17歳未満の方は保護者の同伴が必要。GやPG-13に比べると制限は弱い

❷セーフサーチの強制
「Google, Bing, YouTube で 'セーフサーチ' を強制」のチェックがある。
この機能を有効にすると、Getメソッドに Safe=Active のフラグを有効にしたパケットを、検索エンジンへ送信します。
Google、Yahoo!などのセーフサーチに対応した検索サイトであれば、好ましくない検索結果を応答しないようにします。
結果的に、不正なサイトへ通信する可能性が低くなります。

2.ビデオフィルタ

(1)概要

・Youtubeなどの動画において、カテゴリであったり、チャンネルなどの細かい単位でフィルタができる
・セキュリティプロファイル > ビデオフィルタ から設定ができる。

・基本的にはWebフィルタと同じ考え方で、カテゴリベースでフィルタリングができる。
・deepインスペクションが必須である。
・アクションは、「許可」「モニタ」「ブロック」の3つ

(2)設定

a)セキュリティプロファイル > ビデオフィルタ にて「新規作成」ボタンを押す
b)名前を設定し、カテゴリごとにアクションを変更する。アクションの変更方法は、右クリック

c)Youtube動画を個別のブロックするには、YouTubeのチャンネルオーバーライドリストにて、「新規作成」からチャンネルIDを個別登録する。

3.ファイルフィルタ

(1)概要

・プロトコルおよびファイルタイプでのフィルタができます。
・たとえば、exeファイルをダウンロードしてくるのを拒否する。pdfやdocファイルを外部に送信するのをブロックするなどです。
・プロファイルを作成し、それをポリシーに適用します。

(2)設定方法

a)セキュリティプロファイル > ファイルフィルタ にて「新規作成」ボタンを押す

b)名前を設定し、ルールの「新規作成」

c)ファイルタイプなどを選択できる。

(3)設定例と動作確認

PDFファイルをブロックするプロファイルを作成してみます。
a)ファイルフィルタ にて「新規作成」
b)名前を「pdf」として、ファイルタイプを「pdf」、アクションを「ブロック」にして作成

c)作成されたプロファイルが以下です。

d)ポリシーに適用します。このとき、deep-inspectionも必須です。

e)ネット上からPDFファイルを取得。以下のように、取得ができない。

f)ログの確認
ログ&レポート > セキュリティイベント にて、右上の「ファイルフィルタ」を選択すると、ブロックされた(blocked)ログが確認できる。

(3)選択できるプロトコル

以下に記載があります。
https://docs.fortinet.com/document/fortigate/7.4.2/administration-guide/984084/file-filter

Protocol Proxy mode Flow mode
CIFS Yes Yes
FTP Yes Yes
HTTP Yes Yes
IMAP Yes Yes
MAPI Yes No
POP3 Yes Yes
SMTP Yes Yes
SSH Yes No

(4)選択できるファイルタイプ

以下サイトに記載があります。「.doc」「.ppt」などは指定できません。
https://docs.fortinet.com/document/fortigate/7.4.2/administration-guide/610893/supported-file-types

Type Description
.net Match .NET files
7z Match 7-Zip files
activemime Match ActiveMime files
arj Match ARJ compressed files
aspack Match ASPack files
avi Match AVI files
base64 Match Base64 files
bat Match Windows batch files
binhex Match BinHex files
bmp Match BMP files
bzip Match Bzip files
bzip2 Match Bzip2 files
cab Match Windows CAB files
chm Match Windows compiled HTML help files
class Match CLASS files
cod Match COD files
crx Match Chrome extension files
dmg Match Apple disk image files
elf Match ELF files
exe Match Windows executable files
flac Match FLAC files
fsg Match FSG files
gif Match GIF files
gzip Match Gzip files
hlp Match Windows help files
hta Match HTA files
html Match HTML files
iso Match ISO archive files
jad Match JAD files
javascript Match JavaScript files
jpeg Match JPEG files
lzh Match LZH compressed files
mach-o Match Mach object files
mime Match MIME files
mov Match MOV files
mp3 Match MP3 files
mpeg Match MPEG files
msi Match Windows Installer MSI Bzip files
msoffice Match MS-Office files. For example, DOC, XLS, PPT, and so on.
msofficex Match MS-Office XML files. For example, DOCX, XLSX, PPTX, and so on.
pdf Match PDF files
petite Match Petite files
png Match PNG files
rar Match RAR archives
rm Match RM files
sis Match SIS files
tar Match TAR files
tiff Match TIFF files
torrent Match torrent files
unknown* Match unknown files
upx Match UPX files
uue Match UUE files
wav Match WAV files
wma Match WMA files
xar Match XAR archive files
xz Match XZ files
zip Match ZIP files