開始行:
#norelated
*Solaris でファイアーウォールを作ろう/其の4
*目次 [#ydf7c6fb]
#contents
*変更点の概要 [#ua87bd1a]
[[其の3>Solaris でファイアーウォールを作ろう/其の3]]で今...
-ルールにあて先アドレスを指定できるようにする。
-許可ルールを追加できるようにする。
-コマンドを使っての STREAM への fwall モジュールの挿入、...
-fwalladm コマンドから任意の順番でのルールの追加。
-複数のインターフェースを持つルータマシンでも動作するよう...
それと、機能追加では無いのですが、fwall モジュールのコー...
で、そのコードの読みやすく(あとで自分がわかりやすく?)...
fwallモジュールの関数名の変更
|CENTER:変更前 ----------> 変更後 |CENTER:機能|h
|fwall_add_rule() --> fwall_insert_rule()| 新ルールの追加...
|fwall_chk_rule() --> fwall_check_rule()| ルールに基づく...
|fwall_rm_rule() --> fwall_delete_rule()| 既存のルールの...
&br;
fwall モジュールに追加したマクロ
|マクロ名| 機能|h
|RULES() |現在の総ルール数をカウントする|
|WALKRULE() |指定したルール番号のルールへのポインタを得る|
|COMPARE_ADDR() |2つの IP アドレスの比較を行う|
各関数内の変更内容は、プログラム中のコメントを見ていただ...
*ご注意 [#h718c3b5]
毎度のことですが、PANIC するとまずいことになるマシンでは...
*ソースコードとダウンロード [#w1cd3e6d]
ソースファイル: [[fwall-0.4.tar.gz>http://github.com/down...
|>|CENTER:tar ファイルに含まれるファイルの概要|h
|Makefile|fwallモジュール、fwalladm コマンド用の makefile|
|fwall.c| fwall モジュールの本体。&br;設定されたルールに...
|fwall.h| fwall モジュール、fwalladm コマンド共通のヘッ...
|fwalladm.c|fwall モジュールのフィルタールールを変更する...
|fwallcnt|fwall の開始、停止を行うためのシェルスクリプト&...
*使い方 その他 [#jef1ef15]
**コンパイル&インストール [#n2bee6ca]
今回から、Makefile へのネットワークインターフェースに依存...
# make
/usr/local/bin/gcc -g -D_KERNEL -c -m64 fwall.c
/usr/ucb/ld -dn -r fwall.o -o fwall
/usr/local/bin/gcc -g -lnsl fwalladm.c -o fwalladm
# make install
/bin/cp fwall /kernel/strmod/sparcv9/fwall
/bin/cp fwalladm /usr/local/bin/fwalladm
/bin/cp fwallcntl /usr/local/bin/fwallcntl
**モジュールのロード [#ca5745af]
make install が終わった直後は、モジュールのロードも、ルー...
# /usr/local/bin/fwallcntl start
これによって、システム上のすべてのネットワークインターフ...
Usage: fwalladm
add rule <source address> <destination address> <acti...
insert rule <rule number> <source address> <destinati...
delete rule <rule number>
list rule
add interface <interface>
delete interface <interface>
list interface
# /usr/local/bin/fwalladm
>
[[其の3>Solaris でファイアーウォールを作ろう/其の3]]まで...
**ルールの追加 [#ff728b68]
新規のルールの設定の仕方は以下のようにします。
add rule <送信元アドレス> <あて先アドレス> <動作>
例)
# /usr/local/bin/fwalladm
> add rule 10.0.0.1 10.0.0.2 ALLOW
> add rule 10.0.0.1 10.0.0.3 ALLOW
> add rule 0 0 DENY
これは 10.0.0.1 から 10.0.0.2 と 10.0.0.3 宛てパケットは...
注)アドレスに 0 を指定すると、すべてのアドレスに一致する...
「add rule」では、新規ルールをルールの一番最後に追加しま...
**ルールの表示 [#q5af3b30]
追加したルールは fwalladm コマンドの「list rule」で確認で...
# /usr/local/bin/fwalladm
> list rule
Rule 0: 10.0.0.1 -> 10.0.0.2 ALLOW
Rule 1: 10.0.0.1 -> 10.0.0.3 ALLOW
Rule 2: 0.0.0.0 -> 0.0.0.0 DENY
**ルールの挿入 [#n127100c]
既存のルールとルールの間に新規ルールを追加したい場合には...
insert rule <ルール番号> <送信元アドレス> <あて先アドレ...
例)
# /usr/local/bin/fwalladm
> insert rule 2 10.0.0.1 10.0.0.4 ALLOW
> list rule
Rule 0: 10.0.0.1 -> 10.0.0.2 ALLOW
Rule 1: 10.0.0.1 -> 10.0.0.3 ALLOW
Rule 2: 10.0.0.1 -> 10.0.0.4 ALLOW
Rule 3: 0.0.0.0 -> 0.0.0.0 DENY
上記の例ではルール2として 10.0.0.1 から 10.0.0.4 へのパ...
**ルールの削除 [#mea0d98d]
設定したルールを削除する場合には、fwalladm コマンドの「de...
以下の例では上記例のルール番号1(Rule 1: 10.0.0.1 -> 10....
# /usr/local/bin/fwalladm
> delete rule 0
> list rule
Rule 0: 10.0.0.1 -> 10.0.0.3 ALLOW
Rule 1: 10.0.0.1 -> 10.0.0.4 ALLOW
Rule 2: 0.0.0.0 -> 0.0.0.0 DENY
**インターフェースの追加 [#x955f5a5]
fwall モジュールでパケットの調査を行うネットワークインタ...
# /usr/local/bin/fwalladm
> add interface hme0
この例では hme0 というネットワークインターフェースを調査...
**インターフェースの表示 [#t06ceb08]
ルールの場合と同じく「list interface」とすると、現在パケ...
> list interface
hme
le
この出力から、現在 hme と le の二つのインターフェースが調...
**インターフェースの削除 [#e7979c07]
ネットワークインターフェースをパケット調査の対象からはず...
> delete interface hme0
> list interface
le
上記例では hme0 を調査対象から削除しています。
**モジュールのアンロード&アンインストール [#b7c4d546]
モジュールをアンロードするには「fwallcntl」シェルスクリプ...
# /usr/local/bin/fwallcntl stop
また、インストールしたモジュール、コマンドをシステムから...
# make uninstall
/usr/local/bin/fwallcntl stop
fwall module removed from all interface
fwall module successfully unloaded
/bin/rm /kernel/strmod/sparcv9/fwall
/bin/rm /usr/local/bin/fwalladm
/bin/rm /usr/local/bin/fwallcntl
**32bit 環境での利用 [#n1825eb1]
32bit 環境では Makefile32 という Makefile をつかって、コ...
# make -f Makefile32
# make -f Makefile32 install
# make -f Makefile32 uninstall
これ以外は同じです。
*今後の課題 [#le814b96]
+ルールにプロトコルを指定できるようにする。(ICMP, TCP, U...
+ルールに送信元、あて先ポート番号(TCP・UDP)を指定できる...
+プロトコル違反のパケットや、異常なアクセスを拒否する(こ...
終了行:
#norelated
*Solaris でファイアーウォールを作ろう/其の4
*目次 [#ydf7c6fb]
#contents
*変更点の概要 [#ua87bd1a]
[[其の3>Solaris でファイアーウォールを作ろう/其の3]]で今...
-ルールにあて先アドレスを指定できるようにする。
-許可ルールを追加できるようにする。
-コマンドを使っての STREAM への fwall モジュールの挿入、...
-fwalladm コマンドから任意の順番でのルールの追加。
-複数のインターフェースを持つルータマシンでも動作するよう...
それと、機能追加では無いのですが、fwall モジュールのコー...
で、そのコードの読みやすく(あとで自分がわかりやすく?)...
fwallモジュールの関数名の変更
|CENTER:変更前 ----------> 変更後 |CENTER:機能|h
|fwall_add_rule() --> fwall_insert_rule()| 新ルールの追加...
|fwall_chk_rule() --> fwall_check_rule()| ルールに基づく...
|fwall_rm_rule() --> fwall_delete_rule()| 既存のルールの...
&br;
fwall モジュールに追加したマクロ
|マクロ名| 機能|h
|RULES() |現在の総ルール数をカウントする|
|WALKRULE() |指定したルール番号のルールへのポインタを得る|
|COMPARE_ADDR() |2つの IP アドレスの比較を行う|
各関数内の変更内容は、プログラム中のコメントを見ていただ...
*ご注意 [#h718c3b5]
毎度のことですが、PANIC するとまずいことになるマシンでは...
*ソースコードとダウンロード [#w1cd3e6d]
ソースファイル: [[fwall-0.4.tar.gz>http://github.com/down...
|>|CENTER:tar ファイルに含まれるファイルの概要|h
|Makefile|fwallモジュール、fwalladm コマンド用の makefile|
|fwall.c| fwall モジュールの本体。&br;設定されたルールに...
|fwall.h| fwall モジュール、fwalladm コマンド共通のヘッ...
|fwalladm.c|fwall モジュールのフィルタールールを変更する...
|fwallcnt|fwall の開始、停止を行うためのシェルスクリプト&...
*使い方 その他 [#jef1ef15]
**コンパイル&インストール [#n2bee6ca]
今回から、Makefile へのネットワークインターフェースに依存...
# make
/usr/local/bin/gcc -g -D_KERNEL -c -m64 fwall.c
/usr/ucb/ld -dn -r fwall.o -o fwall
/usr/local/bin/gcc -g -lnsl fwalladm.c -o fwalladm
# make install
/bin/cp fwall /kernel/strmod/sparcv9/fwall
/bin/cp fwalladm /usr/local/bin/fwalladm
/bin/cp fwallcntl /usr/local/bin/fwallcntl
**モジュールのロード [#ca5745af]
make install が終わった直後は、モジュールのロードも、ルー...
# /usr/local/bin/fwallcntl start
これによって、システム上のすべてのネットワークインターフ...
Usage: fwalladm
add rule <source address> <destination address> <acti...
insert rule <rule number> <source address> <destinati...
delete rule <rule number>
list rule
add interface <interface>
delete interface <interface>
list interface
# /usr/local/bin/fwalladm
>
[[其の3>Solaris でファイアーウォールを作ろう/其の3]]まで...
**ルールの追加 [#ff728b68]
新規のルールの設定の仕方は以下のようにします。
add rule <送信元アドレス> <あて先アドレス> <動作>
例)
# /usr/local/bin/fwalladm
> add rule 10.0.0.1 10.0.0.2 ALLOW
> add rule 10.0.0.1 10.0.0.3 ALLOW
> add rule 0 0 DENY
これは 10.0.0.1 から 10.0.0.2 と 10.0.0.3 宛てパケットは...
注)アドレスに 0 を指定すると、すべてのアドレスに一致する...
「add rule」では、新規ルールをルールの一番最後に追加しま...
**ルールの表示 [#q5af3b30]
追加したルールは fwalladm コマンドの「list rule」で確認で...
# /usr/local/bin/fwalladm
> list rule
Rule 0: 10.0.0.1 -> 10.0.0.2 ALLOW
Rule 1: 10.0.0.1 -> 10.0.0.3 ALLOW
Rule 2: 0.0.0.0 -> 0.0.0.0 DENY
**ルールの挿入 [#n127100c]
既存のルールとルールの間に新規ルールを追加したい場合には...
insert rule <ルール番号> <送信元アドレス> <あて先アドレ...
例)
# /usr/local/bin/fwalladm
> insert rule 2 10.0.0.1 10.0.0.4 ALLOW
> list rule
Rule 0: 10.0.0.1 -> 10.0.0.2 ALLOW
Rule 1: 10.0.0.1 -> 10.0.0.3 ALLOW
Rule 2: 10.0.0.1 -> 10.0.0.4 ALLOW
Rule 3: 0.0.0.0 -> 0.0.0.0 DENY
上記の例ではルール2として 10.0.0.1 から 10.0.0.4 へのパ...
**ルールの削除 [#mea0d98d]
設定したルールを削除する場合には、fwalladm コマンドの「de...
以下の例では上記例のルール番号1(Rule 1: 10.0.0.1 -> 10....
# /usr/local/bin/fwalladm
> delete rule 0
> list rule
Rule 0: 10.0.0.1 -> 10.0.0.3 ALLOW
Rule 1: 10.0.0.1 -> 10.0.0.4 ALLOW
Rule 2: 0.0.0.0 -> 0.0.0.0 DENY
**インターフェースの追加 [#x955f5a5]
fwall モジュールでパケットの調査を行うネットワークインタ...
# /usr/local/bin/fwalladm
> add interface hme0
この例では hme0 というネットワークインターフェースを調査...
**インターフェースの表示 [#t06ceb08]
ルールの場合と同じく「list interface」とすると、現在パケ...
> list interface
hme
le
この出力から、現在 hme と le の二つのインターフェースが調...
**インターフェースの削除 [#e7979c07]
ネットワークインターフェースをパケット調査の対象からはず...
> delete interface hme0
> list interface
le
上記例では hme0 を調査対象から削除しています。
**モジュールのアンロード&アンインストール [#b7c4d546]
モジュールをアンロードするには「fwallcntl」シェルスクリプ...
# /usr/local/bin/fwallcntl stop
また、インストールしたモジュール、コマンドをシステムから...
# make uninstall
/usr/local/bin/fwallcntl stop
fwall module removed from all interface
fwall module successfully unloaded
/bin/rm /kernel/strmod/sparcv9/fwall
/bin/rm /usr/local/bin/fwalladm
/bin/rm /usr/local/bin/fwallcntl
**32bit 環境での利用 [#n1825eb1]
32bit 環境では Makefile32 という Makefile をつかって、コ...
# make -f Makefile32
# make -f Makefile32 install
# make -f Makefile32 uninstall
これ以外は同じです。
*今後の課題 [#le814b96]
+ルールにプロトコルを指定できるようにする。(ICMP, TCP, U...
+ルールに送信元、あて先ポート番号(TCP・UDP)を指定できる...
+プロトコル違反のパケットや、異常なアクセスを拒否する(こ...
ページ名: