웹진 액트온정보공유

Tor 중계서버 설치매뉴얼

By 2010/06/11 10월 25th, 2016 No Comments
김승욱

Tor 네트워크는 지구 곳곳의 네티즌들이 자발적으로 제공하는 대역폭(bandwidth)으로 구성됩니다. 다양한 사람들이 더 많은 대역폭을 제공할 수록 Tor 네트워크는 안전해지고, 빨라질 것입니다. 지금 이 순간 전 세계에서 1,183개의 중계서버(Tor relay)가 운영되고 있습니다.

 

그림: Relay_up_1.png
<대서양 주변의 Tor 중계서버들(붉은점)>

만약에 Tor 네트워크가 자라나기를 원하신다면, 국경을 벗어나 전 세계 네티즌들과 연결되고, 서로의 협력으로 네트에서의 감시/통제를 조롱하고 무력화시키는 것이 정말 멋진 생각이라고 생각한다면, Tor 중계서버를 설치/운영함으로써 행동에 동참하는 것이 어떨까요?

Tor 중계서버를 설치/운영하는 것은 아주 쉽고 간단합니다. Tor 중계서버에 대한 몇가지 사실과 조건은 다음과 같습니다.

  • 서버라고 해서 고성능의 컴퓨터, 초고속 인터넷 회선이 필요한 것이 아닙니다. 집에서 흔히 쓰는 데스크탑 컴퓨터와 인터넷 회선이면 충분합니다.
  • 중계서버가 때때로 꺼지는 것은 괜찮습니다만 수시로 그러는 것은 곤란합니다. (중게 중인 패킷들이 날아갈 것입니다.) 사실상 사용할 때만 잠시 켜두는 컴퓨터로는 중계서버 운영이 어렵겠지요. 별 일이 없으면 켜저있는 컴퓨터(예, 사무실에 있는 프린터 컴퓨터) 정도면 중계서버로 사용하기에 아주 훌륭한 것 같습니다.
  • 양방향으로 최소한 20KBytes/s의 대역폭이 있어야 합니다. 한국에서는 문제가 되지 않는 조건일 것 같습니다.
  • 컴퓨터가 유동 IP주소를 사용하고 있거나, 공유기에 연결되어 있어도 Tor 중계서버가 될 수 있습니다.
  • Tor 네트워크에 제공되는 대역폭을 제한할 수 있습니다.
  • 중계서버를 이용하는 트래픽의 종류를 제한할 수 있습니다. (예, 메일은 금지)
  • 어떤 운영체제에서도 운영이 가능합니다.

그럼 너무 간단해서 민망한 Tor 중계서버 설치 매뉴얼을 계속 진행해 볼까요? (이 매뉴얼은 윈도우-Vidalia 환경을 기준으로 설명되어 있습니다.)

0단계: 시작하기 전에

우선 당연히도 Tor가 설치되어 있어야 합니다. Tor는 기본적으로 클라이언트 용으로 설치가 됩니다. Tor를 설치하는 것은 지난 번 Tor 설치매뉴얼을 참고하세요.

그리고 컴퓨터의 시계가 공공 시계 서버의 시계와 일치하고 있어야 합니다. 컴퓨터 시계가 엉뚱한 시각을 가르키고 있다면, Tor 중계서버를 설치하기 전에 시계를 조정해줘야 합니다.

1단계: Tor 중계서버 설정

Tor 설치가 잘 되었다면, 시스템 트레이(오른쪽 맨 아래)에 녹색의 양파 아이콘이 보일 것입니다. 그 아이콘을 마우스 오른쪽 버튼으로 클릭하면 메뉴 중에 Control Panel이 있는데 이것을 실행시키세요. 혹은 시작메뉴에 생성되었을 Vidalia Bundle – Vidalia를 실행시키셔도 됩니다. 그러면 다음과 같은 모습의 프로그램이 실행될 것입니다.

그림: Relay_up_2.png
<Tor 설정 프로그램인 Vidalia 실행모습>

위의 메뉴 중에 Setup Relaying이라는 메뉴가 보이실 겁니다. 이 메뉴를 클릭하면 다시 아래와 같은 화면이 나옵니다.

그림: Relay_up_3.png
<Vidalia 설정화면>

현재는 Tor의 기본설정대로, 클라이언트로만 사용되도록 설정된 상태입니다. Tor 중계서버를 운영하기 위해서 두 번째 메뉴인 Relay traffic for the Tor network 를 선택하면, Tor 중계서버 설정을 시작할 수 있습니다. 두 번째 메뉴를 선택하자마자 아래와 같은 화면이 나오는데,

그림: Relay_up_4.png
<Tor 중계서버 설정화면>

여기서 입력할 것은 Tor 중계서버의 별명(Nickname)과 문제가 있을 때 연락할 수 있는 이메일 주소입니다. 업그레이드가 필요하거나 무언가 잘못되고 있을 때 이 이메일로 연락이 오니까 꼭 연락가능한 이메일 주소를 입력해둬야 합니다. 중계서버의 이름은 말 그대로 네트워크 상에서 이 서버가 식별될 수 있는 이름입니다. 부르고 싶은 이름을 입력해주면 좋겠죠?!

Relay Port는 443으로 설정되어 있는 것을 그대로 놔두면 되고, Mirror the Relay directory는 Tor 네트워크에 중계서버들의 리스트(디렉토리)를 전파하는 역할을 하는데, 대역폭에 여유가 많지 않다면 비활성화하는 것이 좋습니다. 만약에 그대로 둘 것이라면, 나중에 9030포트가 열려있는 것을 꼭 확인해야 합니다.

만약에 공유기를 사용하고 있는 경우라면 맨 아래의 포트 포워딩 기능을(attempt to automatically configure port forwarding) 사용해야 합니다. 옆의 테스트 버튼을 이용해 이 기능이 사용가능한지 테스트해볼 수 있습니다. 만약에 공유기에 연결되어 있는지 잘 모르겠다면, 활성화시키지 않고 넘어가도 괜찮습니다. 뒤의 확인과정에서 문제가 있다면 다시 돌아와서 포트포워딩을 실험해볼 수 있으니까요.

이제 기본설정(Basic Settings)이 끝났으니, 다음 메뉴인 대역폭 설정(Bandwidth Limits)으로 넘어갑시다. 다음과 같은 화면이 나옵니다.

그림: Relay_up_5.png
<Tor 중계서버 설정화면>

한계 대역폭을 설정하는 부분인데, 가운데 1.5Mbps 부분을 클릭해보면 Cable/DSL 등 네트워크 회선의 여러 종류가 나올 것입니다. 자기 대역폭에 따라 수동으로 설정하는 것이 좋으므로 가장 아래에 있는 Custom을 선택합니다. 그러면 아래와 같은 입력칸이 나타날 것입니다.

그림: Relay_up_6.png
<Tor 중계서버 설정화면>

첫번째 칸은 제공되는 평균 대역폭이고, 두번째 칸은 최대 대역폭 값을 입력하면 됩니다. 여기서 자기가 사용하는 인터넷 회선의 대역폭을 알고 있어야 합니다. 그리고 그 중에서 자신의 대역폭 중에 제공하고 싶은만큼의 대역폭의 평균과 최대값을 입력하면 됩니다. 두가지 주의사항이 있습니다.

첫째는, 여기에 입력되는 값은 바이트(bytes) 단위라는 것입니다. 보통 인터넷 회선은 bps(bit per sec)로 계산되고, 값이 매겨집니다. 따라서 자기가 알고 있는 인터넷 회선의 대역폭의 단위를 확인하고 비트(bit)단위라면 "나누기 8"을 해서 바이트 단위의 대역폭을 구할 수 있습니다. 그 중에서 원하는 만큼을 입력하면 됩니다.

둘째는, 보통의 인터넷 회선이라면 업로드와 다운로드 대역폭이 다르다는 점입니다. 당연히 업로드 대역폭이 훨씬 낮을 것입니다. 그렇다면, 우리는 이 중에서 작은 값, 즉 업로드 대역폭을 기준으로 Tor 네트워크에 제공할 대역폭을 정해야 합니다. 그렇지 않다면, 몰려드는 트래픽을 처리하지 못하고, 혼잡(congestion)이 발생하거나 심할 경우 패킷이 유실되는 일도 있을 것입니다.

진보넷 컴퓨터에 설치한 Tor 중계서버의 경우 업로드 트래픽이 800Kb/s(비트)인데(100KB/s), 평균 30KB/s(바이트), 최대 50KB/s의 트래픽을 제공하고 있습니다. (Tor 중계서버가 되기 위해서 제공해야 되는 최소한의 트래픽은 20KB/s입니다.) 한국에서 인터넷에 연결되어 있는 컴퓨터는 최소한 640Kb/s 정도의 트래픽은 가지고 있을 거라고 생각되니, 트래픽에 대해 잘 모르시겠다면 이 정도를 기준으로 생각하시면 될 것 같습니다.

기본적으로 Tor 중계서버는 자신이 제공하는 트래픽을 실시간으로 홍보를 하는데, 따라서 더 많은 대역폭을 제공하는 중계서버로 더 많은 통신이 몰리게 됩니다. 이 말은 작은 양의 대역폭을 제공하는 중계서버들도 큰 도움이 된다는 뜻입니다.

대역폭 설정이 끝나면 마지막 메뉴인 출구정책(Exit policy)를 설정해야 합니다. 출구정책은 어떤 종류의 트래픽이 이 중계서버를 이용하는 것을 허용할지 결정하는 방침입니다. 이 메뉴에서는 기본적으로 모든 메뉴(Website, Retrieve Mail, IRC, IM, SSL)가 허용되도록 설정되어 있고, 특별히 변경할 필요가 없습니다. 기본적으로 Tor 네트워크는 스팸과 다른 오남용의 가능성 때문에, 보내는 메일과 파일 공유 트래픽은 차단하고 있습니다.

이제 밑에 있는 OK 버튼을 누르면 Tor 중계서버 설정이 반영될 것입니다. 하지만 아직 끝난 것이 아닙니다. 잘 작동하고 있는지 확인이 필요합니다.

2단계: 외부에서 접속이 가능한지 확인하기

다시 Vidalia 설정판을 보면 아래 쪽에 Message Log라는 메뉴가 있습니다. 이것을 클릭하면 아래와 같은 로그기록들이 나옵니다.

그림: Relay_up_7.png
<Tor 메세지 로그>

위의 Tor 중계서버 설정이 잘 저장된 직 후, 이 로그기록을 열었다면 위와 같이 마지막 줄에 "Now checking"으로 시작하는 메세지가 있을 것입니다. 현재 설정된 Tor 중계서버로 외부에서 접속이 가능한지 테스트를 해보고 있다는 뜻입니다. 최대 20분까지 걸릴 수도 있다고 나와있는데, 문제가 없다면 몇 분안에 아래와 같은 메세지가 나올 것입니다.

Self-testing indicates your ORPort is reachable from the outside. Excellent.

그러나 위와 같은 메세지가 나오지 않고, 노란색 바탕에 아래와 같은 메세지가 나온다면 무언가 문제가 발생한 것입니다. 443번 포트가 외부에서 접속불가능하다는 메세지입니다. (위의 메세지가 나왔다면 아래의 절차들은 건너뛰고 "3단계: 운영상태 확인"으로 넘어가세요)

 

그림: Relay_up_8.png
<Tor 메세지 로그: 외부접속이 불가능한 경우>

이 경우, 윈도우 방화벽 등에서 해당 포트의 통신을 차단하고 있을 가능성이 높습니다. 일단 윈도우 제어판-네트워크 및 인터넷 연결-윈도우 방화벽 메뉴에서 443번 포트의 통신을 허용하도록 예외목록을 추가해줍니다. 아래화면의 추가버튼을 눌러서 포트를 추가할 수 있습니다. 만약 위에서 DirPort(9030)도 운영하는 것으로 설정했다면 9030포트 역시 추가해줘야 합니다.

그림: Relay_up_9.png
<윈도우 방화벽 설정화면>

위와 같은 설정을 한 후에 단계 1을 다시 반복합니다. 즉, 클라이언트 전용으로 다시 Tor 설정을 바꾸었다가, 중계서버 운영설정을 다시 해주고, 메세지 로그를 주시하면 됩니다. 테스트가 성공했다는 메세지가 나오면 성공입니다.

위와 같은 방법으로도 실패를 했다면, 단계 1의 과정에서 기본설정(Basic Settings)맨 밑에 있었던 포트포워딩 기능(attempt to automatically configure port forwarding)을 활성화시킵니다.(공유기를 이용하고 있는 경우에도 이 기능을 사용해야 합니다.) 활성화 전에 옆에있는 테스트 버튼을 눌러서 아래와 같은 테스트가 성공했다는 메세지가 나온다면, 이제 아마도 Tor 중계서버 설정이 성공한 것일 겁니다.

 

그림: 
Relay_up_10.png
<포트 포워딩 테스트 성공화면>

이제 다시 메세지 로그에서 "Self-testing indicates your ORPort is reachable from the outside. Excellent." 메세지를 기다립니다. 이 메세지가 나온다면 Tor 중계서버가 Tor 네트워크의 일원으로 운영을 시작한 것입니다.

3단계: 운영상태 확인하기

우선, Tor 중계서버 운영이 시작된 이 후 Tor 중계서버 리스트에 가보면 처음에 입력했던 중계서버의 별명(nickname)이 있는지 검색해봐서 있다면 중계서버가 잘 홍보되고 있는 것입니다.

또, Vidalia 메뉴 중에 Network Map을 보면 전 세계에서 운영되고 있는 중계서버들의 리스트와 지도가 나옵니다. 여기에도 새롭게 등록한 중계서버가 나와야 하는데, 여기에 나타나기까지는 1시간 이상의 시간이 걸리는 것 같습니다. 느긋하게 기다렸다가 확인해보면, 다음과 같이 중계서버 정보를 확인할 수 있어요. 진보넷에서 운영중인 중계서버의 이름은 eva입니다.

그림: 
Relay_up_11.png
<Tor 네트워크 지도>

이상으로 Tor 중계서버 설치매뉴얼을 마칩니다. 이 매뉴얼은 아쉽게도 윈도우를 기준으로 설명이 되어 있는데, 리눅스나 맥에서도 Vidalia를 사용한다면 같은 방법으로 중계서버를 설치/운영할 수 있을 것입니다.

혹시 더 많은 도움말을 원하신다면, Vidalia-help와 Torproject 홈페이지에 있는 매뉴얼을 참고하실 수 있습니다. 그리고 이 매뉴얼에 질문이 있다면 언제든지 덧글을 달아주세요. 수정이 필요하다면 역시 직접 수정해주신다면 가장 좋습니다!

 

2008-08-28