FreeBSDにipfwを導入する 。まずは基本設定編
はじめに
前回はipfwのマニュアルに目を通して、基本的な設定例を確認して用意されている機能の理解を少しだけ掘り下げました。今後は実際のipfwの動作を見ながら、各設定の検証をしていきたいと思います。その為にも、まずは実機で動作する環境までの準備を進めてみたいと思います。という訳で今回はipfwの初期導入の触りをお届けします。
インストール参考
https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/firewalls-ipfw.html
全体の流れ
ipfwはFreeBSDのカーネルモジュールとして含まれているので、インストールをしたりする必要はありません。ざっくりと下記の手順に沿って導入します。
※ipfwを有効にする時は必ずコンソール上で行いましょう。sshで接続してリモート上で実行すると必ず痛い目に遭います。
1)/etc/rc.firewall のサンプルファイルを複製する。(/usr/local/etc/ipfw.rules等)
2)ipfw.rulesファイルを編集して、ルールを定義する。
3)/etc/rc.confに下記記載して有効にする。
[/etc/rc.conf] firewall_enable="YES" firewall_logging="YES" firewall_script="/usr/local/etc/ipfw.rules"
4)ipfw起動
# /etc/rc.d/ipfw start
5)ipfwルール確認
# ipfw -a list
6)通信のログの確認
# less /var/log/security
7)何かあった時(停止)
# /etc/rc.d/ipfw stop
補足
コピー元のファイル(/etc/rc.firewall)には、firewall_typeが定義されていて下記の種類があります。
使用可能なタイプは次のとおりです。
open:すべてのトラフィックを通過させます。
client:このマシンのみを保護します。
simple:ネットワーク全体を保護します。
closed:ループバックインターフェイスを除き、IPトラフィックを完全に無効にします。
workstation:ステートフルルールを使用してこのマシンのみを保護します。
UNKNOWN:ファイアウォールルールの読み込みを無効にします。
filename:ファイアウォールルールセットを含むファイルのフルパス。
これらを利用するには、利用するには、rc.confに下記の様に1行追加しましょう。
firewall_type="open"
ここまでがipfwの導入の基本的な手順になります。これからは引き続き設定ファイルを編集していく事で、実際の動作検証を行っていきたいと思います。今日のところはここまで。