Ubuntu VPS에서 Tor 중간/가드 릴레이를 설정하는 방법

이 기사는 기계로 번역되었습니다
원문 표시

이제 우리 모두는 Tor가 무엇인지 알고 있습니다. 부당한 검열에 맞서 싸우기 위한 도구로 알고 있든, 온라인으로 마약을 구매하기 위해 여는 특수 브라우저로 알고 있든, 지난 10년 동안 점점 더 널리 사용되고 있으며 정부 방화벽 우회, 운영 중 익명 유지와 같은 중요한 작업을 위한 강력한 도구로 남아 있습니다. 홈 서버.

이 게시물에서는 다양한 시나리오에서 The Onion Router(예, TOR의 약자)가 어떻게 작동하는지, 그리고 Tor 네트워크가 검열 저항성을 유지하도록 돕는 동시에 보안 및 분산화를 도울 수 있는 방법에 대해 간략하고 높은 수준의 개요를 제공할 것입니다. 보안이나 개인정보 보호를 희생하지 않고도 성능 향상을 위해 대역폭을 할당할 수 있습니다.

이 가이드는 VPS에서 새로 설정하는 데 중점을 둘 것입니다. 홈 네트워크의 대역폭을 많이 소모하지 않고도 Vultr의 월 6달러 옵션과 같은 저렴한 옵션을 사용할 수 있습니다. 또한 모든 릴레이가 Tor 릴레이 디렉터리에 저장되므로 Tor 릴레이를 실행하면 IP 주소가 공개적으로 노출됩니다. 대부분의 홈 인터넷 IP 할당의 동적 특성으로 인해 릴레이의 신뢰성이 저하될 수도 있습니다.

기본적으로 VPS에서 실행하려면 6달러를 지불할 가치가 있습니다.

우선, 매우 중요한 구별이 이루어져야 합니다…

"중간" 및 "가드" 릴레이와 출구 노드 비교

Tor에는 가드(또는 진입) 노드, 중간 노드 및 출구 노드의 세 가지 유형의 노드가 있습니다.

이름에서 알 수 있듯이 진입 노드는 Tor 네트워크에 대한 입구입니다. 일반적인 기존 .com 도메인을 입력하든 .onion 도메인을 사용하든 트래픽은 먼저 진입 노드를 통해 라우팅됩니다.

중간 노드도 마찬가지로 설명이 필요합니다. Tor는 여러 릴레이(일반적으로 3개) 간에 트래픽을 반송하는 방식으로 작동합니다. 이는 진입/보호 노드, 중간 노드로 구성되며, 일반 "clearnet" 또는 "darknet" Tor 숨겨진 서비스에 액세스할지 여부에 따라 출구 노드(clearnet으로) 또는 직접 방문 중인 사이트의 서버에 중간 노드를 연결합니다(숨겨진 서비스).

기술적으로 진입/보호 릴레이와 중간 릴레이는 동일하지만, 릴레이는 한 달 정도 활성화되고 네트워크에서 충분히 빠른 것으로 평가된 후에만 진입으로 사용됩니다.

Tor를 통해 일반 "clearnet" 사이트로 이동하면 트래픽은 입구, 중간 및 출구 노드를 통해 라우팅됩니다. .onion 사이트로 이동하면 트래픽이 Tor 네트워크 내에서 계속 라우팅되므로 종료 노드가 필요하지 않습니다.

여기서 중요한 경고가 나옵니다!

진입/중간 노드를 실행하는 것은 전혀 문제가 없지만 관련된 위험을 완전히 이해하고 적절한 법적 조언을 받지 않는 한 출구 노드를 실행하지 마십시오 .

이는 Tor 프로젝트 자체에서도 집에서 출구 노드를 실행하면 안되는 이유에 대한 페이지를 전용으로 제공하고 Tor 네트워크를 지원하고 이를 보장할 수 있는 비영리 또는 유한 회사에서 수행하도록 지시하는 매우 중요한 주제입니다. 당신은 법적으로 보호받고 있으며, 누군가가 당신의 IP 주소에서 나오는 것처럼 보이는 불법 행위를 해서 습격을 당하면 어떻게 해야 할까요?

다행스럽게도 Tor 입구/중간 릴레이만 설정하고 모든 출구 트래픽을 비활성화하는 경우에는 전혀 문제가 되지 않습니다 . 위의 위험은 종료 노드에만 적용됩니다.

이는 표준 항목/중간 노드를 사용하면 Tor 네트워크 내에서 암호화된 트래픽만 릴레이하고 트래픽이 귀하의 IP 또는 VPS IP에서 "클리어넷"에 도달하지 않기 때문입니다. 릴레이는 다른 사람이 운영하는 종료 노드로 트래픽을 보내거나 사용자가 Tor 숨겨진 서비스에 액세스하는 경우 Tor 네트워크 내에서 트래픽을 보냅니다.

두 경우 모두 Tor 회로의 암호화된 특성으로 인해 네트워크가 항목 및 중간 릴레이를 모니터링할 수 없으며 릴레이를 통해 라우팅되는 트래픽이 IP 주소에 연결되지 않습니다.

이것이 바로 이 가이드에서 다룰 내용입니다. Tor 네트워크에서 진입/중간 릴레이를 안전하게 설정하는 방법. VPS에서 올바르게 설정하고 Tor 네트워크의 보안, 속도, 분산화 및 검열 저항을 지원하는 경우 이는 사실상 위험이 없습니다.

VPS 설정

Debian 또는 Ubuntu로 기본 VPS를 실행하세요. 이상적으로는 로그인에 비밀번호가 아닌 SSH 키를 사용해야 합니다. 또한 자신의 IP 주소에서 포트 22를 통해 들어오는 트래픽만 허용하도록 호스트의 방화벽 규칙을 설정해야 합니다. 이렇게 하면 IP 범위 외부의 누군가가 SSH 로그인을 크랙하려는 시도조차 불가능하게 됩니다.

중요: 이러한 호스트 방화벽 규칙에서도 IP뿐만 아니라 어디에서나 HTTPS(포트 443)를 허용해야 합니다!

SSH가 IP로부터의 연결만 허용하도록 허용하는 Vultr 방화벽 규칙 페이지

VPS 자체의 하드웨어에는 vCPU 1개와 RAM 1GB만 있을 수도 있습니다. 여기서 가장 주목해야 할 부분은 대역폭이다. 한 달에 최소 수백 GB, 이상적으로는 최소 1TB가 필요하며, 초과 요금이 부과된다면 합리적이어야 합니다. 다행히도 요즘에는 대역폭이 저렴한 경향이 있습니다.

Digital Ocean과 같은 일부 호스트는 대역폭도 "풀링"하므로 이미 VPS 또는 그 중 몇 개가 있고 할당된 대역폭 중 일부가 사용되지 않은 경우 다른 호스트에서 대신 사용할 수 있습니다.

걱정하지 마십시오. 대역폭 사용을 제어하려면 릴레이를 활성화하기 전에 릴레이 구성에서 제한을 설정할 수 있습니다.

기본 VPS 구성

VPS를 실행하고 SSH를 연결한 후 첫 번째 단계는 시스템을 업데이트하고, SSH와 HTTPS만 허용하도록 방화벽을 구성하고, HTTPS를 통해 설치하도록 apt가 설정되어 있는지 확인한 후 재부팅하는 것입니다.

 sudo apt update && sudo apt upgrade -y sudo apt install apt-transport-https sudo ufw allow ssh sudo ufw allow https sudo ufw enable sudo reboot

이제 보안을 위해 서버가 자동으로 업데이트되도록 설정하면 됩니다.

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

기본 줄 아래에 추가하는 것보다 updatesbackports 줄 뒤에서 // 제거하기만 하면 됩니다.

"TorProject:${distro_codename}";

그러면 다음과 같이 보일 것입니다:

이렇게 보이면 제대로 설정한 것입니다

이제 약간 아래로 스크롤하여 자동 재부팅으로 설정되어 있고 자동 정리 옵션이 활성화되어 업데이트가 제대로 작동하는지 확인하세요. 활성화하려는 Unattended-Upgrade 옵션 앞의 // 제거하고 필요한 경우 falsetrue 로 변경하면 됩니다.

활성화하려는 옵션은 다음과 같습니다.

자동으로 업데이트를 설치하고 더 이상 필요하지 않은 종속성을 삭제하려면 재부팅해야 합니다.

이제 Ctrl + O를 눌러 저장하고 Ctrl + X를 눌러 종료하세요.

이 작업이 완료되면 Tor 릴레이 설정을 바로 시작할 수 있습니다!

선택사항: 도메인 이름 설정

이 시점에서 도메인에 A 및 AAAA 레코드를 설정하여 다른 VPS와 마찬가지로 도메인 또는 하위 도메인이 VPS의 IPv4 및 IPv6(지원되는 경우) 주소를 가리킬 수도 있습니다.

이는 호스트의 기본 역방향 DNS 대신 Tor 릴레이 디렉터리에 표시됩니다. 필수는 아니지만, 귀하가 제어하는 도메인에 릴레이를 연결하는 것이 더 낫고, 더 체계적이며, 누군가가 브라우저에서 해당 URL을 방문할 경우 Tor가 무엇인지 설명하는 웹페이지를 제공할 수 있는 옵션도 제공합니다.

Vultr를 사용하면 VPS를 가동하는 동안이나 나중에 설정 탭에서 역방향 DNS를 설정할 수도 있습니다.

대부분의 호스트에서는 제어판에서도 도메인을 역방향 DNS로 설정할 수 있습니다. 이는 실제 도메인에 대한 구매 및 기록 설정을 대체하지 않습니다. 둘 다 수행해야 합니다.

Tor 릴레이 설치

재부팅한 후 VPS에 SSH로 다시 접속하고 실행 중인 Ubuntu 또는 Debian 버전의 코드명을 확인하세요.

 lsb_release -c

예를 들어 현재 Ubuntu LTS에서는 codename: jammy 로 반환되어야 하며 이는 다음 단계에서 중요합니다.

이제 Tor 저장소 파일을 만듭니다.

 sudo nano /etc/apt/sources.list.d/tor.list

새로운 빈 파일이 생성되어야 합니다. 여기에 OS 릴리스 코드명이 jammy 라고 가정하고 다음 두 줄을 붙여넣습니다.

 deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org jammy main deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org jammy main

OS 코드명이 다른 경우(예: Debian의 경우 buster ) 위의 두 줄에서 jammy 해당 코드명으로 바꾸세요.

이제 apt 패키지를 확인할 수 있도록 PGP 키를 추가하기만 하면 됩니다.

 wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null

마지막으로 Tor 서버의 실제 설치를 수행합니다.

 sudo apt update sudo apt install tor deb.torproject.org-keyring

완료!

이제 구성만 하면 됩니다.

Tor 릴레이 구성

간단히 구성 파일을 엽니다.

 sudo nano /etc/tor/torrc

다음 줄의 주석 처리를 해제( # 제거)해야 합니다.

 SocksPort 0 ORPort 443 Nickname whatevernameyouwant ExitPolicy reject *:* # no exits allowed ExitRelay 0

Relay로 제대로 작동하려면 SocksPort 0 설정해야 합니다.

ORPort 기본적으로 다를 수 있습니다. 이 VPS가 웹 서버로도 사용되지 않는 경우 443 으로 변경하는 것이 이상적입니다.

Nickname 무엇이든 가능하지만 너무 길게 만들지 마세요. 문자와 숫자만 포함할 수 있으며 특수 문자나 공백은 포함할 수 없습니다. Tor 릴레이는 이름을 너무 길게 만들거나 공백이나 특수 문자를 넣을 경우 이름을 변경할 때까지 시작을 거부합니다.

마지막이지만 확실히 중요한 것은 ExitPolicy reject : 라인은 릴레이가 종료 노드 역할을 하지 않도록 합니다. 이 주석을 해제했는지 확인하세요! 앞에 #이 있어서는 안 됩니다!

ExitRelay 0 옵션은 위의 ExitPolicy reject *:* 옵션으로 인해 가치가 떨어지지만 서로 취소되지 않으므로 두 옵션을 모두 추가하여 확실하게 할 수 있습니다.

다음은 올바른 설정이 어떤 모습인지 보여주는 몇 가지 스크린샷입니다. 이 모든 것이 이미 존재한다는 것을 기억하세요. 활성화하려는 비트 앞에 있는 # 제거하기만 하면 됩니다!

SocksPort 0은 릴레이 모드에서 작동하도록 설정되어야 합니다.

"릴레이 전용" 섹션:

ORPort 443은 전용 VPS인 경우 가장 호환됩니다. 도메인을 설정하지 않은 경우 주소를 댓글로 남겨둘 수 있으며, 중계를 식별하기 위한 닉네임을 설정할 수 있습니다.

아래와 같이 noexit allowed 줄의 주석 처리를 해제했는지 확인하세요.

매우 중요: NO EXITS Allowed 줄의 주석 처리를 제거하세요!

선택 과목:

 Address yourdomain.com

이전에 VPS용 도메인을 설정한 경우 여기에 입력하세요.

 RelayBandwidthRate 100 KB # Throttle traffic to 100KB/s (800Kbps) RelayBandwidthBurst 200 KB # But allow bursts up to 200KB/s (1600Kbps)

대역폭 속도를 조절하려는 경우 위 내용의 주석 처리를 제거하고 조정할 수 있습니다. 이는 초당 비트가 아닌 초당 바이트로 설정됩니다. 필요한 경우 여기에서 두 가지를 변환 할 수 있습니다.

매일 릴레이를 통과하는 데이터 양에 대한 엄격한 제한을 설정하려면 이 주석을 해제하세요.

 AccountingMax 4 GB AccountingStart day 00:00

또는 월별 최대 대역폭을 설정하려면 날짜 라인을 주석 처리하고 대신 다음 항목의 주석 처리를 제거하십시오.

 AccountingStart month 3 15:00

이러한 설정의 스크린샷:

VPS 제공업체에서 요구하는 경우에만 설정하세요.

이제 Ctrl + O를 눌러 저장하고 Ctrl + X를 눌러 종료하세요.

그리고 마지막으로 다음을 실행합니다.

 sudo systemctl restart tor@default

그게 다입니다. 이제 릴레이가 작동됩니다!

몇 초 동안 기다린 후 로그를 확인하여 작동하는지 확인할 수 있습니다.

 sudo journalctl -xeu tor@default.service

다음과 같은 메시지는 작동 중임을 의미합니다.

 [your IP address:443] is reachable from the outside. Excellent. Publishing server descriptor.

IPv4와 IPv6를 모두 활성화한 경우 두 개의 유사한 줄이 표시됩니다.

마지막 단계: 선택적 DDoS 보호

Tor 네트워크는 종종 DDoS 공격의 대상이 됩니다. 릴레이에 대한 이러한 영향을 완화하려면 알려진 봇넷을 동적으로 차단하는 새로운 방화벽 규칙을 자동으로 업데이트하고 적용하는 bash 스크립트 세트를 설치할 수 있습니다.

먼저 홈 폴더에 있는지 확인하세요.

 cd pwd

첫 번째 명령은 아직 홈 폴더에 있지 않은 경우 홈 폴더로 이동합니다. 두 번째는 /home/[username] 인쇄하여 홈 폴더에 있는지 확인해야 합니다.

이제 종속성과 스크립트를 설치해 보겠습니다.

 sudo apt install ipset iptables curl wget https://raw.githubusercontent.com/Enkidu-6/tor-ddos/main/multi.sh wget https://raw.githubusercontent.com/Enkidu-6/tor-ddos/main/update.sh wget https://raw.githubusercontent.com/Enkidu-6/tor-ddos/main/refresh-authorities.sh wget https://raw.githubusercontent.com/Enkidu-6/tor-ddos/main/ipv4.txt wget https://raw.githubusercontent.com/Enkidu-6/tor-ddos/main/ipv6.txt

이제 nano 사용하여 ipv4.txt 엽니다.

 nano ipv4.txt

주석을 포함한 내용을 제거하고 VPS의 실제 IPv4 주소와 포트(위를 정확히 따른 경우 443)를 다음 형식으로 입력합니다.

 192.168.1.1:443

이전과 마찬가지로 ctrl + O 및 ctrl + X를 눌러 저장하고 종료합니다.

IPv6가 활성화된 경우 nano 사용하여 ipv6.txt 열고 다음 형식으로 위의 내용을 반복합니다.

 [abcd:efgh:1234:frfr:4002]:443

IPv6가 없으면 해당 파일을 지워서 비워두세요.

이제 쉘 스크립트를 실행 가능하게 만듭니다.

 chmod a+x multi.sh chmod a+x update.sh chmod a+x refresh-authorities.sh

그리고 이를 설정하려면 루트 권한으로 multi.sh 스크립트를 실행하십시오.

 sudo ./multi.sh

이제 "mangle" ipset 규칙이 인쇄됩니다. 그렇다면 작동하는 것입니다.

마지막으로 매일 업데이트하고 업데이트 후 서버가 재부팅될 때 복원되도록 crontab 설정합니다.

 (crontab -l ; echo "0 0 * * * $PWD/refresh-authorities.sh") | crontab -

이 VPS에서 이전에 cronjob을 설정하지 않은 경우 no crontab for [username] 과 같은 메시지를 받는 것은 정상입니다. 다시 실행하지 마세요.

아래를 실행하여 작동하는지 확인할 수 있습니다.

 crontab -l

이것이 표시된다면 당신은 구찌입니다:

 0 0 * * * /home/[username]/refresh-authorities.sh

이러한 규칙을 수동으로 업데이트해야 하는 경우 다음을 실행하세요.

 sudo ./update.sh

완료!

훌륭해!

여기까지 왔다면 잘한 것입니다! 이제 Tor 릴레이가 생겼습니다!

약 3시간 후에 Tor 중계 디렉토리 에서 중계자에게 제공한 닉네임을 검색하면 표시됩니다. 색인이 생성되면 IP 주소와 같은 세부정보와 함께 '실행 중' 및 '유효함'이라는 배지가 표시됩니다.

대역폭 필드가 비어 있고 합의 가중치가 0인 경우 걱정하지 마십시오. 이는 새로운 노드의 경우 정상적인 현상입니다. Tor의 이 게시물에서는 새 릴레이가 네트워크에서 완전히 활성화되기 전에 테스트하는 프로세스를 설명합니다.

핵심은 처음 3일 동안은 많은 트래픽을 볼 수 없다는 것입니다. 그런 다음 네트워크가 얼마나 많은 대역폭을 가지고 있는지 더 잘 알게 되면 순위가 할당되고 릴레이에서 점점 더 많이 사용되기 시작합니다.

이제 당신도 Mr Robot이 된 기분이 들 것입니다. 축하할 만한 멋진 트랙이 있습니다!

https://www.youtube.com/watch?v=WV-vdI2CzMc

잘하셨어요!

이제 귀하는 훌륭한 Tor 프로젝트가 안전하고, 분산화되고, 빠르며, 검열 저항성을 유지하도록 돕고 있습니다!

이 콘텐츠가 마음에 들었고 더 많은 콘텐츠를 원하시나요? Twitter , Telegram , Nostr 에서 저를 팔로우하실 수 있습니다!

Nostr 공개 키를 여기에 수동으로 복사하여 붙여넣으세요.

npub17rlc0emedw5xljztfqrmykjaacsx6ujvdas64zznjadrnhhwlavq4jjtgg

나에게 작은 팁을 줄래? 이 게시물을 “수집” 버튼을 사용하여 0.01 ETH의 Optimism에 대한 NFT로 만들거나 xanny@getalby.com 으로 저에게 몇 가지 정보를 보내실 수 있습니다.

여기에서 일부 BTC 온체인을 보낼 수도 있습니다.

bc1qkeadruclrsr793w9rnv8mexatcv3wsttvckutz

아니면 여기로 XMR을 보내세요:

88LLuFL7QE94WtsaBHtpueZoYYT33f6KHNxaQ2fqPXEqXfwnfCty9Jq8GcKunfDnTAACawXgjdzyWWxFj1GrSUPdH1EMaJd

#StayOpsexy

<구독://>

<수집://>

Mirror
면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
즐겨찾기에 추가
코멘트