前回は、「WinXPをネットから隔離して仮想マシンの上で運用しよう」ということで、ネットアクセスはすべてLINUX上で行う設定方法について記載しました。
しかし、非力なPCでは、ホストマシンとしてXP運用は可能でも、仮想マシンのXPでは動きがギクシャクして実用に耐えない場合があります。
そこで、本稿では、完全にオフラインではありませんが、
メールだけができる「実質オフラインWinXP」の実現方法について説明します。
具体的には、パケットフィルターにより、WinXPのOS本体に行く前に、メール関係以外のパケットを開封せずにあて先だけ見て廃棄して、実質オフラインのWinXPを実現します。
インターネット上での通信はIPパケット((Internet Protocol)で行われています。
ネットにつなぐことによりPCが被害を受けるのは、IPパケットを送受信することにより生じます。
しかし、IPパケットは単なる「データを包み込む小包」ですので、単純にIPパケットを送受信しただけで被害が発生することはありません。IPパケットを開封して、中身を解釈して、悪意あるプログラムが実行されることで初めて、被害が発生することになります。
WindowsというOSは、ある意味賢いので、ソフトウエアのアップデートのお知らせや、PCの状態を送信して、最適なプログラムを自動的にダウンロードしてインストールするなど、利用者の知らないところで、IPパケットを開封して、中身を解釈して、いろいろな処理を行っています。
オフラインにするということは、これらのサービスの恩恵を放棄するという意味で「不便」さを受け入れるということです。その代わりに、PC遠隔操作、スパムの踏み台など、インターネット経由の恐怖からは開放されることになります。
メール関連のパケットのIPアドレスをホワイトリストに登録して、パケットフィルターを起動します。
これだけで、登録したアドレス(ホワイトリスト)以外のパケットは送受信ともに廃棄しますので、WinXPのOS本体が勝手にネットにアクセスすることはありません。この環境で、安心できる相手とだけ通信をして、受信した内容が安全であることを確認しながら運用すれば、リスクを未然に防げるわけです。
pktFilter
ダウンロードして解凍して、適当なフォルダ、たとえば D:\PktFilter に解凍した pktfltsrv.exe を入れます。
nPOP
ダウンロードして、適当なフォルダ、たとえば D:\nPOP に解凍します。
Thunderbird
デフォルトのまま、あるいは適当なフォルダを指定してインストールします。
pktFilter のホワイトリストの作成 、nPOP、Thunderbirdの設定を行います。(後述)
* 私が使用しているホワイトリストやバッチファイルはこちらから。
・pktFilterStart.bat を起動時に1回だけ実行
注)パケットフィルターを中止する場合には、
pktFilserStop.bat を実行します。
・nPOPでメールチェック
メール受信時には、まずnPOPで新着メールのタイトルと本文の先頭100バイト程度を受信し表示します。テキストでの表示なので、ウイルス感染のメールであっても感染する恐れはない。怪しいメールはこの段階で削除します。
・Thunderbirdでメール受信
その後、Thunderbirdでメールを受信して、添付ファイルを保存など、今までとおりのメールを活用します。
メール関連の設定を Thunderbird、 nPOPともに行います。
nPOP は起動して「アカウント」 - 「設定」ホワイトリストは、D:\PktFilter 内の rules.txt に記載します。
自分のPCのアドレスを調べます。
スタート - プログラム - アクセサリ - コマンドプロンプト
ipconfig コマンドを実行
>ipconfig
IP Address. . . . . . . . . . . . : 192.168.1.25
Subnet Mask . . . . . . . . . . . : 255.255.255.0
上記のような内容が表示されます。
この場合、Subnet Mask が 255.255.255.0
ということは、IPアドレス32ビット中の「上24ビットの、192.168.1という3つの数字が固定」で、「下8ビットの25
はたまたま、割り振られた番号」という意味です。つまり別の日に ipconfig
を実行すると、192.168.1.17とか、192.168.1.29などのIPアドレスが割り振られる可能性があるということです。
次に、nslookup コマンドを使って、通信相手(メールサーバー)のIPアドレスを調べます。
>nslookup pop.gmail.com上記のような内容が表示されます。
Addresses: 74.125.25.109, 74.125.25.108
Aliases: pop.gmail.com
# GMAILの場合 pop.gmail.com 74.125.25.108-109 pass out on eth0 proto tcp from 192.168.1.0/24 to 74.125.25.108/31 pass in on eth0 proto tcp from 74.125.25.108/31 to 192.168.1.0/24 established |
rules.txtの中身 (IPアドレスの部分は要修正)
# drop packets composed of small fragments
option small_frags on eth0
# default behavior = deny everything
block in on eth0 all
block out on eth0 all
# allow DNS resolution to our nameserver
# pass out on eth0 proto udp from 192.168.1.1 port > 1023 to 192.168.1.254 port = 53
# pass in on eth0 proto udp from 192.168.1.254 port = 53 to 192.168.1.1 port > 1023
# 無線LANの DNSサーバーアドレス: 192.168.1.1
# 端末に割り振られるIPアドレス 192.168.1.0/24 --- 上24ビットは固定の意味
pass out on eth0 proto udp from 192.168.1.0/24 port > 1023 to 192.168.1.1 port = 53
pass in on eth0 proto udp from 192.168.1.1 port = 53 to 192.168.1.0/24 port > 1023
# allow inbound ICMP traffic (ping)
# pass in on eth0 proto icmp from any to 192.168.1.1 icmp-type echo
# pass out on eth0 proto icmp from 192.168.1.1 to any icmp-type echorep
# allow RDP (Terminal Services) administration from our administration subnet
# pass in on eth0 proto tcp from 10.42.42.0/24 port > 1024 to 192.168.1.1 port = 3389
# pass out on eth0 proto tcp from 192.168.1.1 port = 3389 to 10.42.42.0/24 port > 1024 established
# allow DHCP
pass out on eth0 proto udp from 0,0,0,0 to 255,255,255,255
pass in on eth0 proto udp from 192.168.1.1 to 192.168.1.0/24
# pop.mail.yahoo.co.jp 114.111.75.150, 114.111.79.140
pass out on eth0 proto tcp from 192.168.1.0/24 to 114.111.75.150
pass in on eth0 proto tcp from 114.111.75.150 to 192.168.1.0/24 established
pass out on eth0 proto tcp from 192.168.1.0/24 to 114.111.79.140
pass in on eth0 proto tcp from 114.111.79.140 to 192.168.1.0/24 established
# GMAILの場合 pop.gmail.com 74.125.25.108-109 74.125.129.108-109
pass out on eth0 proto tcp from 192.168.1.0/24 to 74.125.25.108/31
pass in on eth0 proto tcp from 74.125.25.108/31 to 192.168.1.0/24 established
pass out on eth0 proto tcp from 192.168.1.0/24 to 74.125.129.108/31
pass in on eth0 proto tcp from 74.125.129.108/31 to 192.168.1.0/24 established
# Hotmailの場合 pop3.live.com 157.55.1.215
pass out on eth0 proto tcp from 192.168.1.0/24 to 157.55.1.215
pass in on eth0 proto tcp from 157.55.1.215 to 192.168.1.0/24 established
PktFilterON.bat の中身 (フォルダ名の部分は要修正)
pktfltsrv -i d:\pktfilter\rules.txt d:\pktfilter\ log.txt
net start pktfilter
PktFilterOFF.bat の中身
net stop pktfilter戻る、 目次、 次へ
pktfltsrv -u