P.O.R.T.A.L (Personal Onion Router To Assure Liberty) ใช้ติดตั้งกับ firmware ของ router (คล้ายๆ OpenWRT) เพื่อให้ใช้โปรแกรม Tor ทำหน้าเป็น router ต่อกับเครือข่ายแบบ Onion เพื่อการท่องอินเทอร์เน็ตแบบแกะรอยได้ยาก (ไม่อยากถูกสอดแนม แนวๆ เหมือนกับ OpenVPN)
และก็มีเวอร์ชันของ Raspberry Pi ด้วยครับ ได้ชื่อว่า PORTALofPi โดยเป็น shell script ช่วยติดตั้งโปรแกรมบน ArchLinux ARM Raspberry Pi เท่าที่ไล่สคริปติดตั้งดูแล้ว ใช้สิทธิ์ root ครับ (ArchLinux ปกติจะ login เริ่มต้นเป็น root มาให้) โดยมันจะติดตั้ง Tor และโปรแกรมอื่นๆ ที่เกี่ยวของ เช่น Polipo เพื่อมาทำ proxy เปิดใช้งาน hardware RNG แก้ IP tables ทำ DHCP และอื่นๆ โดยมันจะแจกการเชื่อมต่ออินเทอร์เน็ตแบบ Tor ผ่าน eth0 ซึ่งก็คือ LAN ที่มีอยู่บน Raspberry Pi Model B (หรือ B+) นะครับ (ไม่ใช่ Wi-Fi) เราต้องหาทางต่ออินเทอร์เน็ตทางอื่นที่ไม่ใช่ eth0 เช่น USB 3G Dongle หรือ Wi-Fi
ผมทดลองใช้แบบ Wi-Fi ก็สั่ง wifi-menu -o มันก็จะมีเมนูมาให้เลือก เลือกต่อกับที่ผมอยู่ประจำแล้ว
wget https://raw.githubusercontent.com/grugq/PORTALofPi/master/build.sh chmod +x build.sh ./build.sh
อันที่จริง เจ้าของสคริป บอกวิธีติดตั้งใช้งานไว้ไม่หมด ต้องไปค้นคว้าวิธีต่อเอง (The configuration of access to the Internet is left as an exercise to the reader) เมื่อจะต่อ Ethernet กับคอมพิวเตอร์เพื่อจะต่อ Tor ก็เจอปัญหาว่าได้ IP address จาก DHCP มา แป๊ปเดียวแล้วหายไป ส่วนที่ผัง Raspberry Pi ซึ่งเป็น static นั้น IP address ก็หายด้วย ดูใน log เจอ dhcp packet received on eth0 which has no address ก็เลยเปลี่ยนแนว ทำเองใหม่หมด แต่ใช้ Raspbian นะครับ (งมมาตั้งนาน)
ก็ใช้ SD card เดิมที่เคยทำ OpenVPN นั้นล่ะครับมาทำต่อ แต่คราวนี้ไม่ต้อง bridge กับ tun0 แผนการคือจะต่อกับอินเทอร์เน็ตผ่าน eth0 และแจกอินเทอร์เน็ต (ซึงไปใช้ Tor) ผ่าน Wi-Fi เหมือนเดิม ขั้นแรกก็สั่งติดตั้ง Tor ครับ
sudo apt-get install tor
จากนั้นแก้ไฟล์ /etc/tor/torrc ซึ่งเป็น config ของ Tor ใส่ข้อความต่อไปนี้อยู่บนๆ ของไฟล์ครับ
Log notice file /var/log/tor/notices.log VirtualAddrNetwork 10.192.0.0/10 AutomapHostsSuffixes .onion,.exit AutomapHostsOnResolve 1 TransPort 9040 SocksPort 9050 TransListenAddress 192.168.10.1 DNSPort 53 DNSListenAddress 192.168.10.1
จะเห็นว่ามันไปอ้างไฟล์ /var/log/tor/notices.log ใช้เก็บบันทึกการใช้งาน ถ้ายังไม่มีไฟล์นี้ (ซึ่งน่าจะเป็นอย่างนั้น) เราก็ต้องสร้างมันขึ้นมาดวยครับ
sudo touch /var/log/tor/notices.log sudo chown debian-tor /var/log/tor/notices.log sudo chmod 644 /var/log/tor/notices.log
จากนั้นเราก็จะล้างบาง IPtables เก่า แล้วใส่ของใหม่สำหรับ Tor
sudo iptables -F sudo iptables -t nat -F 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 sh -c "iptables-save > /etc/iptables.ipv4.tor"
ในส่วนที่เกี่ยวกับ Wi-Fi ที่จะใช้แจกเน็ต ยังเหมือนเดิม (ตอนที่ทำ OpenVPN) ครับ คือสั่ง sudo ifconfig wlan0 192.168.10.1 (เปลี่ยน IP address ได้นะครับ เช่นเดียวกับที่อธิบายในตอนที่ทำ OpenVPN) ส่วนไฟล์อื่นๆ ที่เกี่ยวข้องกับ DHCP หรือ DNS เช่น
/etc/udhcpd.conf
/etc/default/udhcpd
/etc/hostapd/hostapd.conf
/etc/default/hostapd
/etc/bind/named.conf.options
/etc/sysctl.conf
ก็ทำเหมือนเดิม ยกเว้น /etc/network/interfaces ตรงบรรทัดที่ขึ้นต้นด้วย up iptables-restore ซึ่งควรจะเป็นบรรทัดสุดท้าย (ถ้าไม่เป็นก็ย้ายด้วยนะครับ) ให้แก้เป็น up iptables-restore < /etc/iptables.ipv4.tor เพราะก่อนหน้านี้เราทำ sudo sh -c “iptables-save > /etc/iptables.ipv4.tor” นั้นเองครับ
จากนั้นก็สั่งเริ่มใช้งาน Tor รวมถึงให้มันเริ่มทำงานอีกทุกครั้งเมื่อ reboot ขึ้นมาครับ
sudo service tor restart sudo update-rc.d tor enable
แล้วก็ต่อกับ Tor ด้วยการ login Wi-Fi และดูที่ browser หน่อย ว่าต่อ Tor ได้ไหม
ได้แนวทางจาก http://www.makeuseof.com/tag/build-your-own-safeplug-tor-proxy-box/