
IRC란?
Internet Relay Chatting의 약자로, 특정 topic을 가지고 사용자끼리 대화를 할 수 있다.
Installation
먼저 방화벽에서 6667, 6697, 7000, 7001 포트를 열어준다.
1sudo iptables -I INPUT 1 -p tcp --dport 6667 -j ACCEPT 2sudo iptables -I INPUT 1 -p tcp --dport 6697 -j ACCEPT 3sudo iptables -I INPUT 1 -p tcp --dport 7000 -j ACCEPT 4sudo iptables -I INPUT 1 -p tcp --dport 7001 -j ACCEPT
또는 서버 방화벽 (보안 그룹) 페이지에서 해당 포트를 열어줄 수 있습니다.
패키지 설치
1sudo apt install docker 2sudo apt install certbot 3sudo apt install screen
도커, 인증서 발급 패키지, 백그라운드 실행 패키지를 설치한다.
인증서 발급
IRC 서버를 운영하기 위해서는 인증서가 필요하다.
1sudo certbot certonly --standalone -d <domain>
도커 세팅
이제 도커를 이용해서 서비스를 시작해보자.
1mkdir irc 2cd irc 3touch docker-compose.yml 4mkdir config
docker-compose.yml 을 아래와 같이 작성한다.
1version: "3.5" 2services: 3 irc: 4 container_name: irc_server 5 image: inspircd/inspircd-docker:2.0.27 6 ports: 7 - "6667:6667" 8 - "6697:6697" 9 environment: 10 - INSP_NET_SUFFIX=.irc.your.domain.com 11 - INSP_ADMIN_NAME= 12 - INSP_ADMIN_NICK= 13 - INSP_ADMIN_EMAIL= 14 volumes: 15 - ./config:/inspircd/conf/
인증서 적용
1sudo cp /etc/letsencrypt/live/<도메인>/fullchain.pem ./config/cert.pem 2sudo cp /etc/letsencrypt/live/<도메인>/privkey.pem ./config/key.pem 3sudo chown 10000 ./config/ -R
서비스 시작
1screen -S irc 2docker-compose up
Ctrl + A, D 를 눌러서 screen 에서 나온다.
1screen -r
screen 에 다시 들어가려면 위의 명령어를 사용하면 된다.
서버 접속 방법
irc 클라이언트 중 하나인 irssi 를 사용해 접속해보자.
1sudo apt install irssi 2irssi
irssi 가 실행이 되면 자신의 서버에 접속할 수 있습니다.
1/connect -tls <도메인> 6697 2/join <채널>
일일이 접속할 때 마다 위의 명령을 쳐야하기 때문에 zshrc 에 등록해두는 것을 추천한다.
아래의 명령어를 ~/.zshrc 파일 끝에 추가한다.
1alias irc='irssi -c <도메인> -n <닉네임>'
motd 변경
MOTD 란 Message Of The Day 의 약자로 IRC 서버에 접속할 때 보여주는 문자열이다. 주로 서버 소개, 규칙 등을 적어놓는다.
1screen -r 2cd config
이후 docker.motd 파일을 수정해서 사용하면 된다.
1 _ _ 2 ___ ___ ___ _ __ ___| |_ (_)_ __ ___ 3/ __|/ _ \/ __| '__/ _ \ __|____| | '__/ __| 4\__ \ __/ (__| | | __/ ||_____| | | | (__ 5|___/\___|\___|_| \___|\__| |_|_| \___| 6 7 8 9👋 환영합니다! 10 11이곳은 Devleo 가 운영하는 비밀 IRC 서버입니다. 12 13가볍고 빠른 성능의 IRC 서버에서 쾌적한 채팅을 경험하세요! 14 15채팅 채널을 소개합니다. 16 17#general: 잡담 18#develop: 개발 관련 19#hacking: 해킹 관련