가상 전용 써버

히든위키 코리아
필독 유닠스 계열 저작물, 성인물, 도박 프로그래밍 웹 써버 보안 대화방
필독 사항 프로젴트 트라이던트 표면 웹 싸이트 제작 파이썬 리눅스 마스터 대화방 2019년
위키 편집 리넠스 마약, 아청물, 해킹 웹 프로그래밍 웹 싸이트 보안
위키 문서 작성법 우분투 다크넽 싸이트 제작 쟁고우 정보 보안 기사

개요

가상 전용 써버(virtual private server, VPS)는 하나의 물리적 써버를 나누어 여러 개의 가상 써버로 사용하는 가상화 방법의 한 형태이다. 이것은 메인프레임과 같이 예전부터 익히 알려진 것이었으나 최근 VMware, , FreeBSD Jail, 유저 모드 리눅스(UML), 리눅스-V써버, FreeVPS, OpenVZ, 그리고 Virtuozzo와 같은 기술들이 발전함에 따라 다시 주목을 받게 되었다. 여기서 private은 사설이나 개인이라는 의미가 아니라 전용이라는 의미이다. 그래서 가상 사설 써버가상 개인 써버라는 번역은 틀렸다.


인터넷 호스팅 서비스 산업에서, 가상 사설 서버는 공유 웹 호스팅 서비스전용 호스팅 서비스 사이의 간극을 메꿀 수 있는 방법이며, 여러 호스팅 회사가 주요 서비스로 빠르게 받아들이고 있다. 회사는 각 사용자들이 물리적으로 서버를 건드리지 않도록 하면서 슈퍼 유저 수준의 접근을 제공할 수 있다. 그래서 다른 사람들과 서버를 공유하는 환경에서 운영하기 힘든 환경을 가진 개인이나 회사에 의해 널리 사용된다.

VPS에 웹 써버 설치

이 문서는 리눅스 민트에서 우분투 16.04 x64 VPS 또는 센트OS 7 64비트 VPS에 SSH로 접속하는 경우를 기준으로 설명합니다. 또한 root로 접속하는 상황을 기준으로 설명하므로 일반 사용자 계정으로 접속시 우분투이건 센트OS이건, 관리자 권한이 필요한 상황에서는 명령어 앞에 sudo를 붙여야 합니다. 하지만 root를 사용하는 건 보안상 위험하니 일반 사용자 계정을 만들어서 사용하는 것을 추천한다. 일반 사용자 계정을 만들고 그 계정에 sudo 권한을 주는 것은 리눅스 문서를 참조하기 바란다.


웹 싸이트를 만드는 전반적인 방법은 표면 웹 싸이트 제작 문서와 다크 웹 싸이트 제작 문서를 참조하면 된다. VPS 접속자의 실제 아이피 주소를 숨기기 위해 써버 접속시 가상 전용 망(VPN)을 쓰기도 한다.


일단 빝코인으로 결제할 수 있는 도메인 네임 업체에서 가명과 가짜 주소로 도메인 네임을 구입한다. 그리고 역시 빝코인으로 결제할 수 있는 VPS 업체에서 가명과 가짜 주소로 VPS를 결제한다. 그 후 VPS의 IP 주소와 도메인 네임을 연결해주는 도메인 네임 서버(DNS) 업체에 가입해서 VPS와 도메인을 연결한다. 클라우드플레어(Cloudflare)처럼 익명으로 가입할 수 있는 무료 네임 서버 업체도 있다. 클라우드플레어는 디도스(DDoS) 방어와 컨텐트 전송 넽워크(CDN, content delivery network) 역할도 해준다.


VPS에 접속하여 뭔가 작업을 할 때는 씨큐어 셸(SSH, Secure Shell)을 사용한다.


설치 작업을 하기 전에 우선 패키지 목록을 최신으로 업데이트 해줘야 한다.

우분투의 경우 우선 가상 사설 써버(VPS)의 터미널에서

apt update

로 패키지 목록을 최신으로 업데이트하고, 그 업데이트 목록을

apt upgrade

로 설치해준다.


센트OS의 경우

yum update

로 컴퓨터에 설치된 패키지들을 모두 최신 버전으로 업데이트해준다. 중간에 총 몇 MB인데 다운로드 및 설치할 거냐고 [y/d/N]으로 물어보면 y로 대답한다. y는 yes, d는 download only, N은 no이다. 자신의 VPS에 설치된 모든 패키지 업데이트라 꽤 오래 걸린다.

SSH로 접속해서 한글 사용하기

아마 대부분의 VPS 업체는 영어만 지원할 것이다. SSH에서 한글을 사용하기 위해서는 설치 및 설정을 바꿔줘야 한다. 씨큐어 셸로 접속 후 터미널에서

locale-gen ko_KR.UTF-8

를 입력하여 한글을 설치한다.

vim /etc/environment

을 입력하고 environment 파일에

LANG="ko_KR.UTF-8"

를 추가한다.

vi /etc/profile

를 입력하고 profile 파일에

LANG="ko_KR.UTF-8"

라는 내용을 추가한다.

vi /root/.profile

한 후 .profile 파일에서

LANG=C
LANGUAGE=C

라는 내용이 보이면

#LANG=C
#LANGUAGE=C

처럼 앞에 #을 쳐서 주석 처리하여 실행되지 않게 한다.

Tor와 SSH로 VPS에 접속

SSH를 이용하여 VPS에 접속할 때는 Tor Browser가 제공하는 SOCKS5 proxy를 사용하여 실제 IP 주소가 드러나지 않게 한다. 일단 자신의 컴퓨터에서 Tor를 켜고 터미널에서

ssh 123.123.123.123 -l root -o ProxyCommand="nc -X 5 -x localhost:9150 %h %p"

와 같이 입력하여 접속한 후 나중에 VPS 써버 로그를 확인해보면 접속한 컴퓨터의 IP 주소라고 찍힌 것이 자신의 실제 IP 주소가 아니라 Tor exit node의 IP 주소인 걸 확인할 수 있다. 여기서 123.123.123.123 자리에는 자신의 VPS의 IP 주소를 적어주면 되고, root 자리에는 root면 root라고 적어주고, 일반 사용자면 계정명을 적어주면 된다. 이렇게 rapevirgins.com이나 gangbanggirls.net 등의 웹 싸이트 주소 대신에 IP 주소를 사용하여 VPS에 접속하면 DNS leak이라는 자신의 실제 정체가 드러날 수 있는, Tor 사용자에게는 상당히 심각한 보안 위협을 막을 수 있다.

써버 로그에 보면

Feb 5 16:34:34 host-172-20-0-101 sshd[11269]: Accepted password for root from 65.19.167.131 port 22323 ssh2

와 같은 식으로 기록되어 있을 것이다. 접속에 사용된 아이피 주소인 65.19.167.131는 Tor Atlas에서 확인해보면 Tor exit node라는 것을 알 수 있다.


일단 토어(Tor)가 써버에 설치되면, SSH를 Tor로 접속하도록 설정할 수 있고, 그러면 .onion 주소로 접속하는 것도 가능해진다. 그러면 SSH의 로그에 로컬호스트(localhost)의 IP 주소인 127.0.0.1이 접속자 IP 주소로 찍히게 된다. 자신의 .onion 주소가 fuckyourdaughter.onion라고 가정하고, 터미널

ssh fuckyourdaughter.onion -l root -o ProxyCommand="nc -X 5 -x localhost:9150 %h %p" 

와 같이 입력하면

root@fuckyourdaaughter.onion's password: 

가 뜨고, 비밀번호를 입력하여 접속하면

Last login: Sun Feb 5 20:47:10 2017 from 127.0.0.1

와 같이 뜰 것이다.


자세한 내용은 https://www.comparitech.com/blog/vpn-privacy/how-to-set-up-a-tor-hidden-service/ 참조.


가상 데스크탚으로 싸이트 관리

VPS에 접속할 때 자신의 접속 IP 주소를 숨기려면 위의 방법 대신 이 방법을 써도 된다. 나무위키의 창립자인 namu가 알려준 방법이다.

자세히는 모르지만 경찰의 수사 기법중에 운영자의 IP 추적이 있다고 한다. 최악의 경우, 패킷 감청의 가능성이 있다.

이 기법을 우회하기 위해서는 원격 접속을 통해 데스크탑으로 사용할 서버를 따로 구매함으로써 마치 해외에서 운영되는 것처럼 보여야 한다. 이중으로 원격 접속하기 때문에 VPN보다 확실하다.

네 컴퓨터 대신 이 가상 데스크탑에 접속한 다음, 거기서 또 서버를 원격 접속해 관리하라. SSH, SFTP, HTTP등등... 모든 접속은 가상 데스크탑을 클라이언트로 사용해야 한다.

VNC등은 암호화가 되지 않으니 SSH에서 GUI환경을 이용할 수 있는 방법을 사용한다.

http://bahndal.egloos.com/m/534415

http://talkingaboutme.tistory.com/409


접속했으면 Tor 브라우저를 설치해야 한다.

sudo add-apt-repository ppa:webupd8team/tor-browser 
sudo apt-get update 
sudo apt-get install tor-browser


Tor 실행

tor-browser


이렇게 가상 데스크탑 + Tor를 같이 사용하면 사이버수사대도 추적이 거의 불가능하다. Tor만 사용하면 DPI를 사용한 검열이나 첫 노드 장악의 우려가 있고, 가상 데스크탑만 쓰면 경찰이 ISP의 협조를 통해 패킷을 분석해 추적할 가능성이 있다.

당연하지만 우회 IP는 언제나 네 사이트를 관리할때만(그리고 언제나 https 프로토콜로 접속해서 통신을 암호화해야 한다.) 사용해야 한다. 이걸로 다른 사이트에 접속했다가 운영자와 동일인이라는 증거가 될 수 있다.


이렇게 생성한 가상 데스크탑은 네 PC나 휴대폰과는 달리 물리적으로 압수수색 하는 것도 불가능해서, 호스팅 패널에서 "포맷 + OS 재설치"를 해주면 증거 인멸이 가능하다. 하드웨어가 다른 나라 IDC에 있기 때문에 디지털 포렌식도 무용지물이다. 그래도 혹시 모르니 PC에 있는 것들도 엥간하면 암호화 해주자.

VPS에 Tor 설치

씨큐어 셸(SSH)로 가상 사설 써버(VPS)에 접속하려면 우선 터미널을 띄우고

ssh root@123.123.123.123

을 입력하여 VPS에 접속한다. root는 계정 아이디, 123.123.123.123은 VPS의 IP 주소로 자신에게 맞는 값으로 바꿔서 입력한다. 그리고

root@123.123.123.123's password: 

라고 뜨면 해당 계정의 비밀번호를 입력하여 접속한다.


우분투 가상 사설 써버(VPS)의 경우 우선 터미널에서

apt update

apt 패키지 목록을 최신으로 업데이트하고, 그 업데이트 목록을

apt upgrade

로 설치해준다.


센트OS의 경우

yum update

로 컴퓨터에 설치된 패키지들을 모두 최신 버전으로 업데이트해준다. 중간에 총 몇 MB인데 다운로드 및 설치할 거냐고 [y/d/N]으로 물어보면 y로 대답한다. y는 yes, d는 download only, N은 no이다. 자신의 VPS에 설치된 모든 패키지 업데이트라 꽤 오래 걸린다.


우분투에서는 터미널에서

apt install tor

해서 토어 설치 후

tor &

백그라운드(background)로 실행하면 된다. 만약 실수로 포어그라운드(foreground)로 실행한 경우 Ctrl + C 인터럽트 키로 종료시키면 된다.


CentOS에서 Toryum으로 설치는 안 되고, 소스 코드컴파일해야 한다.

소스 코드로 Tor 설치

https://www.torproject.org/download/download.html.en 에서 토어(Tor)의 소스 코드를 다운로드 받는다.


"Ctrl + Shift + T"로 터미널내에서 새 탭으로 터미널을 실행하여 터미널을 두 개 띄운다. 우분투리눅스 민트라면 바탕화면에서 "Ctrl + Alt + T"로 터미널을 실행하는 것도 되겠지만 칼리 리눅스에서는 먹지 않는 단축키이다. 하나는 씨큐어셸(SSH)용이고, 하나는 SCP용이다.


터미널에서 Tor의 소스 코드의 압축 파일이 있는 디렉터리로 이동한 후

scp tor-0.3.1.7.tar.gz root@123.123.123.123:/root

를 입력하여 자신의 컴퓨터의 tar.gz 파일을 VPS의 /root 디렉터리로 업로드한다. 여기의 파일 이름은 예시일뿐이니, 자신이 갖고 있는 파일 이름에 맞춰서 입력한다.


우분투의 경우 터미널에서

cd /root/

를 하여 /root 디렉터리로 이동 후

ls

를 하면

tor-0.3.1.7.tar.gz

파일이 보일 것이다. tar.gz 파일의 압축을 풀기 위해 tar 명령어를 사용할 것이다.

tar --help

를 해서 도움말을 보면

-?, --help                 give this help list
-x, --extract, --get       extract files from an archive
-z, --gzip, --gunzip, --ungzip   filter the archive through gzip
-f, --file=ARCHIVE         use archive file or device ARCHIVE
-c, --create               create a new archive

가 보일 것이다.

tar xzf tor-0.3.1.7.tar.gz

을 하여 압축 파일을 풀어낸다. 만약 girls이라는 폴더나 파일을 rapeyou.tar.gz라는 이름으로 압축을 하려면

tar fzc rapeyou.tar.gz girls

라는 명령어를 입력하면 된다. xzcf 등 옵션의 순서는 상관없다. tar는 여러 파일을 묶어주기만 할 뿐 압축 기능이 없으므로 일단 tar로 묶어주고, gzip(gz)으로 압축을 한다. 위 옵션은 그 기능을 한 번에 해주는 것이다. 이제

ls

를 하면

tor-0.3.1.7  tor-0.3.1.7.tar.gz

이렇게 새로운 폴더가 생긴 것이 보일 것이다. 이제

cd tor-0.3.1.7

하여 tor-0.3.1.7 디렉터리로 이동한다. 거기서

./configure

를 해준다. 만약 gcc가 없어서 안 되면

apt install gcc

를 해서 gcc를 설치한다. 그리고 libevent 때문에 설치가 안 된다고 뜨면

apt install libevent-dev

해서 설치한다. 이제

./configure

가 될 것이다. 그 후

make

를 해서 마친다. ./configure와 make를 한 번에 하려면

./configure && make

를 하면 된다. 여기서는 "make install" 명령어가 필요없지만 아예 세 개의 명령어를 순서대로 한번에 실행시키는

./configure && make && make install

형태로도 많이 쓰인다. ./configure는 소스 코드로부터 프로그램을 컴파일(소스 코드를 실행 가능한 프로그램으로 만듦.)하는데 필요한 것이나 에러가 없는 지 점검하고, make는 실질적으로 컴파일을 하며, make install은 컴파일의 구성 요소로 필요한 라이브러리(작은 프로그램으로, 큰 프로그램의 일부분으로서 작동한다.)를 불러와 컴파일되는 프로그램에 집어넣는다.


센트OS VPS에서도 scp로 tor-0.3.1.7.tar.gz 파일을 /root 디렉터리로 업로드한다. ssh로 VPS에 접속한 후

tar xzf tor-0.3.1.7.tar.gz 

로 root 딜렉터리에 위 압축파일을 푼다.

cd tor-0.3.1.7
./configure

역시 C 언어 컴파일러가 없어서 설치가 안 된다. gcc를 설치해준다.

yum install gcc

를 해준다. 중간에 y (yes) 또는 n (no)을 물어보는 게 나오면 무조건 y나 yes를 입력해주면 된다. 그리고

./configure

하고 make를 하려고 하면 make 파일이 없다고 뜬다. 그리고 그 위에 보면

configure: WARNING:    You will probably need to install libevent-devel too.

라고 떠있는 것이 보일 것이다. 그리고

yum install libevent-devel

를 입력하여 libevent-devel을 설치해준다. 중간에 [y/d/N] 중에서 선택하라고 물어보면 무조건 y로 대답한다. y는 yes, d는 download only, N은 no이다.

./configure

하여 설정해주고

make

하려고 하니 open-ssl을 설치하라고 한다.

yum install openssl-devel

로 open-ssl을 설치하고

./configure

하고

make

한다.

tor 파일을 셸 스크맆트로

소스 코드로 Tor를 설치할 경우에 tor라는 명령어로는 Tor가 실행되지 않으며 반드시 or 디렉터리에 있는 Tor 실행 파일인 tor를 실행시켜줘야 한다. 터미널에서

/root/tor-0.3.1.7/src/or/tor &

해서 실행시켜도 되지만 너무 기니 다 치기 귀찮을 것이다. 이것을 /root/ 에서

./tor

만 치면 실행할 수 있는 셸 스크맆트로 만들어보자. 토어 실행시

/root/tor-0.3.1.7/src/or/tor

를 하면 Tor가 포어그라운드(foreground)로 실행되어 터미널은 더 이상 명령어를 받을 수 없는 상태가 되어 다른 명령어를 내리려면 Ctrl + C 인터럽트 키로 지금 실행되고 있는 명령을 취소하거나, 새 터미널을 띄우고 ssh로 다시 접속해야 한다. 그럼 귀찮으니 명령어 뒤에 &을 붙여서 백그라운드(background)로 실행시키는 것이다. & 띄어쓰기는

/root/tor-0.3.1.7/src/or/tor &

/root/tor-0.3.1.7/src/or/tor&

둘 중 아무거나 상관없다. 위와 같이 입력하면 토어가 실행되고, 엔터(enter) 키를 누르면 다시 명령 프롬프트(command prompt)가 떠서 다른 명령을 받아들일 수 있는 상태가 된다.


이제 이 명령어를 셸 스크맆트(shell script)로 만들 것이다. 리눅스는 대부분 bash 셸을 쓰니 bash 셸 스크맆트를 만들 것이다. 스크맆트(script)는 소스 코드컴파일하여 만들어진 바이너리(binary) 실행 파일인 프로그램과는 달리 인터프리터(interpreter)에서 한 줄씩 해석해서 바로 실행하는 것이다. 파이썬같은 게 스크맆트 언어이고, C 언어같은 게 컴파일 언어이다.


cd /root

로 /root 디렉터리로 이동.

vim tor

로 tor라는 파일을 만들고 vim 편집기로 편집.

i

a

를 입력하여 편집 가능 상태로 만든다.

#!/bin/sh

를 맨 위에 입력하여 bash shell script임을 알려준다.

/root/tor-0.3.1.7/or/src/tor &

를 그 밑에 입력하여 위 명령어를 백그라운드로 실행할 것임을 적어준다. Esc 키를 눌러 명령어 상태로 간 후

:wq

를 입력하여 저장(w)하고, 종료(q)한다.


그리고

ls -l tor

해서 권한을 본다.

-rw-r--r--

일 것이다.

chmod +x tor

해서

-rwxr-xr-x

로 만들어 실행 가능하게 만들어준다.


이제 /root 에서

./tor

만 입력하면 Tor가 백그라운드로 실행될 것이다.

ps -A

해서 실행 중인 모든 프로세스의 목록을 보자. tor가 보일 것이다.


왜 /root 디렉터리셸 스크맆트 파일을 만들었냐하면 root로 로그인하면 root의 홈 디렉터리인 /root로 들어가지기 때문이다. 즉, 써버리부트(reboot)하면 토어(Tor)가 종료된다. 그리고 SSHVPS에 다시 접속하면 Tor는 여전히 종료된 상태다. 즉, 리부팅(rebooting) 후 SSH로 VPS에 접속하면 뜨는 게 /root이므로 여기서 ./tor만 입력해서 바로 실행할 수 있게 /root에 tor 셸 스크맆트 파일을 만든 것이다. 또한 다른 경로에 있더라도

cd ~

만 입력하면 홈 디렉터리인 /root로 이동하므로 tor 셸 스크맆트는 /root 디렉터리에 있는 게 사용하기 편하다.

torrc 설정

cd /etc/tor/ 

로 tor 디렉터리로 이동 후

vim torrc

해서 문서 편집기 vim으로 torrc 파일을 불러와서 키보드 방향 키로

#HiddenServiceDir /var/lib/tor/hidden_service/
#HiddenServicePort 80 127.0.0.1:80

#HiddenServiceDir /var/lib/tor/other_hidden_service/
#HiddenServicePort 80 127.0.0.1:80
#HiddenServicePort 22 127.0.0.1:22

를 찾은 후 i나 a를 눌러 입력 모드로 들어간 후

HiddenServiceDir /var/lib/tor/hs1/
HiddenServicePort 80 127.0.0.1:892

HiddenServiceDir /var/lib/tor/hs2/
HiddenServicePort 80 127.0.0.1:1004
#HiddenServicePort 22 127.0.0.1:22

로 바꿔준다. 그리고 Esc 키를 눌러 명령 모드로 나온 후

:wq

를 눌러 변경 내용을 쓰기(write)한 후 종료(quit)한다. 그리고

/etc/init.d/tor restart

를 하여 토어를 재시작한다.


아래는 소스 코드컴파일해서 설치했을 경우의 torrc 설정 방법이다.

cd /root/tor-0.3.1.7/src/config/

로 config 디렉터리로 이동

cp torrc.sample torrc

로 torrc.sample 파일 복사 후 torrc로 이름 바꾸기


vim torrc

로 vim 편집기에서 i나 a 키를 눌러 torrc 파일 편집

#HiddenServiceDir /usr/local/var/lib/tor/hidden_service/
#HiddenServicePort 80 127.0.0.1:80

#HiddenServiceDir /usr/local/var/lib/tor/other_hidden_service/
#HiddenServicePort 80 127.0.0.1:80
#HiddenServicePort 22 127.0.0.1:22

HiddenServiceDir /usr/local/etc/tor/hs1/
HiddenServicePort 80 127.0.0.1:892

HiddenServiceDir /usr/local/etc/tor/hs2/
HiddenServicePort 80 127.0.0.1:1004
#HiddenServicePort 22 127.0.0.1:22

로 바꿔준다. HiddenServicePort의 의미는 80번 포트(port)로 들어온 요청(request)을 127.0.0.1:892와 127.0.0.1:1004로 돌린다(redirect)는 의미이다. 자세한 설정 방법은 https://www.torproject.org/docs/tor-hidden-service.html.en 을 참고한다. 이제 Esc 키 누르고 :wq로 저장하고 나온다. w는 쓰기(write), q는 종료(quit)이다.

만약 저장하지 않고 나오려면

:q!

를 입력한다. 편집을 하지 않았을 경우

:q

만으로도 종료가 가능하지만 문서를 수정을 했을 경우 :q!를 사용해야 종료가 가능하다.


mkdir /usr/local/etc/tor

로 디렉터리를 만들고

mv torrc /usr/local/etc/tor/

로 torrc 파일을 거기로 옮겨준다.


/root/tor-0.3.1.7/src/or/tor &

처럼 &를 붙여서 tor 파일을 백그라운드로 실행한다. 그리고 tor-0.3.1.7 부분은 t만 입력하고 뒷부분은 Tab 키로 자동완성시키면 된다. 이전에 실행했던 명령어를 다시 실행하려면 키보드의 위 아래 화살표 키를 눌러주면 된다.


torrc를 수정한 후에는 tor 프로세스를 종료 후 재시작해야 torrc의 수정 내용이 반영된다.

터미널에서

ps -A

를 입력하여 실행 중인 모든 프로세스를 본다. 그리고 CMD 항목에서 tor라는 프로세스의 PID를 확인한다. 만약 tor의 PID가 890이라면

kill -15 890

를 입력하여 tor를 종료한다. 그리고

cd /root/tor-0.3.1.7/src/or/

로 or 디렉터리로 이동 후

./tor

로 tor 파일을 실행시킨다.

커스텀 주소 사용

우분투 VPS의 경우 먼저 VPS에서

mkdir /var/lib/tor/hs1/

하여 hs1 폴더를 만든다.

그리고 자신의 컴퓨터에 새로 연 터미널에서

scp hostname private_key root@123.123.123.123:/var/lib/tor/hs1/

하여 자신의 컴퓨터에 있던 hostname과 private_key 파일을 VPS의 hs1 디렉터리로 복사하여 거기 원래 있던 파일에 덮어씌운다. 그리고

/etc/init.d/tor restart

하여 토어를 재시작한다. 이제 이 새로운 onion 주소가 토어 네트워크에 등록될 때까지 몇 분 기다리면 새로운 onion 주소로 접속이 가능할 것이다.


아래는 소스 코드로 설치했을 때의 커스텀 주소 적용 방법이다.

cd /root/tor-0.3.1.7/src/or/

해서 or 디렉터리로 돌아간 후

./tor &

해서 tor 파일을 실행시킨다. 현재 디렉터리에 있는 tor라는 파일을 실행시키라는 의미이다. 만약 뒤에 &을 안 붙이면 tor가 포어그라운드(foreground)로 실행되기 때문에 다른 작업을 할 수 없다. ssh에 접속된 터미널은 Tor가 실행 중이고, 터미널에서는 멀티 태스킹이 안 되기 때문이다. 따라서 뒤에 &을 붙여 백그라운드(background)로 실행시킨다. Bootstrapped 100%: Done이라고 뜨면 엔터를 쳐준다. 그러면 명령 프롬프트가 다시 나와서 다른 명령을 실행시킬 수 있는 상태가 된다.


그리고

cd /usr/local/etc/tor/
ls

하면

hs1  hs2  torrc

hs1과 hs2라는 2개의 디렉터리가 생긴 것이 보일 것이다.

cd hs1
ls

를 해서 hs1 디렉터리에 가보면 원래 없었던

hostname  private_key

라는 두 개의 파일이 보일 것이다. hostname 파일에는 자신의 다크 웹 싸이트의 onion 주소가 있고, private_key 파일에는 자신의 onion 주소를 소유하고 사용할 수 있는 개인 키가 들어있다. hs2 폴더에도 같은 이름의 파일들이 있을 것이다.


vim hostname

해서 보면

loliniissexslave.onion

이런 식으로 생겼다. Tor Browser로 이 새로 생긴 onion 주소로 들어가보면 접속이 되는 것을 볼 수 있을 것이다. 그리고 private_key는 자신이 해당 onion 주소의 주인임을 인증하는 개인 키이다.


다른 터미널을 열고

scp hostname private_key root@123.123.123.123:/usr/local/etc/tor/hs1/

하여 내가 컴퓨터에서 Eschalot으로 생성한 hostname과 private_key 파일을 업로드하여 VPS의 hs1 폴더에 있던 파일들에 덮어씌운다. 그러면 자신이 직접 만든 onion 주소를 사용할 수 있다.


터미널에

scp root@123.123.123.123:/usr/local/etc/tor/hs2/* /home/username/

하여 이 두개의 파일을 자신의 컴퓨터로 다운로드 한다. *은 모든 파일명을 의미하고, username에는 자신의 컴퓨터의 계정명을 적어주면 된다.


그리고 원래 실행되던 Tor를 종료하고 재실행시키면 된다. ssh 명령어로 접속한 후 실행 중인 프로세스를 확인하는 명령어인 ps에 모든 프로세스를 보여주라는 옵션인 -A를 붙여

ps -A

를 실행하여 tor의 PID를 알아낸다. 예를 들어 tor의 PID가 747이라면

kill -15 747

를 입력한다. 그러면 tor에 종료 명령이 가고, 해당 프로그램은 프로그램을 종료하려고 시도한다. 만약 15 옵션이 듣지 않으면 9 옵션을 시도해본다.

kill -9 747

9 옵션은 커널(kernel)에서 해당 프로세스를 강제 종료시키는 것이다. 같은 프로그램이라도 매번 실행시킬 때마다 PID 번호가 바뀐다. 그 후 다시

cd /root/tor-0.3.1.7/src/or/

해서 or 디렉터리로 간 후

./tor

해서 Tor를 재실행시킨다. 그리고 Tor Browser로 자신이 Eschalot으로 만든 onion 주소로 접속해보면 접속이 되는 것을 볼 수 있을 것이다. tor 프로세스를 끄면 사람들이 자신의 웹 사이트로 접속할 수 없으므로 tor 프로세스는 계속 켜놓아야 한다.


./tor

를 입력하면 포그라운드(foreground)로 실행되며, 포그라운드라 명령 프롬프트가 뜨지 않아 터미널에는 어떤 키보드 입력도 할 수 없는 상태이며, 터미널 상태에서 "Ctrl + C"를 누르면 종료된다.

./tor &

를 하면 백그라운드(background)로 실행되기 때문에 프로그램만 실행시키고 명령 프롬프트가 바로 뜨며, 터미널에서 다른 명령을 실행시킬 수 있다. 백그라운드 상태에서는 터미널에서 "Ctrl + C" 인터럽트 키를 눌러도 종료되지 않는다.

nginx, MariaDB, PHP 설치

nginx, MariaDB, PHP 설치는 엔진엑스, 마리아DB, 피에이치피 문서를 참조하기 바란다. nginx 대신 Apache를 설치하려면 아파치 문서를 참조하면 된다.


Tor의 onino 주소를 가진 다크 웹 싸이트 제작을 위한 Apachenginx의 설정 및 사용 방법은 아파치엔진엑스 문서 참조.

VPS에 웹 써버 설치 추가 내용

VPS 리부팅

메모리가 모자라든가, 뭔가 문제가 있어서 VPS를 리부팅(rebooting)할 경우 터미널에서

init 6
reboot
shutdown -r now

셋 중 뭐를 입력해도 그냥 VPS와의 연결만 끊어지지, 리부트(reboot)되지는 않을 것이다. 가상 서버라 재부팅 등 하드웨어와 관련된 명령어는 안 먹는 것 같다. 따라서 VPS 업체 웹 싸이트에서 제공하는 VPS 관리 메뉴를 이용하여 써버를 리부팅 하면 된다.

위의 리부팅 명령어 중 뭐를 써도 씨큐어 셸(ssh) 접속 종료 명령어인 exit과 동일한 동작을 한다.

swap 파일 생성

메모리가 모자랄 경우 swap 파티션이나 스왑 파일을 사용하는 경우가 많다.

dd if=/dev/zero of=/swapfile bs=1M count=2048

/에 swapfile이라는 이름의 2GB짜리 스왑 파일 생성. 즉, /swapfile을 생성하는 명령어이다. swapfile은 다른 이름을 사용해도 된다. bs는 입출력 단위인 블록 사이즈이다. 단위는 바이트(byte)이고, MB의 경우 M만 적어주면 된다. count는 입출력 단위의 몇 배 크기의 스왑 파일을 만들 것인지를 정하는 것이다.

mkswap /swapfile

swap 파일로 포맷(format)

swapon /swapfile

생성한 스왑 파일을 Swap 공간으로 활성화 하기

swapon: /swapfile: swapon failed: Operation not permitted

하지만 VPS라 swapon을 금지한다는 위와 같은 메시지가 뜨면서 안 될 수 있다. 아무래도 더 메모리가 많지만 더 비싼 상위 VPS 모델을 결제하게 하기 위해 swapon 명령어를 막아놓은 것 같다.

swapon이 안 먹으니 좀 전에 만든 스왑 파일은 필요없어졌으니 지워버리자.

rm /swapfile

스왑 파일 삭제하기


tor나 swapon이 리눅스를 부팅할 때마다 자동실행되게 하려면 /etc/rc.local 에 추가해놔야 한다. 구체적인 방법은 리눅스 문서를 참조하면 된다.

부팅시 Tor 자동 실행

우분투에서

apt install tor

해서 설치했을 경우 리부팅시 자동으로 tor가 다시 시작한다.


하지만 소스 코드로 설치했을 경우에는 매번

/root/tor-0.3.1.7/src/or/tor

로 실행해야 한다. 이게 귀찮으니 Tor가 자동 실행되는 방법을 생각해보자. 우선

vim /etc/rc.local

해서 rc.local 파일을 편집한다. 해당 파일이 없으면 자동으로 새 파일을 생성한다. 편집할 위치로 이동 후

i

a

를 입력하여 편집한다.

맨 위에

#!/bin/sh -e

맨 아래에

exit 0

가 있어야 한다. 없으면 적어준다. 이제 둘 사이에 실행할 명령을 적는다.

/root/tor/src/or/tor

다시 부팅해본다. 그리고

ps -A

로 실행 중인 프로세스(process) 목록을 본다. tor가 없다. 아마 VPS라 완전한 리부팅이 아니라 실행이 안 되는 걸 수도 있고, 명령어가 아니라 단순 파일이라 실행이 안 되는 걸 수도 있다. 로컬 컴퓨터에서 rc.local에

swapon /swapfile

를 추가하면 정상 작동한다. 또한 VPS에서도 셸 스크맆트

#!/bin/sh
/root/tor/src/or/tor

하면 일반 실행 파일이라도 정상적으로 실행되는 것을 확인할 수 있었다. 따라서 VPS라 제대로 작동하지 않는 것으로 보인다. #!/bin/sh 뒤에 -e가 붙고, 안 붙고의 차이는 모르겠다. exit 0는 끝낸다는 의미이다.

VPS에서 리부팅시마다 Tor를 자동 실행하는 방법은 /etc/rc.local 대신에 다른 방법을 사용해야 할 것 같다.


VPS에서는

init 6

등 로컬 리눅스 서버에서 먹던 리부팅 명령어가 듣지 않는다. 아마도 가상 써버라 그런 것 같다. 일단은 VPS 업체의 웹 싸이트에 접속하여 VPS 관리 메뉴에서 리부팅을 하면 된다. 터미널에서 리부팅이나 종료하는 명령어도 있을 수도 있다. 하지만 VPS 업체의 웹 싸이트의 VPS 관리 메뉴에 리부팅, 부팅, 종료 메뉴가 있는 거 보면 터미널에서는 안 될지도 모르겠다.

웹 싸이트 유지 보수

CMS 파일 교체 등 웹 싸이트를 수정하는 동안에는 악의적인 해커가 접근하지 못 하게, 잠깐 토어(Tor)를 꺼놓아 외부에서 접근하지 못 하게 한다. 자기 자신은 VPSIP 주소SSH로 접속하면 된다.


그리고 CMS 설치 등 자신도 웹 브라우저로 접속해야 하는 경우에는 VPS에서 어쩔 수 없이 토어를 켜야한다. 그럴 경우에는 일단 기존 자신의 싸이트의 hostname과 private_key 파일을 백업해놓는다. 예를 들어 hs1 폴더에 기존 키가 있었을 경우, Eschalot으로 새로운 hostname과 private_key를 생성한 후 자신의 hs1 경로에 따라

scp hostname private_key root@123.123.123.123:/var/lib/tor/hs1/

scp hostname private_key root@123.123.123.123:/usr/local/etc/tor/hs1

둘 중에 자신에게 맞는 것을 하여 기존 키를 새 키로 교체한다. 아마 apt로 설치했으면 위의 경로, 소스 코드로 설치했으면 아래 경로일 것이다. 그리고 VPS에서

/etc/init.d/tor restart

를 하여 토어를 재시작한다. 만약 소스 코드로 설치했으면

ps -A

로 tor 프로세스의 PID를 찾은 후

kill -15 PID

로 토어 프로세스를 죽인 후

/root/tor-0.3.1.7/src/or/tor &

로 토어를 재실행한다. Tor를 재실행하지 않으면 예전 onion 주소로 접속된다.


이제 토어 브라우저로 자신의 새 onion 주소로 접속해보면 접속이 될 것이다. 물론 바로 접속은 되지 않고 몇 분이 지나서 토어 네트워크에 자신의 새 주소가 적용이 되어야 접속이 가능하다. 이제 거기서 CMS 설치 등을 하고, 설치가 끝난 후 다시 hostname과 private_key를 원래 것으로 교체해놓으면 된다.

패비콘 만들기

웹 브라우저북마크, 즐겨찾기, 상단 에 뜨는 패비콘(Favicon)을 만드는 방법은 피에이치피BB(phpBB) 문서를 참조하기 바란다.

index.html 대신 다른 것 사용

웹 브라우저가 처음 접속시 읽는 문서를 index.html에서 다른 것으로 바꾸고 싶을 경우

센트OS에서는

vim /etc/httpd/conf/httpd.conf

를, 우분투에서는

vim /etc/apache2/apache2.conf

를 해준 후

DirectoryIndex  index.html

이라고 적힌 부분을 찾는다. 만약 없으면 새로 적어주면 된다. 그리고

DirectoryIndex  yourpussy.html yourbreasts.php youranus.html

와 같은 내용을 적어준다면, 우선 yourpussy.html을 찾아보고 그게 있으면 그걸 읽어서 웹 브라우저 화면에 보여주고, 만약 없으면 yourbreasts.php를 읽고, 만약 그것도 없으면 youranus.html을 사용한다는 의미이다.

MariaDB가 자꾸 죽을 경우

General Error

SQL ERROR [ mysqli ]

MySQL server has gone away [2006]

An sql error occurred while fetching this page. Please contact an administrator if this problem persists.



General Error SQL ERROR [ mysqli ]

No such file or directory [2002]

An sql error occurred while fetching this page. Please contact an administrator if this problem persists.



Warning: mysqli::query(): MySQL server has gone away in /var/www/html/system/library/db/mysqli.php on line 18Warning: mysqli::query(): Error reading result set's header in /var/www/html/system/library/db/mysqli.php on line 18



Warning: mysqli::__construct(): (HY000/2002): No such file or directory in /var/www/html/system/library/db/mysqli.php on line 7Warning: DB\MySQLi::__construct(): Couldn't fetch mysqli in /var/www/html/system/library/db/mysqli.php on line 10Warning: DB\MySQLi::__construct(): Couldn't fetch mysqli in /var/www/html/system/library/db/mysqli.php on line 10


와 같은 메시지가 뜨면서 메모리 부족으로 마리아DB가 자꾸 죽어 웹 싸이트 작동이 정상적으로 안 될 경우 제일 간단한 방법은 가상 사설 써버(VPS)를 리부트(reboot)하는 것이다. 실제 리눅스 써버는 부팅하는데 몇 십 초는 걸리지만, VPS는 1초도 안 걸리기 때문이다. 하지만 24시간 항상 켜져있어야 하는 써버를 리부트하는 건 좋은 습관이 아니니, 리부팅없이 운영하는 방법을 알아보자.


우선 버퍼(buffer)와 캐시(cache)를 비워준다. 하는 방법은 리눅스 문서를 참고한다. 그 후 죽은 MariaDB

/etc/init.d/mysql start

systemctl start mariadb

로 시작시킨다. 만약 제대로 정지가 되지 않은 상황이면 우선

/etc/init.d/mysql stop

으로 정지부터 시킨 후 시작시킨다.

VPS 운영 체제 재설치시

ssh 암호화 접속을 위한 기존 키의 해시 값과 다르다고 뜨면서 접속이 안 될 것이다. 터미널에서

rm /home/user/.ssh/known_hosts 

해서 기존 키를 지워준다. user 자리는 자신의 컴퓨터의 계정 이름을 넣으면 된다. 그리고 다시 접속하면 된다. 중간에 계속 진행할 거냐고 물어보면 yes를 적어주면 된다.

써버 시간대 변경

해외 VPS를 쓰면 시간대가 한국과 다르다. 우분투데비안 계열의 경우 터미널에서 아래와 같이 한다.

dpkg-reconfigure tzdata

를 입력하여 Asia 선택 후 Seoul을 선택하면 된다.

VPS 목록

VPS 목록은 VPS 목록 문서 참조.

보안

가상 사설 서버가 널리 알려지는 또 하나의 까닭은 샌드박스를 만들 수 있기 때문이다. 예를 들어, 어떤 하나의 물리적인 서버가 두 개의 사설 서버를 운영하고 있다고 하자. 하나는 실제 운영되는 웹 사이트를 맡고 있고 나머지 하나는 그것의 복사본을 운영한다. 만약 아주 중대한 소프트웨어 업데이트를 해야 한다면 그들은 두 번째 복사본 서버에서 테스트해 볼 수 있다.

가상 사설 서버는 또 허니팟을 위해 사용되는데, 허니팟은 보안문제가 있는 소프트웨어를 일부러 운영하는 것이다. 하나의 서버에 여러 개의 가상 서버를 운영하기 쉽기 때문에 허니팟을 운용하는 데에 편리하다.

체포를 피하기 위해 리눅스 마스터 1급과 정보보안 기사정도는 따고 운영하자.

체포

해외 VPS 쓰고, 페이퍼 컴퍼니돈 세탁 한다고 체포가 안 되는 것은 아니다.


  • 1조원대 불법 스포츠 도박사이트... 700억 챙긴 조폭 등 50명 적발

2016.06.30

http://www.hankookilbo.com/v/e657b2b3ed274acda47dd7fb36c5bb5a


  • 3조원대 불법 스포츠 도박 사이트 운영조직 적발

2016-07-28

http://www.hankyung.com/news/app/newsview.php?aid=201607281260i


  • 1조원대 도박사이트 적발…피의자 바꿔친 가수 구속

2016-11-14

http://www.yonhapnewstv.co.kr/myh20161114018200038/


  • '1조원대' 불법 도박 사이트 기업형으로 운영한 조직 적발

2017-04-27

회원만 4만3천여명…범죄수익으로 천억원 넘게 챙겨

페이퍼 컴퍼니를 차려놓고 무려 1조원대 불법 도박 사이트를 운영해온 조직이 검찰에 적발됐다.

페이퍼컴퍼니(서류상 회사)를 차려놓고 총 판돈이 1조원이 넘는 불법 도박 사이트를 운영해온 기업형 조직이 검찰에 적발됐다.

부산지검 형사3부(박억수 부장검사)는 총 베팅 규모 1조 3천억원대 불법 도박 사이트를 운영해 1천억원이 넘는 수익을 올린 조직을 적발해 국민체육진흥법 위반(도박개장 등)과 도박공간 개설 혐의로 자금관리책 A(40) 씨와 현금 인출책 B(43) 씨 등 11명을 구속기소 하고 홍보담당 등을 불구속 기소했다고 27일 밝혔다.

검찰은 또 외국으로 달아난 총책 C(38) 씨와 서버관리자 등 3명은 지명수배했다.

검찰에 따르면 이들은 지난해 10월부터 올해 4월까지 홍콩일본서버를 두고 불법 온라인 도박사이트를 개설했다.

이들은 인천지역 PC방과 수십곳과 연계하는 등 온·오프라인을 통해 광범위하게 회원을 모집했다.

PC방 이용자들이 불법 도박 사이트에서 잃은 돈의 12%는 PC방 주인에게 인센티브로 돌아가는 구조여서 업주 또한 회원모집에 나섰다.

검찰이 파악한 불법 도박 사이트 회원만 4만 3천여명에 이른다.

특히 A씨 등은 수사기관 단속을 피하려고 서버를 일본과 홍콩에 둔 호스팅 업체를 통해 도메인 주소(URL)와 아이피 주소를 할당받은 뒤 단기간 사용하고 교체하는 치밀함을 보였다.

또, 서버관리자총책대포폰을 사용하면서 수시로 전화를 바꾸고, 거주지도 서울 강남지역에서 오피스텔월세임차해 수시로 이사했다.

검찰조사결과 이들은 여러 개의 페이퍼컴퍼니를 세우고 계좌를 만들어 상호 계좌이체를 되풀이하면서 도박 수익금을 정상적인 회사 수익인 것처럼 세탁한 것으로 드러났다.

A씨 등은 페이퍼 컴퍼티의 등기부상 목적사항에 '비트코인 중개업'이라고 써 넣었고, 도박수입금이 비트코인 중개업을 통해 발생한 것처럼 위장했다.

게다가 검찰에 붙잡혀 조사를 받는 와중에도 비트코인 중개업을 운영한 것이라고 입을 맞춰 혐의를 전면 부인하기도 했다.

검찰 관계자는 "불법 도박사이트는 국가적, 사회적으로 큰 폐해를 낳고 있는 대표적인 서민생활침해사범"이라며 "이들이 세운 페이퍼컴퍼니 계좌와 조직원들이 소유한 부동산에 대해 추징 보전조치를 통해 범죄수익으로 환수할 방침"이라고 밝혔다.

https://nocutnews.co.kr/news/4775824