CQ出版発行の組み込みエンジニアのための Embedded Unix の記事関連のダウンロード・コーナです。 |
前回はシリアルポートという、コントローラのハードウェアと直接関わるデバイスドライバの開発について取り上げました。しかしUNIX系オペレーティング・システムにおけるドライバ開発では、直接ハードウェアの制御に関わらない、中間モジュールとしてのドライバ・モジュールを開発する場合が多いのも事実です。
本誌の第2回目では、そのような例としてLinuxにおけるTCP/IPネットワークのパケットフィルタ・ドライバの開発をテーマとして取り上げて解説、作成方法と応用を紹介しています。
なお、ここで紹介するipsimpleはパケットを扱うローダブル・モジュールのデバイスドライバ開発実験として今回開発したものです。まだ実際にどの程度正しく動作するかは検証していません。またシステムへの侵入手口も変化しつつある事と、絶対的な防御手段は存在しないという事は念頭に置いてご利用下さい。
ファイル | 説明 |
---|---|
ipfwadmとMakefileの修正Patch ipfwadm.patch |
Redhat8.0等で、ipfwadmのコンパイル・エラーを修正するためのパッチ |
procfileインタフェイス・プログラム procfile.tar.gz |
procfileを使用したインタフェイス・モジュールと、パラメータ受け渡しをテストするプログラム |
ipfwadmとシンプルIPフィルタ制御プログラムipsimpleのソース ipsimple.tar.gz |
ipfwadmとシンプルIPフィルタipsimple.oを制御するためのインタフェス・プログラムipsimpleのソース |
入力フィルタ機能だけ動作するipfwadmとipsimple.oのモジュールのソース netfilter.tar.gz |
入力フィルタ機能だけ動作するipfwadm.oとipsimple.oのローダブル・モジュールのソースとMakefile |
pakemonの修正パッチ pakemon.c.patch |
ipsimpleと組み合わせて動作させるためのpakemonの修正パッチ |
ipsimple用基本ルール設定シェルipsimple-rule | ipsimple初期動作時にに基本ルールを設定させるためのシェルスクリプト |
pakemon用ipsimpleインタフェイス log-exec.pl |
pakemon用のipsimpleリダイレクタ・インタフェイスのPerlスクリプト(Pathの通っているディレクトリに配置する必要があります) |
e-unix-vol4-netfilter.tar.gz | 上記すべてをまとめたパッケージ |
★参考情報:
今回紹介するipsimpleの元としている、ipfwadmの設定使用例を以下に示します。「アクセス許可型」、「アクセス制限型」の各例は、設定をテストするためのサンプルですので、実際に使用する場合には、各環境に合わせて設定を変えて使用して下さい。
アクセス許可型の設定例
#!/bin/sh
ipfwadm -I ?f # 設定のクリア
ipfwadm -I -p deny # 基本ポリシーは全て不許可にして必要なものだけ通す
ipfwadm -I -a accept -W lo0
ipfwadm -I -a accept -P tcp -D 192.168.51.114/32 -k
ipfwadm -I -a accept -P tcp -D 192.168.51.114/32 ssh
ipfwadm -I -a accept -P tcp -D 192.168.51.114/32 ftp
ipfwadm -I -a accept -P tcp -S 0.0.0.0/0 smtp -D 192.168.51.114/32
ipfwadm -I -a accept -P tcp -S 0.0.0.0/0 domain -D 192.168.51.114/32
ipfwadm -I -a accept -P udp -S 0.0.0.0/0 domain -D 192.168.51.114/32
ipfwadm -I -l
アクセス制限型の設定例
#!/bin/sh
ipfwadm -I ?f # 設定のクリア
ipfwadm -I -p accept # 基本ポリシーはすべて許可にして制限項目を記述
ipfwadm -I -a deny -P tcp -D 192.168.51.114/32 netbios-ns
ipfwadm -I -a deny -P udp -D 192.168.51.114/32 netbios-ns
ipfwadm -I -a deny -P tcp -D 192.168.51.114/32 telnet
ipfwadm -I -a deny -P tcp -D 192.168.51.114/32 ftp
ipfwadm -I -l
サイト | 説明 |
---|---|
Netfilter / Iptables |
Netfilter / iptables の開発元のページです。 様々な付加機能をNetfilterに追加する、Patch-O-Matic(POM)のダウンロードページ。 |
pakemon / Packet Monster (パケット・モンスター) An Open Source Intrusion Detection System (日本語) |
武田圭史氏が慶応義塾大学大学院に在籍中に開発した、pakemon のページ。
pakemonのインストールに必要なファイルも、ここからたどって下さい。 |
netfilter/iptables FAQ(日本語) | netfilter/iptablesに関する日本語のFAQ |
Linux 2.4 NAT HOWTO(日本語) | Linux 2.4におけるNATの使用方法解説 |
Linux 2.4 Packet Filtering HOWTO (日本語) |
Linux 2.4におけるPacket Filteringの解説 |
Firewall And Proxy Server HOWTO (日本語) |
Firewall And Proxy Serverの解説 |
Linux IP Masquerade HOWTO (日本語) |
IP Masqueradeの解説 |
Linux IPCHAINS-HOWTO (日本語) |
IPCHAINSの使用方法解説 |
更新日:8月11日