ラズパイでTorルータを作ってみる

2024年11月28日

Blog Image

*コマンドについての解説はありません。

必要なもの

  • Raspberry pi 4(3)
  • ssh接続ができるもの(windows)

環境について

ラズパイの構成

IP : 192.168.0.50

Subnetmask : 255.255.255.0

Gateway : 192.168.0.1

DNS : 192.168.0.1

Tor-Wifiの構成

IP : 192.168.114.1

Subnetmask : 255.255.255.0

DHCP IP-Range: 192.168.114.20 - 192.168.114.30

SSID : MSS_mTOR

最初にやっておくこと

最初に、NetworkManagerを無効化して、dhcpcd5を入れておきます。

NetworkManagerのサービスを停止して無効化

sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager

dhcpcd5のインストール

sudo apt install dhcpcd5

dhcpcd5の有効化

sudo systemctl start dhcpcd
sudo systemctl enable dhcpcd

インストール

raspiの更新

sudo apt-get update
sudo apt-get upgrade

hostapdのインストール

sudo apt install hostapd

IPアドレスの固定

sudo nano /etc/dhcpcd.conf

一番下に以下を張り付ける(環境によってipアドレスを変更してください)

interface eth0
static ip_address=192.168.0.50/24 #固定するIP
static routers=192.168.0.1 #ルータのIP
static domain_name_servers=8.8.8.8

interface wlan0
    static ip_address=192.168.114.1/24 #Tor-wifiの固定IP
    nohook wpa_supplicant

一度rebootしましょう。

ip aをすると、IPアドレスが固定したIPになっていると思います。なっていなければ、dhcpcd.confの部分がおかしいかもしれません。(私はNetworkManagerを有効化したまま構築しようとしてここで沼りました)

hostapdをunmaskする

sudo systemctl unmask hostapd
sudo systemctl enable hostapd

dnsmasqのインストール

sudo apt install dnsmasq

netfilter-persistentとiptables-persistentをインストール

sudo DEBIAN_FRONTEND=noninteractive apt install -y netfilter-persistent iptables-persistent

routed-ap.confをいじる

sudo nano /etc/sysctl.d/routed-ap.conf

このファイルに以下を書き込む。

net.ipv4.ip_forward=1

iptablesとnetfilter

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo netfilter-persistent save

dnsmasq.confのリネーム

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

dnsmasq.confをいじる

sudo nano /etc/dnsmasq.conf

dnsmasq.confに以下を張り付ける

interface=wlan0
dhcp-range=192.168.114.20,192.168.114.30,255.255.255.0,24h #DHCP経由で提供されるIPアドレスのプール

rfkillする

sudo rfkill unblock wlan

hostapd.confをいじる

sudo nano /etc/hostapd/hostapd.conf

hostapd.confに以下を書き込む。

country_code=JP
interface=wlan0
ssid=<設定したいSSID>
hw_mode=g
channel=7
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=<設定したいパスフレーズ>
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

ここで再起動

torのインストール

sudo apt-get install tor

torrcをいじる

sudo nano /etc/tor/torrc

#SocksPolicy reject *の次の段に以下を張り付ける。

Log notice file /var/log/tor/notices.log
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsSuffixes .onion,.exit
AutomapHostsOnResolve 1

TransPort 0.0.0.0:9040
DNSPort 0.0.0.0:53

iptablesとnetfilter

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
sudo netfilter-persistent save

アクセス権の設定

sudo touch /var/log/tor/notices.log
sudo chown debian-tor /var/log/tor/notices.log
sudo chmod 644 /var/log/tor/notices.log
sudo touch /var/log/tor/debug.log
sudo chown debian-tor /var/log/tor/debug.log
sudo chmod 644 /var/log/tor/debug.log

torの有効化

sudo service tor start
sudo systemctl unmask tor
sudo systemctl enable tor

rebootする

wifi一覧に表示したくないなら

一覧に表示したくないのであれば、configに一行追加するだけで表示されなくすることができます。

hostapd.confをいじる

/etc/hostapd/hostapd.conf

以下のコードを入れるだけ。

ignore_broadcast_ssid=1

ちなみに、偽装できるのであまり意味はないですが、MACアドレスフィルタリングを使用して、特定のデバイスだけに接続を許可することもできます。

hostapd.confをいじる

/etc/hostapd/hostapd.conf

以下のコードを入れる。

macaddr_acl=1
accept_mac_file=/etc/hostapd/allowed_macs

/etc/hostapd/allowed_macsをいじる

00:80:0F:11:XX:XX

このように、MACアドレスをただ一行ずつ書いていくだけで、フィルタリングをすることができます。

後はhostapdを再起動させれば完了です。

sudo systemctl restart hostapd