インターネット上での匿名性について

確かフツーのtcp/ip通信はsource/destination がパケットのヘッダーになっているから、サーバはクライアントが誰だか知ることができるんだよね。ヘッダーのsourceを変える方法はいくつかある。例えば、vpn。しかし、vpnはサービス提供者がパケットを全部見ることができるんだよね。んで、不正アクセスがあった時には警察側にログを提供しかねないんですよね。んで、ログから接続先が割れて逮捕されてしまうと。これを防ぐのがtorだね。 警察からの追跡は完全に逃れることができる。ただ、torノードの提供者にヤバいやつがいてパケットダンプをしているってこととかはあると思う。まあ、パケットダンプしていても暗号化されていれば大丈夫なんだけど。

The onion router

匿名性を守るための通信手段がtor。んで、torを使ったインターネットブラウジングを可能にするのが、torブラウザ。

言ってしまえばtorはvpnの上位互換だな。torネットワークに所属するtorノードの中から3つのノードをランダムに選んで、それぞれが暗号化して通信する。通信経路の各ノードは通信元ノードと通信先ノードしかわからないため、完全に秘匿性が守られる。通信元(ブラウザ)と通信先(ウェブサイト)のセットを得ることが不可能である。

例えば、 browser -> tor1 -> tor2 -> tor3 -> website でwebsiteと通信するとき、tor1はbrowserから送られていることがわかるけど、browserがどのサイトを見に行っているかはわからないようになっている。これによって完全に秘匿性が守られるわけだね。素晴らしい。まあ、通信速度はあほみたいに遅いけど。 ただ、気を付けたいのが、tor3 -> websiteの段階では平文が流れるわけだから、ここがhttpだと普通に見れてしまうわけですね。例えば攻撃者がtorネットワークにノードを配置するとき、そのノードがtor3になると通信が全部見られてしまうわけですね。 ちなみにtor3のことを出口ノードって言います。

torを利用するときに使えるツール

tor networkから接続いるか どのipから接続しているかがわかるサイト 上のやつの日本版(cman) torの速度をfast.comで

ログが取られていない、秘匿性の高いVPNサービス

protonVPN PrivateInternetAccess

すべての通信にtorを使うtailsというos

tails

vpn over tor と tor over vpn

vpnのの先にtorがあるか、torの先にvpnがあるかのちがいで安全性は変わるのだろうか?いや変わらないな。いずれにしろvpnで秘匿化されるphaseが入るから。いやでもtor3が攻撃者である可能性も否めないので、vpn over torが一番安全なのか。これも平文が流れる場合など限定されるけど。 んで、tor over vpnは、普通にvpnを起動してからtorブラウザを使えばいいね。 vpn over torが厄介でね、まずプロトコルはopenvpnじゃないとだめっぽいですね。んで、openvpnの設定ファイルに次の行を書き込むっぽい。

socks-proxy localhost 9050
socks-proxy-retry

vpn over torを使うと、マジで完全にuntracableになる(実はならない。その理由を後で書きます)。 そして、torのさきにvpnを置くことで、torからの接続をブロックしているサイトにもアクセスできるようになるんですね。すばらしい!!vpnの代わりにプロキシ―を使うこともできます。 ただ、ブラウザの通信以外もtorを通すためにはtorそのものをインストールする必要があります。 *vpn over torでも完全匿名にならない理由。 はい、それはtorの入口ノードがどこから接続が来ているかを監視している場合がるからですね。torの入口に攻撃者がいるっていうのが一番面倒くさいです。まあ、あくまでipが割れるってだけですけど。 なんで、一番安全なのはvpn over tor over vpnって感じかな。 これは確実にuntracableになる。

torと仮想通過

tor、という匿名ネットワークを利用するのだから、支払いも匿名でやりたいよね?となると、暗号通過しかないわけですね。暗号通過。 bitcon AtM

torノード一覧

ノードリスト

torリレーの参加方法

自動構築のためのスクリプトを自動で生成してくれるツール

海外の契約可能サーバ

flokinet nicevps [serverastra][https://serverastra.com] rabia urdn

vps.bg ->これが一番おおすすめです!! 暗号通貨での決済が可能。これらのサーバを仮て、torリレーのお手伝いをすることが可能です。さすがに自分の家からやるのは勇気がいるのでやらないでおこうと思いますが… うん、暗号通貨は勉強する価値があると思います。

torサービスの公開方法

ラズパイでTor/VPNに対応したWi-Fiルータを自作する方法。

これは価値があることですね。これができるとどうなるか? マジですごいことがおこります。 ラズパイでtorネットワークに接続します。 その後、softetherの公開vpnに接続します。 さらにtorブラウザを起動します。 何が起こるのでしょうか?

tor over vpn over torの完成です。torネットワークを2回通ります。ここまでくると経路の逆探知はもう無理でしょうね。

このサイト 二回てある方法が一番わかりやすいですね。 ぜろちは、前提知識がない人にあまりやさしくないですね。あの本を読んで一発で理解できる人はいないでしょうね。まったく!

いやすまん、こっちのサイトの方が断然わかりやすかった。よろしく頼む。

  1. 必要ソフトのインストール
sudo apt -y install hostapd dnsmasq tor
  1. 一旦サービスを停止
sudo systemctl stop hostapd
sudo systemctl stop dnsmasq
  1. dhcpの設定
# Example static IP configuration:
interface eth0
static ip_address=172.20.2.20/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=172.20.2.1
static domain_name_servers=8.8.8.8

# for tor endpoint
interface wlan0
static ip_address=192.168.42.1/24

tor endpointはDNSを設定しません。

  1. hostapdの設定
interface=wlan0
driver=nl80211
country_code=DFS-JP
ssid=<SSID>
hw_mode=a
channel=36
max_num_sta=255
macaddr_acl=0
ignore_broadcast_ssid=0

auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=<PASSWORD>

ieee80211n=0
wmm_enabled=1
ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40][MAX-AMSDU-3839]

ieee80211ac=1
vht_capab=[MAX-MPDU-3895][SHORT-GI-80][SU-BEAMFORMEE]
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=42

ieee80211d=1
local_pwr_constraint=3
spectrum_mgmt_required=1

ieee80211h=1

ssidとpaswdは適宜変えてください。

  1. hostapdの設定ファイルをいじる。 /etc/default/hostapdを開き#DAEMON_CONFを/etc/hostapd/hostapd.confに変更する。
# Defaults for hostapd initscript
#
# WARNING: The DAEMON_CONF setting has been deprecated and will be removed
#          in future package releases.
#
# See /usr/share/doc/hostapd/README.Debian for information about alternative
# methods of managing hostapd.
#
# Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration
# file and hostapd will be started during system boot. An example configuration
# file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz
#
DAEMON_CONF="/etc/hostapd/hostapd.conf"

# Additional daemon options to be appended to hostapd command:-
#       -d   show more debug messages (-dd for even more)
#       -K   include key data in debug messages
#       -t   include timestamps in some debug messages
#
# Note that -B (daemon mode) and -P (pidfile) options are automatically
# configured by the init.d script and must not be added to DAEMON_OPTS.
#
#DAEMON_OPTS=""
  1. dnsmasqの設定 /etc/dnsmasq.confを変更
interface=wlan0
dhcp-range=192.168.42.2,192.168.42.99,255.255.255.0,24h
  1. torの設定 /etc/tor/torrcに以下を追記
VirtualAddrNetworkIPv4 10.192.0.0/10
AutomapHostsOnResolve 1
TransPort 192.168.42.1:9040
DNSPort 192.168.42.1:53
  1. デーモンファイル二なんかを書き込む /lib/systemd/system/tor@default.service

コケるから何とかとか。わからんな。

[Unit]
Description=Anonymizing overlay network for TCP
After=network.target nss-lookup.target
PartOf=tor.service
ReloadPropagatedFrom=tor.service

[Service]
Type=notify
NotifyAccess=all
PIDFile=/run/tor/tor.pid
PermissionsStartOnly=yes
ExecStartPre=/usr/bin/install -Z -m 02755 -o debian-tor -g debian-tor -d /run/tor
ExecStartPre=/usr/bin/tor --defaults-torrc /usr/share/tor/tor-service-defaults-torrc -f /etc/tor/torrc --RunAsDaemon 0 --verify-config
ExecStart=/usr/bin/tor --defaults-torrc /usr/share/tor/tor-service-defaults-torrc -f /etc/tor/torrc --RunAsDaemon 0
ExecReload=/bin/kill -HUP ${MAINPID}
KillSignal=SIGINT
RestartSec=1s                  # ←←←←これです←←←← #
TimeoutStartSec=300
TimeoutStopSec=60
Restart=on-failure
LimitNOFILE=65536

# Hardening
AppArmorProfile=-system_tor
NoNewPrivileges=yes
PrivateTmp=yes
PrivateDevices=yes
ProtectHome=yes
ProtectSystem=full
ReadOnlyDirectories=/
ReadWriteDirectories=-/proc
ReadWriteDirectories=-/var/lib/tor
ReadWriteDirectories=-/var/log/tor
ReadWriteDirectories=-/run
CapabilityBoundingSet=CAP_SETUID CAP_SETGID CAP_NET_BIND_SERVICE CAP_DAC_READ_SEARCH
  1. サービスの起動
$ sudo systemctl restart dhcpcd
$ sudo systemctl unmask hostapd
$ sudo systemctl enable hostapd
$ sudo systemctl start hostapd
$ sudo systemctl start dnsmasq
$ sudo systemctl restart tor@default
  1. ipの転送の設定

まずは、いつも通り/etc/sysctl.confでipの転送を可能にするため、

net.ipv4.ip_forward=1

んで、

sudo sysctl -p

ではんえい。 さらに、wlan0にきた22番、53番以外は全部9040のtorネットワークに飛ばすようにする。

sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 22 -j REDIRECT --to-ports 22
sudo iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 53
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9040

以上の設定は、/etc/rc.localにも書き込んでおく。再起動時に自動で設定されるようにするため。

普通にルータとして使いたい場合は、いかのコマンドで現在設定されているiptablesの設定を一回フラッシュし、新しいルールを設定する。

$ sudo iptables -F
$ sudo iptables -t nat -F
$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

あと、再起動しないとたまにtorがうまく働いてないためか、インターネットに接続できないことがある。これは、

sudo systemctl restart tor

で解消できる。

以上、torルータの作り方でした。

さて、torがどのDNSを使っている野かという問題。

いろいろな意見がある。例えば、 クライアントがdnsをみにいって、解決された結果をtorのexitノードに渡す、という人もいるし、 torのexitノードがすべてやってくれるという人もいる。どちらが正しいのか、自分にはわからない。 が、どうやら、dnsはtorのexitノードが担当してくれるっぽいね。しかし、ここはちゃんと確証が必要なところではあるよね。

dns leakに関する説明

What are DNS leaks? In this context, with “DNS leak” we mean an unencrypted DNS query sent by your system OUTSIDE the established VPN tunnel.

Why does my system leak DNS queries? In brief: Windows lacks the concept of global DNS. Each network interface can have its own DNS. Under various circumstances, the system process svchost.exe will send out DNS queries without respecting the routing table and the default gateway of the VPN tunnel, causing the leak.

Should I be worried for a DNS leak? If you don’t want that your ISP, and anybody with the ability to monitor your line, knows the names your system tries to resolve (so the web sites you visit etc.) you must prevent your system to leak DNS. If you feel that you’re living in a human rights hostile country, or in any way the above mentioned knowledge may harm you, you should act immediately to stop DNS leaks.

この辺は、なぜインターネットはつながるのか?を読んだ後に考えるのがいいでしょうね。