「ipfw」の版間の差分
提供: セキュリティ
行1: | 行1: | ||
− | |||
− | |||
− | |||
[[ipfw]] (IP FireWall) とは、[[FreeBSD]] のパケットフィルタ型の [[ファイアーウォール]] です。また、[[ipfw]] ファイアーウォールを制御する [[ipfw]] コマンドです。 | [[ipfw]] (IP FireWall) とは、[[FreeBSD]] のパケットフィルタ型の [[ファイアーウォール]] です。また、[[ipfw]] ファイアーウォールを制御する [[ipfw]] コマンドです。 | ||
行9: | 行6: | ||
== 概要 == | == 概要 == | ||
− | |||
[[カーネル]] に組み込むことができます。[[ローダブルカーネルモジュール]]として利用できます。 | [[カーネル]] に組み込むことができます。[[ローダブルカーネルモジュール]]として利用できます。 | ||
[[Windows]] には、[[wipfw]] として移植されています。 | [[Windows]] には、[[wipfw]] として移植されています。 | ||
− | |||
* [[ipfw カーネルモジュール]] | * [[ipfw カーネルモジュール]] | ||
* [[ipfw のコマンドラインオプション]] | * [[ipfw のコマンドラインオプション]] | ||
* [[ipfw rc.confの設定]] | * [[ipfw rc.confの設定]] | ||
− | * | + | * ipfw ログを出力する |
− | * | + | * ipfw ステートフルを利用する |
− | * | + | * ipfw Webサーバへのアクセスを許可する |
− | * | + | * ipfw ICMPを許可する |
− | * | + | * ipfw DNS問い合わせを許可する |
− | * | + | * ipfw NTPを許可する |
− | + | ||
== 使い方 == | == 使い方 == | ||
− | |||
デフォルトの状態は、下記の通りです。 | デフォルトの状態は、下記の通りです。 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
行33: | 行26: | ||
65535 deny ip from any to any | 65535 deny ip from any to any | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
=== ipfw getsockeopt IP_FW_GET Protocol not available === | === ipfw getsockeopt IP_FW_GET Protocol not available === | ||
− | |||
[[ipfw]] がロードされていない場合、下記のエラーがでます。 | [[ipfw]] がロードされていない場合、下記のエラーがでます。 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
行46: | 行37: | ||
# kldload ipfw | # kldload ipfw | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
=== ステートフル === | === ステートフル === | ||
− | |||
keep-state は、 check-stateとセットで使用します。 | keep-state は、 check-stateとセットで使用します。 | ||
行56: | 行45: | ||
add pass tcp from any to any 80 setup keep-state | add pass tcp from any to any 80 setup keep-state | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
=== ICMP を許可する === | === ICMP を許可する === | ||
− | |||
[[ICMP]] を許可する例です。 | [[ICMP]] を許可する例です。 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
add allow icmp from any to any | add allow icmp from any to any | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
=== Webサーバへのアクセスを許可する === | === Webサーバへのアクセスを許可する === | ||
− | |||
[[Webサーバ]] を起動して、サービスを提供している場合に ポート番号 80 にアクセスを許可する例です。 | [[Webサーバ]] を起動して、サービスを提供している場合に ポート番号 80 にアクセスを許可する例です。 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
add allow pass tcp from any to me 80 setup | add allow pass tcp from any to me 80 setup | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
=== DNS問い合わせを許可する === | === DNS問い合わせを許可する === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
行80: | 行63: | ||
add allow udp from me to any 123 keep-state | add allow udp from me to any 123 keep-state | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
== 関連項目 == | == 関連項目 == | ||
* [[ファイアーウォール]] | * [[ファイアーウォール]] | ||
* [[FreeBSD]] | * [[FreeBSD]] | ||
− | * | + | * pf |
* [[wipfw]] | * [[wipfw]] | ||
* [[iptables]] | * [[iptables]] | ||
+ | <!-- vim: filetype=mediawiki | ||
+ | --> |
2015年9月22日 (火) 13:48時点における最新版
ipfw (IP FireWall) とは、FreeBSD のパケットフィルタ型の ファイアーウォール です。また、ipfw ファイアーウォールを制御する ipfw コマンドです。
読み方
- ipfw
- あいぴー えふだぶりゅー
目次
概要
カーネル に組み込むことができます。ローダブルカーネルモジュールとして利用できます。 Windows には、wipfw として移植されています。
- ipfw カーネルモジュール
- ipfw のコマンドラインオプション
- ipfw rc.confの設定
- ipfw ログを出力する
- ipfw ステートフルを利用する
- ipfw Webサーバへのアクセスを許可する
- ipfw ICMPを許可する
- ipfw DNS問い合わせを許可する
- ipfw NTPを許可する
使い方
デフォルトの状態は、下記の通りです。
# kldload ipfw ipfw2 (+ipv6) initialized, divert loadable, nat loadable, default to deny, logging disabled # ipfw list 65535 deny ip from any to any
ipfw getsockeopt IP_FW_GET Protocol not available
ipfw がロードされていない場合、下記のエラーがでます。
# ipfw list ipfw: getsockeopt(IP_FW_GET): Protocol not available
ipfw をロードします。
# kldload ipfw
ステートフル
keep-state は、 check-stateとセットで使用します。
add check-state add deny tcp from any to any established add pass tcp from any to any 80 setup keep-state
ICMP を許可する
ICMP を許可する例です。
add allow icmp from any to any
Webサーバへのアクセスを許可する
Webサーバ を起動して、サービスを提供している場合に ポート番号 80 にアクセスを許可する例です。
add allow pass tcp from any to me 80 setup
DNS問い合わせを許可する
add allow udp from me to any 53 keep-state
NTP を許可する
add allow udp from me to any 123 keep-state