본문 바로가기
iRC/ZNC

ZNC 인스톨 튜토리얼 1부 : 다운로드 및 설치

by 4n0nym0us 2015. 10. 31.



 BNC가 무엇인가?


ZNC에 들어가기 전에 먼저 BNC에 대해 먼저 알아보고 가자. BNC (short for bouncer)는 클라이언트와 서버 사이에 중간 다리 역활을 수행하여 실제 트래픽을 숨기기 위해 사용하는 일종의 프록시와 같은 개념의 소프트웨어이다. IRC뿐만 아니라 FTP에서도 많이 사용하고 있다.


일반적으로 사용자 클라이언트와 IRC 서버와 직접 통신을 주고 받으나 ZNC가 중간자로 개입 하여 역활을 수행하게 되는데 ,사용자는 ZNC서버로 접속하고 제어 해서 IRC 서버와 통신을 수행 하게된다. 이를 통해 사용자는 직접 연결 하지 않고도 IRC 서버와 통신 할 수 있으므로 뛰어난 익명성을 보장 한다.


사용자가 ZNC와 연결을 종료하여도 BNC는 IRC 서버와 항상 연결 되어 있기 때문에(BNC 서버가 계속 돌아가는한) 24시간 채널에 상주 할 수도 있다.


FTP에서 사용하는 BN도 이와 원리는 같다. 마치 첩보 영화의 한 장면처럼 해커가 시스템을 해킹 하기 위해 여러 나라나 서버을  거치게 해서 자신의 추적을 피하기 위한 수법과도 유사하다.


BNC 작동 원리


실제로 IRC의 BNC을 사용하는 근본적인 이유는 인터넷에서 개인 프라이버시의 중요성이 크게 부각 되어 있기 때문이다. ISP 업체에서 고객들의 패킷을 감청하는 행위는 공공연한 사실이고 언론 통제가 극히 심한 일부 국가에서는 자국민의 모든 네트워크을 감청하거나 식별을 하고 제재한다.

 

이러한 사실과 근거을 이유로 개인이 직접 서버를 호스팅해서 BNC 서버을 설치해서 사용하거나  BNC을 서비스를 무료로 제공하는 비상업적인 단체가 있는가 하면, 유료로 제공하는 업체를 찾아서 직접 돈을 지불하고 사용하기도 한다. (나도 직접 차려서 해볼까?)


필자도 직접 서버 호스팅을 해서 BNC을 설치해서 사용하다가, 현재는 지인을 통해서 BNC을 사용하고 있다. 윈도우 사용자에게는 아쉽지만 BNC 는 리눅스 기반의 소프트웨어이며 설치부터 사용하기 까지 어렵지 않으니 리눅스 초보자라도 쉽게 따라 할 수 있으니 직접 해보길 바란다. 


BNC 소프트웨어는 종류가 여러 있지만 그 중 가장 많이 사용하는 대표적인 두 가지로 psyBNC와 ZNC가 있다. 하지만 psyBNC의 경우는 더 이상 업데이트가 되지 않고 있기 때문에 많이 사용하지 않는다. 현재 가장 많이 사용하는 ZNC는 최근에도 새 기능이 추가 되거나 지소적으로 관리 개선되고 있으므로 본 튜토리얼은 이 ZNC을 대상으로 진행을 하려고 한다.


시작 하기전에 ZNC의 공식 홈페이지를 방문 해보길 권한다. http://wiki.znc.in/ZNC  (미디어위키 기반)



 설치 방법


리눅스 배포판이 많지만 가장 보편적인 우분투의 서버 버전(Ubuntu 14.04)으로 진행한다.


[root@3p1c] # sudo apt-get install python-software-properties software-properties-common


 PPA (Personal Package Archive)을 사용해서 설치를 해보겠다. 이 PPA을 사용하면 최신 버전의 패키지를 정말 편리하게 설치를 할 수가 있다.


필자는 가끔 어떤 패키지를 설치 하고자 했는데, 최신화가 되어 있지 않거나 찾고자 하는 패키지가 없는 일이 자주 있다보니 여간 짜증나고 불편한 일이 아닐 수 없다. (지금 우분투 저장소로 ZNC을 설치 하면 1.4 버전대의 패키지가 설치 될 것이다)


그 이유는 우분투 저장소에 있는 패키지가 최신화 되기 위해서는 최소 6개월간의 시간이 필요하다. 그러기에는 소프트웨어에서는 상당히 오랜 시간 소요 되기 마련이다. 직접 공식 사이트를 방문 하여 wget을 통해 패키지를 수동으로 내려 받는 방법이 있지만 사용자의 니즈를 반영해서 PPA라는 별도의 저장소가 나온 것이다. 


※ 이 튜토리얼을 작성 하는 시점에서 데비안 환경에서 절대로 PPA을 사용하여 설치를 해서는 안된다고 경고를 하고 있다. 시스템에 심각한 문제가 생길 수 있다고 하니, 데비안 저장소를 이용하거나 수동으로 패키지를 내려 받아 설치를 권장하는 바이다.



[root@3p1c] # sudo add-apt-repository ppa:teward/znc

[root@3p1c] # sudo apt-get update


PPA의 ZNC 저장소 소스를 추가하고 APT 정보를 최신화 하자.


[root@3p1c] # sudo apt-get install znc znc-dbg znc-dev znc-perl znc-python znc-tcl


 ZNC 패키지를 설치 하자.


[root@3p1c] # znc --makeconf


첫 설치시에는 반드시 conf 파일을 생성해주어야 한다.


What port would you like ZNC to listen on? (1025 to 65535): <포트 번호 입력>


Would you like ZNC to listen using SSL? (yes/no) [no]: YES


Would you like to create a new pem file now? (yes/no) [yes]: YES


Would you like ZNC to listen using ipv6? (yes/no) [yes]: YES


Load global module <partyline>? (yes/no) [no]: YES


Load global module <webadmin>? (yes/no) [no]: YES


Now we need to set up a user...

ZNC needs one user per IRC networks.


Username : 닉네임 입력

Enter Password: 비밀번호 입력

Confirm Password: 비밀번호 재확인

Would you like to this user to be an admin? (yes/no) [yes]:  이 사용자 계정을 관리자로 등록 할 것인가?

Nick [3P1C] : 닉네임 입력

Alt Nick [3P1C_] : 서브 닉네임 입력

Ident [3P1C] : 식별자 입력

Real Name [Got ZNC?] : 이름 입력

Bind Name [optional] : 선택 옵션

Number of lines to buffer per channel [50] : 버퍼를 얼마나 저장할 것인가? (라인수)

Would you like to keep buffer after replay? (yes/no) [no] : 저장된 버퍼를 채널 입장시 자동으로 출력 할 것인가?



어려운 영문도 아니다 알아들을 것이라 생각한다. 이후 다양한 모듈을 사용하겠냐고 일일히 물어보는데 모두 다 YES 눌러주자


IRC Server (host only) : irc.link-net.org

(irc.link-net.org) Port (1 to 65335) [6667] : 7000

(irc.link-net.org) Password (probably empty) : 

Does this server use SSL? (yes/no) [no] : YES


Would you like to add another server for this IRC network? (yes/no) [no] : 


접속할 IRC 서버를 설정하는 단계다.


Would you like to add a channel for ZNC to automatically join? (yes/no) [yes] : 추가한 채널을 ZNC가 자동으로 접속하게끔 설정 할 것인가?

Channel name : 접속할 채널명 설정 (e.g #3P1C)

Would you like to add another  channel? (yes/no) [no] : 또 추가할 채널이 있는가?

Would you like to set up another user? (yes/no) [no] : 또 추가할 사용자가 있는가?


접속할 채널에 대하여 설정을 하는 단계다.


Launch ZNC now? (yes/no) [yes] : YES


지금 ZNC을 실행하겠냐고 묻는다. 그리고 ZNC가 실행된다.