tapito님의 자료입니다.
http://tapito.tistory.com/520
딥웹 .onion 익명 사이트 호스팅하기
(Tor를 사용한 .onion 주소 할당 방법)
- by Tapito
일반적인 검색엔진(구글, 네이버, 다음 등)으로 검색되지 않는 웹 사이트들이 존재하는 통신망을 딥웹(Deep Web), 심층 웹, 깊은 웹 등이라 부릅니다. Tor 네트워크는 딥웹의 한 종류이며 전용 브라우저인 Tor Browser를 사용하여 접속할 경우 여러 프록시 서버들을 거치며 그 내용 또한 암호화되어 전송되기 때문에 익명으로 인터넷을 이용할 수 있고, warning.or.kr처럼 특정 국가에서 차단해 놓은 사이트들을 접근할 수도 있습니다. Tor 네트워크는 여기에 존재하는 웹 사이트들은 통상적인 도메인이 아닌 .onion으로 끝나는 주소를 가지는데, 이번 포스팅에서는 Windows 상에서 간단하게 웹 서버를 구축하고 .onion 주소를 할당받는 방법을 소개합니다.
차례
포트가 충돌할 우려가 있으니 기존 사이트를 운영하던 서버에 Deep Web 사이트를 설정하는 것보다는 Deep Web 사이트만을 위한 서버를 따로 마련하는 것이 권장됩니다.그리고 이 항목은 Apache나 IIS 등의 서버를 설치하고 구성한 경우라면 건너뛰십시오. 여기에서는 XAMPP(Apache + MySQL + PHP + Perl)을 이용해 서버를 구성해보겠습니다.
XAMPP 공식 홈 페이지(https://www.apachefriends.org/index.html)에 접속하여 최신 버전의 XAMPP를 다운로드 받습니다. Windows XP 사용자는 최신버전이 지원되지 않으므로 Click here for Other versions를 클릭하여 5.0x 이하 버전을 설치하십시오.
백신의 실시간 감시 기능이 활성화되어 있다면 이런 메시지가 뜰 수도 있습니다. Yes를 눌러 설치 절차를 계속 진행합니다.
다운로드한 설치 파일을 실행하여 XAMPP를 설치합니다. 특별히 설정할 것은 없습니다. 기본값을 그대로 두고 Next만 눌러주면 됩니다.
1. [Next] 클릭
|
2. 건드릴 것이 없으므로 Full Option으로 설치합니다.
|
3. 서버의 설치 경로입니다.
"Program Files", "Program Files (x86)"과 같이 띄어쓰기가 포함된 폴더명은
오류를 일으킬 수 있으므로 기본 값 그대로 둡니다.
|
4. Wordpress 같은 기능을 쉽게 설치할 수 있다는 안내인데, 지금은 테스트만 할 것이므로 그냥 [Next]를 클릭합니다.
|
5. 설치 준비가 완료되었으므로 [Next]를 클릭합니다.
|
6. PC 성능에 따라 설치하는데 시간이 좀 걸립니다.
|
설치가 완료되었습니다. [Do you want to start the Control Panel now?]에 체크 상태를 둔 채로 [Finish]를 누르면 XAMPP 제어 창이 나타납니다.
Onion 사이트의 페이지는 80번 포트를 통해 Tor 네트워크로 나갑니다. 이는 Apache가 내보내는 포트의 기본값과 같으므로 충돌을 방지하기 위해 Apache가 사이트를 내보내는 포트를 다른 번호로 바꿔줍니다. Apache에서 [Config] 버튼 -> [Apache (httpd.conf)]를 클릭합니다.
58번째 줄 근처에 Listen 80이라 되어 있는데 이를 임의의 적당한 숫자로 고칩니다. 여기에서는 8080번 포트를 쓰겠습니다.
설정 파일을 닫고 XAMPP 제어판에서 Apache를 실행합니다. 8080번 포트로 사이트가 나가고 있음을 확인할 수 있습니다.
웹에서 보여진 페이지는 모두 XAMPP 설치 경로의 htdocs에 있는데, 아래와 같이 기본으로 제공되는 페이지들이 있습니다. 필요 없으니 모두 지웁니다.
메모장이나 다른 에디터를 사용해 테스트 페이지를 작성합니다. 작성한 다음 htdocs 경로에 저장합니다.
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Onion, World!</title>
</head>
<body>
<p>Onion, World!</p>
<p><a href="http://tapito.tistory.com/">http://tapito.tistory.com/</a></p>
</body>
</html>
웹 브라우저를 열고 http://localhost:8080/를 접속하여 아래와 같이 결과 화면이 잘 나오는지 확인합니다.
구 버전의 Tor에서는 Tor Browser라는 Tor 네트워크 브라우저와 Vidalia라는 Tor 네트워크 제어판이 분리되었는데, 현재 나오는 버전의 Tor는 Tor Browser로 일원화되어있습니다. 따라서 Tor Browser만 종료하지 않고 실행해 두면 항상 Tor 네트워크 접속 상태가 유지될 것입니다. 서버의 유동 IP/고정 IP 여부도 염려할 필요가 없습니다. 외부에서 접속할 때는 IP가 아닌 onion 주소를 사용하며, IP 주소와 onion 주소의 대응은 Tor 네트워크에서 알아서 해 줍니다.
먼저 Tor Project 홈 페이지(https://www.torproject.org/)에 접속하여 Tor Browser를 다운로드 받습니다.
마법사의 지시에 따라 Tor Browser를 설치합니다.
기본값은 바탕화면이며, 설치 후 "Tor Browser" 폴더가 생성된 것을 볼 수 있습니다.
"Tor Browser\Browser\TorBrowser\Data\Tor" 경로로 들어가면 torrc라는 파일이 보입니다. 현재는 0바이트일 것입니다.
Tor Browser 폴더의 [Start Tor Browser] 아이콘을 실행하여 Tor를 한 번 실행해 줍니다.
적절한 옵션을 클릭합니다. [연결] 버튼을 눌러 기본값으로 Tor 네트워크에 접속합니다..
Tor Browser가 뜨면 다시 닫습니다.
"Tor Browser\Browser\TorBrowser\Data\Tor" 경로로 들어가면 여러 파일이 생성되어있는 것을 볼 수 있습니다. 그리고 0 바이트였던 torrc 파일에 내용이 기록되어있는 것도 볼 수 있습니다. 이 파일을 메모장이나 EditPlus 등으로 엽니다.
아래 내용을 추가합니다.
HiddenServiceDir 서버로컬경로
HiddenServicePort 80 127.0.0.1:포트번호
Tor Browser를 다시 실행합니다. 이 때부터는 htdocs의 로컬 경로가 하나의 Deep Web 사이트로서 Tor 네트워크에 내보내지고 있으므로 닫으면 안 됩니다.
torrc 파일로 지정한 서버 경로로 들어가보면 private_key와 hostname이라는 2개의 파일이 생성된 것을 볼 수 있습니다. 이 중 hostname 파일을 열어보면 이 사이트의 onion 주소를 확인할 수 있습니다.
Tor Browser를 실행하고 약 1분이 지난 후 이 주소를 접속하면 localhost:8080로 보았던 화면과 동일한 웹 페이지를 볼 수 있습니다. 즉, 외부 사용자도 이 onion 주소를 통해 같은 페이지를 보고 있다는 뜻이고 이렇게 해서 하나의 Deep Web 사이트 구성이 완료되었습니다.
.onion 주소는 본래 80비트의 정수 숫자가 base32로 인코딩 된 것입니다. 겉으로 보기에는 숫자와 영문자가 임의로 조합된 것처럼 보이지만 일정한 암호화 알고리즘을 거쳐 생성된 정수라는 뜻입니다. Tor 네트워크를 통해 접속될 여러분 사이트의 onion 주소가 특정 단어로 시작되기를 원한다면 다음과 같이 하면 됩니다.
커스텀 onion 주소를 생성하는 툴로는 Shallot (오래되어 현재는 쓰이지 않음), scallion (.NET Framework 또는 Mono 필요), Eschalot (유닉스/리눅스 전용 툴)이 있습니다. 윈도우에서 서버를 운영할 것이라면 .NET Framework를 설치한 후 scallion을 사용하면 됩니다. (Windows Vista와 이후 운영체제는 .NET Framework가 윈도우에 내장되어 있으므로 별도 설치 불필요함)
scallion 공식 홈 페이지(https://github.com/lachesis/scallion)에 접속합니다. 소스가 공개되어 있는데, 아래 버튼을 눌러 binary를 선택합니다.
최신 버전의 scallion을 다운로드 받습니다.
압축을 풀면 다음과 같이 파일들이 있는데, 이 중 scallion.exe를 사용하면 됩니다. 더블 클릭해서 직접 실행하는 파일이 아니라 명령줄을 이용할 것이므로 상위 폴더로 이동합니다.
scallion.exe가 있는 폴더를 [Shift] 키를 누른 상태에서 마우스 오른쪽으로 클릭하면 [여기서 명령 창 열기(W)] 메뉴가 나타납니다. 이를 클릭합니다. Windows XP 또는 그 이하 버전의 운영체제에서는 Shift 키를 눌러도 이런 메뉴가 나타나지 않으므로 그냥 명령 프롬프트 열어서 해당 경로로 찾아 들어갑니다.
scallion의 기본적인 사용법은 아래와 같습니다.
여기서 사용자 접두어를 여러분이 직접 지정하면 됩니다. 1.5GHz CPU 기준 사용자 접두어의 글자 수에 따라 대략적인 .onion 주소 생성 시간은 아래와 같습니다.(출처: http://security.stackexchange.com/questions/29772/how-do-you-get-a-specific-onion-address-for-your-hidden-service)
접두어 문자 수 |
소요 시간 |
1 |
1초 이하 |
2 |
1초 이하 |
3 |
1초 이하 |
4 |
약 2초 |
5 |
약 1분 |
6 |
약 30분 |
7 |
약 1일 |
8 |
약 25일 |
9 |
약 2.5년 |
10 |
약 40년 |
11 |
약 640년 |
12 |
약 10,000년 |
13 |
약 160,000년 |
14 |
약 2.6백만년 |
tapito로 시작하는 .onion 주소를 생성해보겠습니다. 아래와 같이 입력하면 됩니다.
경로>scallion -o private_key -k 1024 -d 0 tapito_
그리고 private_key 파일을 열어보면 생성된 onion 주소와 함께 생성된 암호화 키가 기록되어 있습니다.
먼저 Tor Browser가 실행중이라면 종료합니다. 서버의 로컬 경로(여기에서는 htdocs 폴더)에 private_key와 hostname 파일이 생성된 것을 2단계에서 확인했는데요, 이 두 파일을 엽니다. 그리고 scallion에서 생성한 파일도 같이 엽니다.
scallion에서 만든 파일 중 <Hash> 태그로 싸여진 onion 주소는 hostname에 덮어쓰기 하고, <PrivateKey> 태그로 싸여진 암호화 키는 private_key 파일에 덮어쓰기합니다. 참 쉽죠?
Tor Browser를 다시 실행합니다. 실행 후 약 1분 정도 기다린 후에 새로 생성된 주소로 접속합니다. 커스텀 .onion 주소 할당이 성공했습니다.
서버를 직접 운영할 것이 아니라면 딥웹 전용 웹 호스팅 서비스를 이용해도 좋습니다. The hidden wiki(http://zqktlwi4fecvo6ri.onion/)를 통해 웹 호스팅 사이트를 찾을 수도 있지만, 여기서는 그 중 하나인 F*ck You Hosting을 사용하겠습니다. F*ck You Hosting(http://fuckyouhoibssdjh.onion)에 접속하여 ID와 암호를 입력하여 새 계정을 만듭니다. 익명이므로 아무런 정보도 받지 않습니다. 제시한 onion 주소는 언제든 바뀔 수 있으므로 Hidden Wiki를 통해 F*ck You Hosting을 검색해서 접속하는 것을 권장합니다.
출처 : tapito 블로그