2015. 4. 5. 20:09

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 네트워크에 연결되었는지를 확인할 수 있다.

https://check.torproject.org



만약 위 화면과 다르게 양파에 붉은 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






Posted by 해비