Big Brother가 온라인에서 사용자를 추적하지 못하도록 Tor를 사용합니까 ? 사용하기는 매우 간단하지만 모든 인터넷 지원 장치에서 Tor를 구성하는 것은 상당히 번거로울 수 있습니다 .
Raspberry Pi를 익명의 무선 액세스 포인트로 사용하면 많은 번거로움을 덜 수 있습니다. Pi는 IP 주소를 할당하고 연결된 모든 장치는 Tor 네트워크 를 통해 인터넷에 액세스할 수 있습니다 .
이 프로젝트를 시작하고 실행하려면 다음이 필요합니다.
- Raspbian 배포판이 있는 SD 카드와 함께 Raspberry Pi . 이전에 이 작업을 수행하지 않은 경우 연습을 따라 Raspbian을 시작하고 실행하십시오 .
- 이더넷 케이블도 필요합니다. 한쪽 끝을 Pi의 이더넷 포트에 연결하고 다른 쪽 끝을 무선 라우터에 연결합니다. 이것이 Pi가 인터넷에 연결되는 방식입니다.
- Raspberry Pi와 호환되는 USB Wi-Fi 어댑터도 필요합니다. 아직 가지고 있지 않다면 Pi에서 작동하는 것으로 알려진 호환 어댑터 목록을 확인하십시오 .
액세스 포인트 파이
Pi를 설정하면 SSH를 통해 원격 시스템에서 구성할 수 있습니다. 튜토리얼의 나머지 부분에서는 Pi의 IP 주소가 192.168.2.100 이라고 가정합니다 . Pi와 동일한 라우터에 연결된 터미널을 시작하고 입력하십시오.
ssh 파이@192.168.2.100
그것에 연결합니다. Pi에 자신을 인증한 후 iwconfig를 사용하여 장치에서 무선 어댑터를 인식하는지 확인하십시오. 이제 다음을 사용하여 패키지 목록을 새로 고칩니다.
sudo apt-get 업데이트
다음을 사용하여 액세스 포인트 역할을 할 소프트웨어를 설치합니다.
sudo apt-get install hostapd isc-dhcp-server
설치가 완료되면 설정할 차례입니다. DHCP를 제어하고 연결된 모든 장치에 IP 주소를 자동으로 할당하는 /etc/dhcp/dhcpd.conf 파일을 편집하여 시작하십시오 . 다음을 사용하여 나노 텍스트 편집기 에서 엽니다.
스도 나노 /etc/dhcp/dhcpd.conf
다음 두 줄 앞에 #을 추가하여 다음 두 줄을 주석 처리합니다.
#option 도메인 이름 "example.org";
#option 도메인 이름 서버 ns1.example.org, ns2.example.org;
동일한 파일에서 아래로 스크롤하여 authoritative라는 단어의 주석 처리를 제거하십시오. 앞의 #을 제거하면 됩니다 .
그런 다음 파일 끝까지 아래로 스크롤하고 다음 줄을 추가합니다.
서브넷 192.168.12.0 넷마스크 255.255.255.0 {
범위 192.168.12.5 192.168.12.50;
옵션 브로드캐스트 주소 192.168.12.255;
옵션 라우터 192.168.12.1;
기본 임대 시간 600;
최대 임대 시간 7200;
옵션 도메인 이름 "로컬";
옵션 도메인 이름 서버 8.8.8.8, 8.8.4.4;
}
이 줄에서 Pi 액세스 포인트( 192.168.12.1 )의 IP 주소, 연결된 장치에 전달할 IP 주소 범위( 192.168.12.5 ~ 192.168.12.50 ) 및 도메인 이름 서버( 8.8.8.8 및 8.8.4.4 ). 원하는 대로 이러한 값을 변경할 수 있습니다. 완료되면 파일을 저장(Ctrl+X)합니다.
고정 IP 설정
이제 /etc/default/isc-dhcp-server를 편집하여 새 DHCP 서버가 수신해야 하는 인터페이스를 지정합니다. 파일을 열고 INTERFACES="" 라는 줄까지 아래로 스크롤합니다 . 이제 INTERFACES="wlan0" 으로 표시되도록 따옴표 사이에 wlan0 을 삽입 하고 파일을 저장합니다.
이제 무선 어댑터(wlan0)를 설정하고 고정 IP 주소를 지정합니다. 먼저 sudo ifdown wlan0 명령을 사용하여 무선 어댑터를 비활성화한 다음 /etc/network/interfaces 파일을 엽니다. 파일에서 #을 추가하여 다음과 같이 wlan0과 연결된 모든 기존 항목을 주석 처리합니다.
# iface wlan0 inet manual
# wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
# iface default inet dhcp
Then add the following lines below the line that reads allow-hotplug wlan0 to set the static IP address for the new access point:
iface wlan0 inet static
address 192.168.12.1
netmask 255.255.255.0
Save the file and activate the interface with
sudo ifconfig wlan0 192.168.12.1
Make your point
Now that we've defined the wireless access point, it's time to configure it. Create a new file called /etc/hostapd/hostapd.conf with the following contents:
인터페이스=wlan0
ssid=TorSpot
hw_mode=g
채널=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=$Your_Passphrase$
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
TorSpot이라는 암호로 보호되는 네트워크를 설정했습니다. ssid= 문자열 에 지정하여 액세스 포인트에 대해 다른 이름을 지정할 수 있습니다 . 또한 wpa_passphrase= 문자열을 변경하여 사용자 지정 암호를 지정합니다. Pi의 액세스 포인트에 자신을 인증하려면 이 암호를 입력해야 합니다.
다음으로 /etc/default/hostapd 파일 에서 이 구성 파일을 가리켜 Pi에게 이 구성 파일을 찾을 위치를 알려줍니다 . 파일을 열고 #DAEMON_CONF="" 라는 주석 처리된 줄을 찾은 다음 주석을 제거하고 DAEMON_CONF="/etc/hostapd/hostapd.conf" 가 되도록 편집합니다 .
NAT 설정
이제 여러 클라이언트가 Pi의 액세스 포인트에 연결하고 단일 이더넷 IP를 통해 모든 트래픽을 라우팅할 수 있도록 NAT를 설정해야 합니다. /etc/sysctl.conf 파일을 편집 하고 맨 아래에 다음 행을 추가하십시오.
net.ipv4.ip_forward=1
파일 저장 후 엔터
sudo sh -c "에코 1 > /proc/sys/net/ipv4/ip_forward"
전달을 활성화합니다. 이제 인터넷에 연결된 이더넷 포트(eth0)와 네트워크 내의 장치에 노출되는 Wi-Fi 액세스 포인트(wlan0)를 연결할 라우팅 규칙을 지정해야 합니다.
sudo iptables -t nat -A POSTROUTING -o eth0 -j 마스커레이드
sudo iptables -A FORWARD -i eth0 -o wlan0 -m 상태 --state 관련, 설정됨 -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j 수용하다
기본적으로 이러한 규칙은 Pi를 다시 시작할 때 플러시됩니다. 영구적으로 만들려면 먼저 다음을 실행하십시오.
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
그런 다음 /etc/network/interfaces 파일을 편집하고 맨 아래로 스크롤하여 추가하십시오.
위로 iptables-restore < /etc/iptables.ipv4.nat
이것이 하는 일은 장치가 부팅 시 활성화될 때 규칙을 로드하는 것입니다.
이제 Pi 액세스 포인트가 모두 설정되었습니다. 테스트하려면 다음을 사용하여 DHCP 서버를 다시 시작하십시오.
sudo 서비스 isc-dhcp-server 재시작
다음 명령을 사용하여 구성으로 액세스 포인트를 수동으로 활성화합니다.
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
'알 수 없는 드라이버' 오류가 발생하면 '자신의 hostapd' 섹션을 읽어보세요. 모든 것이 순조롭게 진행되면 무선 액세스 포인트(TorSpot)가 사용 가능한 Wi-Fi 핫스팟 목록에 나열됩니다.
다른 컴퓨터나 스마트폰에서 연결하고 hostapd.conf 파일에 지정한 비밀번호를 사용하여 인증할 수 있습니다. 연결되면 정상적으로 인터넷을 검색할 수 있습니다.
새 액세스 포인트를 테스트한 후에는 Pi가 부팅되자마자 활성화되도록 설정을 굳힙니다. 다음 명령을 사용하여 hostapd 및 DHCP 서비스를 시작합니다.
sudo 서비스 hostapd 시작
sudo 서비스 isc-dhcp-server 시작
이제 다음을 사용하여 초기화 스크립트를 업데이트합니다.
sudo 업데이트-rc.d hostapd 활성화
sudo 업데이트-rc.d isc-dhcp-서버 활성화
이제 다음 명령을 사용하여 Raspberry Pi를 다시 시작합니다.
sudo 종료 -r 지금
Raspberry Pi가 다시 백업되면 새 액세스 포인트에 연결하고 정상적으로 탐색할 수 있습니다.
토리파이 액세스
이제 Raspberry Pi가 무선 핫스팟으로 완벽하게 작동합니다. 그러나 데이터는 여전히 익명화되지 않습니다. 이제 Tor를 믹스에 추가해 보겠습니다 . Pi에 SSH로 다시 연결하고 다음을 사용하여 Tor를 설치합니다 .
sudo apt-get 설치 토르
설치되면 Tor의 구성 파일 /etc/tor/torrc 를 편집 하고 맨 위에 다음을 추가합니다.
로그 알림 파일 /var/log/tor/notices.log
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsSuffixes .onion,.exit
AutomapHostsOnResolve 1
TransPort 9040
TransListenAddress 192.168.12.1
DNSPort 53
DNSListenAddress 192.168.12.1
이러한 설정은 액세스 포인트의 IP 주소에 대해 Tor 에 알리고 이를 통해 흐르는 모든 트래픽을 익명화하도록 요청합니다.
다음으로 Wi-Fi 어댑터(wlan0)를 통한 연결이 Tor를 통해 라우팅되도록 라우팅 테이블을 변경합니다 . 먼저 다음 명령을 사용하여 기존 리디렉션 및 NAT 규칙을 플러시합니다.
sudo iptables -F
sudo iptables -t nat -F
여전히 Pi에 SSH로 연결할 수 있기를 원하므로 다음과 같이 SSH의 포트 22에 대한 예외를 추가합니다.
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 22 -j REDIRECT --to-ports 22
이제 두 가지 규칙을 추가합니다. 첫 번째는 DNS 조회를 위한 통과 규칙이고 두 번째는 모든 TCP 트래픽을 Tor 의 포트 9040으로 보냅니다.
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 -포트 9040
이전과 마찬가지로 이 규칙은 다음 세션에 적용되지 않습니다. 재부팅 시 로드하려면 다음과 같이 이전과 같이 NAT 저장 파일에 저장하기만 하면 됩니다.
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
이전 섹션에서 인터페이스가 활성화될 때 이 파일의 내용을 로드하도록 /etc/network/interfaces 파일을 이미 구성했습니다.
이제 다음을 사용하여 Tor 서비스를 활성화할 수 있습니다.
sudo 서비스 시작
관련 부팅 스크립트를 다음과 같이 업데이트합니다.
sudo update-rc.d tor 활성화
그게 다야. 이제 Pi를 다시 시작하십시오. 다시 백업되면 이전과 같이 Pi 핫스팟인 TorSpot에 연결할 수 있습니다. 그러나 이전과 달리 이제 모든 트래픽이 익명의 Tor 네트워크를 통해 라우팅됩니다 .
TorSpot에 연결된 모든 장치에서 https://torproject.org를 확인하여 이 문제가 발생하는지 확인할 수 있습니다 . 페이지에는 ISP가 아닌 IP 주소도 나열됩니다. TorSpot에 연결된 다른 장치에서 이 페이지를 방문하면 다른 주소가 표시됩니다. 축하합니다. 이제 모든 장치에서 익명으로 웹을 탐색할 수 있습니다!
빠른 팁
- Pi에 원격으로 연결할 때 로케일 오류가 발생하면 /etc/ssh/ssh_config를 편집하고 SendEnv LANG LC_* 행을 주석 처리하여 로케일을 전달하지 않도록 하십시오 .
- 모든 시스템 메시지를 주시하려면 tail -f /var/log/syslog 명령을 사용하십시오 . Pi 핫스팟에 연결할 수 없는 경우 유용할 수 있습니다.
- 이 자습서에서는 Google의 DNS 서비스를 사용했지만 OpenDNS 또는 ISP의 DNS 서버와 같은 다른 서비스를 /etc/dhcp/dhcpd.conf 파일에서 지정하여 사용할 수 있습니다.