Tor WiFi Router 만들기
WiFi 접속만으로 Tor Network 에 연결할수 있는 라우터를 만들어 보겠습니다.
준비물
- Raspberry pi 본체 (또는 linux OS가 설치된 시스템)
- USB WLAN(RTL8188CUS) 무선랜
(여기서는 iptime의 N100mini 를 사용했습니다만 동일 칩셋이 들어간 어떤 무선랜이라도 상관없을 것이라 봅니다)
- SD(Raspbian OS) 라즈비안OS가 설치된 SD 메모리 (기타 저장장치에 linux 가 설치된 시스템이면 필요없음)
결과물
- Tor WiFi AP 토르 네트워크에 연결되는 와이파이 액세스 포인트
Tor 이 무엇인지, 어디에 쓰이는지 모르시는분들은 검색해서 참조하여 주십시오.
(양파 모양의 아이콘을 띄고 있습니다.)
[작업순서]
1. AP가 될 무선랜 어뎁터의 IP 설정
2. DHCP서버 설치 및 설정
3. 무선랜을 AP로 변신시켜줄 hostapd 설치 및 설정
4. rtl871xdrv 가 포함된 hostapd 를 다운로드 하여 덮어쓰자
5. tor 설치 및 설정
6. iptables 설정
7. 로그 파일 생성 및 설정
8. Tor 자동시작 설정
1. AP가 될 무선랜 어뎁터의 IP 설정
# sudo vim /etc/network/interfaces |
|
1 2 3 4 |
iface wlan0 inet static address 192.168.42.1 netmask 255.255.255.0 up iptables-restore < /etc/iptables.ipv4.nat |
2. DHCP서버 설치 및 설정
# sudo apt-get install isc-dhcp-server |
- DHCP 서버 설치
# sudo vim /etc/dhcp/dhcpd.conf |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
#option domain-name "example.orWg"; #option domain-name-servers ns1.example.org, ns2.example.org; authoritative; subnet 192.168.42.0 netmask 255.255.255.0 { range 192.168.42.10 192.168.42.50; option broadcast-address 192.168.42.255; option routers 192.168.42.1; default-lease-time 600; max-lease-time 7200; option domain-name "local"; option domain-name-servers 8.8.8.8, 8.8.4.4; } |
- 진하게 표시된 부분에 유의하여 설정을 진행합니다.
# sudo vim /etc/default/isc-dhcp-server |
|
1 |
INTERFACES="wlan0" |
- DHCP를 적용할 장치를 설정합니다.
# sudo service isc-dhcp-server restart |
- DHCP 서버 재시작
3. 무선랜을 AP로 변신시켜줄 hostapd 설치 및 설정
# sudo apt-get install hostapd |
- hostapd 설치
# sudo vim /etc/hostapd/hostapd.conf |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
interface=wlan0 #driver=nl80211 driver=rtl871xdrv ssid=onionWiFi hw_mode=g ieee80211n=1 wmm_enabled=1 wmm_ac_bk_cwmin=4 wmm_ac_bk_cwmax=10 wmm_ac_bk_aifs=7 wmm_ac_bk_txop_limit=0 wmm_ac_bk_acm=0 wmm_ac_be_aifs=3 wmm_ac_be_cwmin=4 wmm_ac_be_cwmax=10 wmm_ac_be_txop_limit=0 wmm_ac_be_acm=0 wmm_ac_vi_aifs=2 wmm_ac_vi_cwmin=3 wmm_ac_vi_cwmax=4 wmm_ac_vi_txop_limit=94 wmm_ac_vi_acm=0 wmm_ac_vo_aifs=2 wmm_ac_vo_cwmin=2 wmm_ac_vo_cwmax=3 wmm_ac_vo_txop_limit=47 wmm_ac_vo_acm=0 channel=6 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=yourpassword wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP |
- 1. AP의 장치명을 설정.
- 3. AP의 드라이버명을 지정.
- 4. SSID 에 노출될 명칭
- 6. n 모드 지원
- 7 ~ 27. WMM (무선 QoS) 설정
- 28. 사용할 무선랜 채널
- 30~36. 무선보안 설정
# sudo vim /etc/default/hostapd |
|
1 |
DAEMON_CONF="/etc/hostapd/hostapd.conf" |
- hostapd.conf 파일위치 설정
4. rtl871xdrv 가 포함된 hostapd 를 다운로드 하여 덮어쓰자
1 |
# wget http://www.adafruit.com/downloads/adafruit_hostapd.zip |
2 |
# unzip adafruit_hostapd.zip |
3 |
# sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.ORIG |
4 |
# sudo mv hostapd /usr/sbin |
5 |
# sudo chmod 755 /usr/sbin/hostapd |
5. tor 설치 및 설정
# sudo apt-get install tor |
- tor 설치
# sudo vim /etc/tor/torrc |
|
1 2 3 4 5 6 7 8 |
Log notice file /var/log/tor/notices.log VirtualAddrNetwork 10.192.0.0/10 AutomapHostsSuffixes .onion,.exit AutomapHostsOnResolve 1 TransPort 9040 TransListenAddress 192.168.42.1 DNSPort 53 DNSListenAddress 192.168.42.1 |
- 7, 8 IP주소는 위에서 설정한 wlan0 의 것과 동일하게 합니다.
6. iptables 설정
iptables -P INPUT ACCEPT iptables -F iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT iptables -A INPUT -i eth0 -p udp --sport 68 --dport 67 -j ACCEPT iptables -A INPUT -i wlan0 -j ACCEPT iptables -A INPUT -i eth0 -p tcp -m tcp --sport 137 --dport 137 -j ACCEPT iptables -A INPUT -i eth0 -p udp -m udp --sport 137 --dport 137 -j ACCEPT iptables -A INPUT -i eth0 -p udp -m udp --sport 138 --dport 138 -j ACCEPT iptables -A INPUT -i eth0 -p tcp -m tcp --sport 139 --dport 138 -j ACCEPT iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -nL
iptables -t nat -F iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 22 -j REDIRECT --to-ports 22 iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 53 iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9040 iptables -t nat -nL |
- eth0 포트 22 는 ssh 접속용, 67~68 은 dhcp, 137~139 는 netbios (RFC 1001, 1002 문서 참고)
- wlan0 의 포트 리다이렉트 설정은 ssh 접속용인 22번을 제외하고 tor 라우터 설정.
1 |
# sudo iptables-save > iptables.conf |
2 |
# sudo cp iptables.conf /etc/iptables.conf |
- 부팅 후 iptables 규칙이 유지되도록 현재 규칙을 저장
# sudo vim /etc/network/interfaces |
|
1 |
pre-up iptables-restore < /etc/iptables.conf |
- eth0 설정 아랫부분에 위 내용 추가
7. 로그 파일 생성 및 설정
1 |
# sudo touch /var/log/tor/notices.log |
2 |
# sudo chown debian-tor /var/log/tor/notices.log |
3 |
# sudo chmod 644 /var/log/tor/notices.log |
8. Tor 자동시작 설정
1 |
# sudo service tor start |
2 |
# sudo service tor status |
3 |
# sudo update-rc.d tor enable |
# ls -l /var/log/tor |
- tor 로그를 확인할 수 있다.
웹브라우저를 열고 아래 주소에 접속하면 Tor 네트워크에 연결되었는지를 확인할 수 있다.
만약 위 화면과 다르게 양파에 붉은 X 자 표시가 되어있다면, Tor 네트워크로 접속되지 않았음을 의미한다.
[변경사항]
- 2015.04.22 : iptables 설정 중 deny 로그 남기는 부분의 설정 위치에 대한 오류가 있어 정정합니다.[참고사이트]
http://www.maketecheasier.com/set-up-raspberry-pi-as-wireless-access-point/
http://www.raspberrypi.org/forums/viewtopic.php?t=53943&p=413909
http://www.raspberrypi.org/forums/viewtopic.php?f=28&t=44044
https://learn.adafruit.com/onion-pi/install-tor
http://www.instructables.com/id/Raspberry-Pi-Tor-relay/step1/Start-the-TOR-Server/
http://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf