開始行:
#norelated
*Solaris でファイアーウォールを作ろう/其の5
*目次 [#sc014392]
#contents
*変更点の概要 [#t63fad2b]
[[其の4>Solaris でファイアーウォールを作ろう/其の4]]で今...
-ルールにプロトコルを指定できるようにした。(ICMP, TCP, U...
-ルールに送信元、あて先ポート番号(TCP・UDP)を指定できる...
-アドレス、ポート、プロトコルの指定時に、ワイルドカードと...
これでやっと一番単純なファイアーウォールの機能である「ポ...
*ご注意 [#gc14f71c]
ここで紹介しているプログラムは、カーネルモジュールを含ん...
*ソースコードとダウンロード [#p1173f3b]
ソースファイル: [[fwall-0.5.tar.gz>http://github.com/down...
|>|CENTER:tar ファイルに含まれるファイルの概要|h
|Makefile| fwall モジュール、fwalladm コマンド用の makefi...
|fwall.c| fwall カーネルモジュールのメインモジュール。&b...
|fwall_rule.c| fwall カーネルモジュールのルールに関わる...
|fwall.h|fwall モジュール、fwalladm コマンド共通のヘッダ...
|fwalladm.c| fwall モジュールのフィルタールールを変更す...
|fwallcntl| fwall の開始、停止を行うためのシェルスクリプ...
各ソースはこちらで参照していただくこともできます。~
>>
http://github.com/kaizawa/fwall
<<
本プログラムは Sparc マシンの 64bit Solaris 9、Solaris 10...
*使い方 その他 [#y651de98]
**コンパイル&インストール [#n085fefd]
[[「其の4」>Solaris でファイアーウォールを作ろう/其の4]]...
# 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
**モジュールのロード [#nf3f2b7e]
make install が終わった直後は、モジュールのロードも、ルー...
# /usr/local/bin/fwallcntl start
これによって、システム上のすべてのネットワークインターフ...
Usage: fwalladm
insert rule <rule number> <protocol> <src port> <dest ...
add rule <protocol> <src port> <dest port> <src addres...
delete rule <rule number>
list rule
add interface <interface>
delete interface <interface>
list interface
&br;
# /usr/local/bin/fwalladm
>
**ルールの追加 [#mfdb0d73]
パケットの「プロトコル」と、「ポート」を見るようになった...
新規のルールの設定の仕方は以下のようにします。
add rule <プロトコル> <送信元ポート> <あて先ポート> <送...
例)
# /usr/local/bin/fwalladm
> add rule TCP * 80 * * ALLOW
> add rule TCP 80 * * * ALLOW
> add rule UDP * * 10.0.0.1 10.0.0.2 ALLOW
> add rule * * * * * DENY
これは、ポート 80 への TCP パケット、または、ポート 80 か...
注)アドレスに0を指定すると、すべてのアドレスに一致する...
「add rule」では、新規ルールをルールの一番最後に追加しま...
**ルールの表示 [#l8a8a053]
追加したルールは fwalladm コマンドの「list rule」で確認で...
各行は、どのアドレスの、どのプロトコルの、どのポートへの...
# /usr/local/bin/fwalladm
> list rule
Rule 0: *(*) -> *(80) TCP ALLOW
Rule 1: *(80) -> *(*) TCP ALLOW
Rule 2: 10.0.0.1(*) -> 10.0.0.2(*) TCP ALLOW
Rule 3: *(*) -> *(*) * DENY
**ルールの挿入 [#n06739cc]
既存のルールとルールの間に新規ルールを追加したい場合には...
insert rule <ルール番号> <プロトコル> <送信元ポート> <あ...
例)
# /usr/local/bin/fwalladm
insert rule 2 TCP 25 * * * DENY
> list rule
Rule 0: *(*) -> *(80) TCP ALLOW
Rule 1: *(80) -> *(*) TCP ALLOW
Rule 2: *(25) -> *(*) TCP DENY
Rule 3: 10.0.0.1(*) -> 10.0.0.2(*) TCP ALLOW
Rule 4: *(*) -> *(*) * DENY
上記の例ではルール2として 25 番ポートへのパケットを破棄...
**ルールの削除 [#m353ff91]
設定したルールを削除する場合には、fwalladm コマンドの「de...
以下の例では上記例のルール番号3(Rule 3: 10.0.0.1 -> 10....
# /usr/local/bin/fwalladm
> delete rule 3
> list rule
Rule 0: *(*) -> *(80) TCP ALLOW
Rule 1: *(80) -> *(*) TCP ALLOW
Rule 2: *(25) -> *(*) TCP DENY
Rule 3: *(*) -> *(*) * ALLOW
**インターフェースの追加 [#d5602e79]
fwall モジュールでパケットの調査を行うネットワークインタ...
# /usr/local/bin/fwalladm
> add interface hme0
この例では hme0 というネットワークインターフェースを調査...
**インターフェースの表示 [#l1dea639]
ルールの場合と同じく「list interface」とすると、現在パケ...
> list interface
hme
le
この出力から、現在 hme と le の二つのインターフェースが調...
**インターフェースの削除 [#q3659305]
ネットワークインターフェースをパケット調査の対象からはず...
> delete interface hme0
> list interface
le
上記例では hme0 を調査対象から削除しています。
**モジュールのアンロード&アンインストール [#e82380bd]
モジュールをアンロードするには「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 環境での利用 [#e140e3ef]
32bit 環境では Makefile32 という Makefile をつかって、コ...
# make -f Makefile32
# make -f Makefile32 install
# make -f Makefile32 uninstall
これ以外は同じです。
*今後の課題 [#u9adf003]
+プロトコル違反パケットや、異常なアクセスを拒否する&br;
これは・・・いつか・・・・きっと・・・ これをやるためには...
+REJECT コマンドの実装&br;
REJECT「拒否」だと、ICMP メッセージや TCP の RESET パケッ...
終了行:
#norelated
*Solaris でファイアーウォールを作ろう/其の5
*目次 [#sc014392]
#contents
*変更点の概要 [#t63fad2b]
[[其の4>Solaris でファイアーウォールを作ろう/其の4]]で今...
-ルールにプロトコルを指定できるようにした。(ICMP, TCP, U...
-ルールに送信元、あて先ポート番号(TCP・UDP)を指定できる...
-アドレス、ポート、プロトコルの指定時に、ワイルドカードと...
これでやっと一番単純なファイアーウォールの機能である「ポ...
*ご注意 [#gc14f71c]
ここで紹介しているプログラムは、カーネルモジュールを含ん...
*ソースコードとダウンロード [#p1173f3b]
ソースファイル: [[fwall-0.5.tar.gz>http://github.com/down...
|>|CENTER:tar ファイルに含まれるファイルの概要|h
|Makefile| fwall モジュール、fwalladm コマンド用の makefi...
|fwall.c| fwall カーネルモジュールのメインモジュール。&b...
|fwall_rule.c| fwall カーネルモジュールのルールに関わる...
|fwall.h|fwall モジュール、fwalladm コマンド共通のヘッダ...
|fwalladm.c| fwall モジュールのフィルタールールを変更す...
|fwallcntl| fwall の開始、停止を行うためのシェルスクリプ...
各ソースはこちらで参照していただくこともできます。~
>>
http://github.com/kaizawa/fwall
<<
本プログラムは Sparc マシンの 64bit Solaris 9、Solaris 10...
*使い方 その他 [#y651de98]
**コンパイル&インストール [#n085fefd]
[[「其の4」>Solaris でファイアーウォールを作ろう/其の4]]...
# 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
**モジュールのロード [#nf3f2b7e]
make install が終わった直後は、モジュールのロードも、ルー...
# /usr/local/bin/fwallcntl start
これによって、システム上のすべてのネットワークインターフ...
Usage: fwalladm
insert rule <rule number> <protocol> <src port> <dest ...
add rule <protocol> <src port> <dest port> <src addres...
delete rule <rule number>
list rule
add interface <interface>
delete interface <interface>
list interface
&br;
# /usr/local/bin/fwalladm
>
**ルールの追加 [#mfdb0d73]
パケットの「プロトコル」と、「ポート」を見るようになった...
新規のルールの設定の仕方は以下のようにします。
add rule <プロトコル> <送信元ポート> <あて先ポート> <送...
例)
# /usr/local/bin/fwalladm
> add rule TCP * 80 * * ALLOW
> add rule TCP 80 * * * ALLOW
> add rule UDP * * 10.0.0.1 10.0.0.2 ALLOW
> add rule * * * * * DENY
これは、ポート 80 への TCP パケット、または、ポート 80 か...
注)アドレスに0を指定すると、すべてのアドレスに一致する...
「add rule」では、新規ルールをルールの一番最後に追加しま...
**ルールの表示 [#l8a8a053]
追加したルールは fwalladm コマンドの「list rule」で確認で...
各行は、どのアドレスの、どのプロトコルの、どのポートへの...
# /usr/local/bin/fwalladm
> list rule
Rule 0: *(*) -> *(80) TCP ALLOW
Rule 1: *(80) -> *(*) TCP ALLOW
Rule 2: 10.0.0.1(*) -> 10.0.0.2(*) TCP ALLOW
Rule 3: *(*) -> *(*) * DENY
**ルールの挿入 [#n06739cc]
既存のルールとルールの間に新規ルールを追加したい場合には...
insert rule <ルール番号> <プロトコル> <送信元ポート> <あ...
例)
# /usr/local/bin/fwalladm
insert rule 2 TCP 25 * * * DENY
> list rule
Rule 0: *(*) -> *(80) TCP ALLOW
Rule 1: *(80) -> *(*) TCP ALLOW
Rule 2: *(25) -> *(*) TCP DENY
Rule 3: 10.0.0.1(*) -> 10.0.0.2(*) TCP ALLOW
Rule 4: *(*) -> *(*) * DENY
上記の例ではルール2として 25 番ポートへのパケットを破棄...
**ルールの削除 [#m353ff91]
設定したルールを削除する場合には、fwalladm コマンドの「de...
以下の例では上記例のルール番号3(Rule 3: 10.0.0.1 -> 10....
# /usr/local/bin/fwalladm
> delete rule 3
> list rule
Rule 0: *(*) -> *(80) TCP ALLOW
Rule 1: *(80) -> *(*) TCP ALLOW
Rule 2: *(25) -> *(*) TCP DENY
Rule 3: *(*) -> *(*) * ALLOW
**インターフェースの追加 [#d5602e79]
fwall モジュールでパケットの調査を行うネットワークインタ...
# /usr/local/bin/fwalladm
> add interface hme0
この例では hme0 というネットワークインターフェースを調査...
**インターフェースの表示 [#l1dea639]
ルールの場合と同じく「list interface」とすると、現在パケ...
> list interface
hme
le
この出力から、現在 hme と le の二つのインターフェースが調...
**インターフェースの削除 [#q3659305]
ネットワークインターフェースをパケット調査の対象からはず...
> delete interface hme0
> list interface
le
上記例では hme0 を調査対象から削除しています。
**モジュールのアンロード&アンインストール [#e82380bd]
モジュールをアンロードするには「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 環境での利用 [#e140e3ef]
32bit 環境では Makefile32 という Makefile をつかって、コ...
# make -f Makefile32
# make -f Makefile32 install
# make -f Makefile32 uninstall
これ以外は同じです。
*今後の課題 [#u9adf003]
+プロトコル違反パケットや、異常なアクセスを拒否する&br;
これは・・・いつか・・・・きっと・・・ これをやるためには...
+REJECT コマンドの実装&br;
REJECT「拒否」だと、ICMP メッセージや TCP の RESET パケッ...
ページ名: