LoginSignup
1
3

More than 5 years have passed since last update.

バックグラウンド通信を遮断してパケット代を節約する(Windowsユーザ向け)

Posted at

誰のためのドキュメント

  • スマホでテザリングをよく利用する人
  • パケット制限を受けると発狂しそうになる人
  • パケット代金を抑えたい人
  • Windows使いの人

背景

遅すぎる&屋内で電波弱すぎることを理由にWIMAXを解約してからは外出先ではiPhoneのテザリングを利用している。
移動中のちょっとした時間だけなので7GB制限に達することはまれだがここ最近外出が多く今月も10日残っているのに1GBを切ってしまった。
ということで少しでもパケットを節約するべくWindowsのファイアーウォールを使用して不要な通信を遮断することにする。

Before & After

変更前のファイアーウォール設定

プロファイル ステータス 設定値
ドメインプロファイル 無効 既定値
プライイベートプロファイル 無効 既定値
パブリックプロファイル 無効 既定値

すべて無効っすw

変更後のファイアーウォール設定

Web通信系の通信とSSHのみ許可する

プロファイル ステータス 設定値
ドメインプロファイル 有効 既定値
プライイベートプロファイル 有効 既定値
パブリックプロファイル 有効 icmp / http(s) / dns / dhcp / ssh の送信許可、それ以外の送信は拒否

設定方法

[Ctrl+R] - [ファイル名を指定して実行] - [firewall.cpl]を実行してWindowsファイアーウォール画面を表示する。
2017-05-02_15h46_11.png

[詳細設定]をクリック
2017-05-02_15h49_10.png

[Windowsのファイアーウォールプロパティ]をクリック
2017-05-02_15h57_56.png

[パブリックプロファイルタブ] - [送信接続]を[ブロック]に変更する。
2017-05-02_15h58_44.png

[送信の規則]画面に移動し、すべてのルールを無効化する。このタイミングですべての送信は遮断される。

次に許可する通信用のルールを作成していく。まずhttp(s)を許可するルールを作る。
[新しい規則]をクリック
2017-05-02_16h00_15.png

[規則の種類]で[ポート]を選択
2017-05-02_16h00_45.png

[プロトコルおよびポート]でプロトコルは[TCP]、リモートポートには[80, 443]を入力
2017-05-02_16h01_24.png

[操作]で[接続を許可する]を選択
2017-05-02_16h02_06.png

[プロファイル]では[パブリック]のみにチェックをつける。
2017-05-02_16h02_34.png

[名前]に[allow http(s)]と入力
2017-05-02_16h03_01.png

同様にして各プロトコル用のルールを追加していく。

規則の種類 プロトコル ポート 操作 プロファイル 名前
ポート tcp 80,443 許可 パブリックプロファイル allow http(s)
ポート udp 53 許可 パブリックプロファイル allow dns
ポート udp 67, 68 許可 パブリックプロファイル allow dhcp
ポート tcp 22 許可 パブリックプロファイル allow ssh
カスタム ICMPv4 - 許可 パブリックプロファイル allow ping

Webブラジングとssh接続できることを確認する。
これでWeb ssh以外の通信は遮断される設定になった。

トラブルシュート

Q. ネットにつながらないよ
A. プロキシを通しているならプロキシに接続するためのポートも許可する。(tcp/8080とか)

Q. ネットにつながらないよ
A. https://hoge.com:9443/login.php みたいにアクセス先ポートが標準ポートでない場合、個別にそのポートも許可する。この例の場合(tcp/9443)

Q. sshがつながらないよ
A. サーバ側のsshポートを標準ポート(22)から変更している場合は変更したポートを許可する。

Q. ◯◯も使えるようにしたい
A. そのプログラムで使用しているポートとプロトコルを調べて許可してください。

Q. 使用ポートってどうやって調べる?
A. ググるかFirewallのログを見て調査。
[ファイアーウォールのプロパティ] - [ログ] - [カスタマイズ] - [破棄されたログを記録に残す]を[はい]にする。
2017-05-02_16h04_02.png

するとC:\Windows\system32\LogFiles\Firewall\pfirewall.logにDropログも記録されるようになる。
あとはログを見ながら許可したいプログラムを起動し、ログからポートを特定していく。

ログの閲覧はpowershellを起動してtailfもどきを使うと簡単
具体的には

cat "C:\Windows\system32\LogFiles\Firewall\pfirewall.log" -wait -tail 10

2017-05-02 15:35:02 ALLOW UDP 10.4.30.187 103.5.140.18 54923 53 0 - - - - - - - SEND
2017-05-02 15:35:02 ALLOW UDP 10.4.30.187 103.5.140.19 54923 53 0 - - - - - - - SEND
2017-05-02 15:35:03 DROP TCP 10.4.30.187 46.137.159.220 55176 8443 0 - 0 0 0 - - - SEND
2017-05-02 15:35:03 DROP TCP 10.4.30.187 46.137.83.130 55177 8443 0 - 0 0 0 - - - SEND
2017-05-02 15:35:03 DROP TCP 10.4.30.187 176.34.117.191 55178 8443 0 - 0 0 0 - - - SEND

ログの意味は左カラムから
タイムスタンプ、許可/拒否、プロトコル(tcp/udp)、送信元IP、宛先IP、送信元ポート、宛先ポート

Q. 外出先から戻ってきたらどうするの
A. ファイアーウォール無効にするw

Q. 上手く動かなくなったからリセットしたい。
A. [セキュリティが強化されたWindowsファイアーウォール]の画面で[規定のポリシーを復元]でおk

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3