paloma blog

NWエンジニアやってます。主に自宅環境のお遊びを書きます。Pythonもちょっと。タイトルは好きなカクテルから。

WSLでProxyサーバを有効にしてみる

家のメイン機はWindows10を使っているのですが、WSLを動かして簡単なコマンド確認とかに使っています。

前からプロキシを導入したいと思っていたのでWSLでできるか試してみます。

今はUbuntu16.041つだけ入っていてこんな感じ。

masashi@DESKTOP-986MNSO:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"

masashi@DESKTOP-986MNSO:~$ uname -a
Linux DESKTOP-986MNSO 4.4.0-17134-Microsoft #137-Microsoft Thu Jun 14 18:46:00 PST 2018 x86_64 x86_64 x86_64 GNU/Linux

プロキシサーバはprivoxyを使います。
Privoxy - Home Page

squidしか知らなかったのですが、調べ物をしていてたまたま発見し、導入が簡単そうなので使ってみることにしました。
キャッシュ機能はなく、広告ブロックやTorとの連携ができるみたいです。

インストール

aptでいれます。

masashi@DESKTOP-986MNSO:~$ sudo apt install privoxy
masashi@DESKTOP-986MNSO:~$ dpkg -l | grep privoxy
ii  privoxy                          3.0.24-1                                   amd64        Privacy enhancing HTTP Proxy
masashi@DESKTOP-986MNSO:~$
masashi@DESKTOP-986MNSO:~$ privoxy --version
Privoxy version 3.0.24 (http://www.privoxy.org/)
masashi@DESKTOP-986MNSO:~$

サービス起動

systemctlで動かなかったのでinitで起動。
WSLのubuntuはsystemdじゃない?
後で調べよう。

masashi@DESKTOP-986MNSO:~$ sudo systemctl start proivoxy
Failed to connect to bus: No such file or directory
masashi@DESKTOP-986MNSO:~$
masashi@DESKTOP-986MNSO:~$ sudo /etc/init.d/privoxy start
 * Starting filtering proxy server privoxy                                                                       [ OK ]
masashi@DESKTOP-986MNSO:~$

起動確認

masashi@DESKTOP-986MNSO:~$ ss -lnt
State      Recv-Q Send-Q               Local Address:Port                              Peer Address:Port
Cannot open netlink socket: Protocol not supported
masashi@DESKTOP-986MNSO:~$
masashi@DESKTOP-986MNSO:~$
masashi@DESKTOP-986MNSO:~$ netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
masashi@DESKTOP-986MNSO:~$

あれ?Listenしてない…

プロセスを見てみる。

masashi@DESKTOP-986MNSO:~$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   8304    56 ?        Ss   Jul16   0:00 /init ro
root         3  0.0  0.0   8304    52 tty1     Ss   Jul16   0:00 /init ro
masashi      4  0.0  0.0  15112  3328 tty1     S    Jul16   0:00 -bash
masashi   1253  0.0  0.0  12548  1100 tty1     R    13:41   0:00 script 20180815_134125.log
masashi   1254  0.0  0.0  15028  3716 pts/0    Ss   13:41   0:00 bash -i
privoxy   4067  0.0  0.0  12100  1272 ?        Ss   13:51   0:00 /usr/sbin/privoxy --pidfile /var/run/privoxy.pid --user
masashi   4073  0.0  0.0  15664  1852 pts/0    R    14:07   0:00 ps aux
masashi@DESKTOP-986MNSO:~$

動いてるよなー。

ぐぐったら気になるページを見つけました。

http://murkyideas.xsrv.jp/index.php?WSL%20on%20Windows10

sshdがソケットをLISTENしてもUbuntu側でnetstat -ant|grep LISTENとかやってもみえない(WSLのネットワーク周りとかユーザ周りは完全にWindows側のエミュレーションで動いていて、カーネルから何か読み出そうとしても失敗する、たとえばdmesgでさえ)

windows側でしかみえないのか? 確認してみます。
わかりやすいようにこっちはキャプチャで。

f:id:paloma69:20180815151904p:plain

ポートあがってますね。

プロセスも確認。

f:id:paloma69:20180815151945p:plain

privoxy見えてる。
これで動くのかな?

ブラウザで有効にする。

Firefoxをメインで使っているので、オプションから変更。

f:id:paloma69:20180815152243p:plain

検索してみます。

f:id:paloma69:20180815152417p:plain

一応ページは表示できるが動いているのか?
ログは何もでていません。

masashi@DESKTOP-986MNSO:~$ ls /var/log/privoxy/logfile -l
-rw-r--r-- 1 privoxy nogroup 0 Aug 15 13:45 /var/log/privoxy/logfile

というかHTTPSだとプロキシ側に証明書かまさないといけない気がする…。

今日はここまで

サービスは起動できましたが、動いているのかわかりませんでした。
今後はログの有効化、広告ブロック等の機能を有効にしていきたいと思います。
Torなんかも一回使ってみたいです。