기존 IRC 서버들은 1Byte 만 지원해서 한글 닉네임 사용을 못합니다.
한글은 2Byte 로 사용하여야 하므로 아래 처럼 한글 닉네임 패치를 하였습니다.
필자는 FreeBSD 7.2-STABLE 서버에서 정상적으로 가동 되었습니다.
Yongbok.net 계정
Unreal3.2-Hangul-By.ruo91.tar.gz
티스토리 계정
Unreal3.2-Hangul-By.ruo91.tar.gz
설치 방법은 아래와 같음
[root@yongbok ~]# mkdir /usr/local/src
[root@yongbok ~]# cd /usr/local/src
[root@yongbok ~]# wget http://www.yongbok.net/irc/ircd/Unreal3.2-Hangul-By.ruo91.tar.gz
[root@yongbok ~]# tar xzvf Unreal3.2-Hangul-By.ruo91.tar.gz
[root@yongbok ~]# cd Unreal3.2
[root@yongbok ~]# ./Config
_ _ _ ___________ _____ _
| | | | | |_ _| ___ \/ __ \ | |
| | | |_ __ _ __ ___ __ _| | | | | |_/ /| / \/ __| |
| | | | '_ \| '__/ _ \/ _ | | | | | / | | / _ |
| |_| | | | | | | __/ (_| | |_| |_| |\ \ | \__/\ (_| |
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
Configuration Program
for Unreal3.2.8.1
This program will help you to compile your IRC server, and ask you
questions regarding the compile-time settings of it during the process.
regarding the setup of it, during the process.
If you have problems regarding the setup & compile, read Unreal.nfo to get
more information on where to get help. Please, before running this setup,
read the documentation in the "doc" folder. Docs are also avail online @
http://www.unrealircd.com/unreal32docs.html
................................................
................................
......................
..........
Many older operating systems have an insecure TCP/IP stack
which may be vulnerable to IP spoofing attacks, if you run
an operating system that is vulnerable to such attacks
enable this option. This option can also be useful to prevent
blind proxies from connecting (eg: HTTP POST proxies).
Do you want to enable the server anti-spoof protection?
[No] ->
What directory are all the server configuration files in?
[/usr/local/src/Unreal3.2] ->
What is the path to the ircd binary including the name of the binary?
[/usr/local/src/Unreal3.2/src/ircd] ->
Would you like to compile as a hub or as a leaf?
Type Hub to select hub and Leaf to select leaf.
[Hub] ->
What is the hostname of the server running your IRCd?
[yongbok.net] ->
What should the default permissions for your configuration files be? (Set this to 0 to disable)
It is strongly recommended that you use 0600 to prevent unwanted reading of the file
[0600] ->
Do you want to support SSL (Secure Sockets Layer) connections?
[No] ->
Do you want to enable IPv6 support?
[No] ->
Do you want to enable ziplinks support?
[No] ->
Do you want to enable remote includes?
[No] ->
Do you want to enable prefixes for chanadmin and chanowner?
This will give +a the & prefix and ~ for +q (just like +o is @)
Supported by the major clients (mIRC, xchat, epic, eggdrop, Klient,
PJIRC, irssi, CGI:IRC, etc.)
This feature should be enabled/disabled network-wide.
[Yes] ->
What listen() backlog value do you wish to use? Some older servers
have problems with more than 5, others work fine with many more.
[10] ->
How far back do you want to keep the nickname history?
[2000] ->
What is the maximum sendq length you wish to have?
[3000000] ->
How many buffer pools would you like?
This number will be multiplied by MAXSENDQLENGTH.
[18] ->
How many file descriptors (or sockets) can the IRCd use?
[1024] ->
Would you like any more parameters to configure?
Write them here:
[]->
[root@yongbok ~]# make
환경 설정 파일 사용자에 맞게 수정 (unrealircd.conf 직접 만들어 줘야함)
[root@yongbok ~]# vi unrealircd.conf
#################################################
# UnrealIRC conf
# admin : ruo91
# server : yongbok.net or irc2.yongbok.net
#################################################
# 필요한 모듈
loadmodule "src/modules/commands.so";
loadmodule "src/modules/cloak.so";
# 도움말, badworlds, 스패머 관련
#include "help.conf";
#include "badwords.channel.conf";
#include "badwords.message.conf";
#include "badwords.quit.conf";
#include "spamfilter.conf";
#
# 서버 설정
me {
name yongbok.net; # 서버이름
info "RabbitNet"; # 서버정보
numeric 0; # 서버를 식별하기 위한 숫자를 설정 (0~254까지)
};
#
# Client 클래스 설정
class clients # 서버에 접속하는 Client에 대한 설정
{
pingfreq 90;
maxclients 5000; # 최대 접속자수
sendq 100000;
};
# 서버 클래스 설정
class servers # 서버에 대한 설정
{
pingfreq 90;
maxclients 10;
sendq 1000000;
connfreq 100;
};
# 오퍼 클래스 설정
class oper { # Operators에 대한 설정
pingfreq 120;
maxclients 10;
sendq 1000000;
};
#
# IRC 서버에 접속 허용할 아이피 설정 부분
allow {
ip *; # 허용할 IP설정 ( * 을 넣으면 모두 허용 )
hostname *; # 허용할 Hostname
class clients; # Class Clients 설정 참조
maxperip 5; # 하나의 IP에서 최대 접속할수 있는 수
};
allow {
ip *; # 허용할 IP설정 ( * 을 넣으면 모두 허용 )
hostname *; # 허용할 Hostname
class oper; # Class oper 설정 참조
maxperip 5; # 하나의 IP에서 최대 접속할수 있는 수
};
#
# IRC 로그 설정
log "ircd.log" {
maxsize 2097152; # ircd.log 의 최대크기
flags { # 아래 각 flags들에 대해 ircd.log 생성
oper; # /oper 명령을 사용할때
kline;
connects; # 접속할때
server-connects; # 서버가 접속할때
kills; # 서버가 kill 할때
errors; # Error
};
};
#
# 관리자 정보
# IRC 에서 /admin 명령어를 치면 서버 관리자의 정보가 나옴
admin {
"Admin: ruo91";
"URL: http://www.yongbok.net";
"Email: ruo91@yongbok.net";
};
#
# 서버 다운과, 재시작
# 오퍼레이터가 /die die-yongbok 하면 서버 다운되고
# /restart restart-yongbok 하면 서버가 재시작 됨
drpass {
die "die-yongbok";
restart "restart-yongbok";
};
#
# 오퍼 설정
oper ruo91 {
class oper;
from {
userhost *@*; # 모든 호스트에서 접속시
};
password "yongbok-oper"; # 오퍼레이터 비밀번호 설정
flags
{
admin;
global;
can_rehash;
can_die;
can_restart;
helpop Oper;
can_wallops;
can_globops;
can_localroute;
can_globalroute;
can_localkill;
can_globalkill;
can_kline;
can_unkline;
can_gkline;
can_localnotice;
can_globalnotice;
can_zline;
can_gkline;
can_gzline;
get_umodew;
get_host;
can_override;
};
};
#
# IRC 서버 포트 (6660 ~ 6669 까지 열림)
listen *:6660;
listen *:6661;
listen *:6662;
listen *:6663;
listen *:6664;
listen *:6665;
listen *:6666;
listen *:6667;
listen *:6668;
listen *:6669;
#
# 가상 호스트 설정
# /vhost ruo91 vhost-yongbok 로 로그인 하면
# 해당 유저 주소는 *!*@yongbok.net 로 변경 됨
vhost {
vhost yongbok.net;
from {
userhost *@*;
};
login ruo91;
password vhost-yongbok;
};
# IRC 네트워크 설정 부분
set {
network-name "RabbitNet"; # 네트워크 이름
default-server "yongbok.net"; # 기본 서버
services-server "service.yongbok.net"; # 서비스 서버 지정
stats-server "Rabbit Net"; # Statu 에 Rabbit Net 보임
help-channel "#help"; # 도움말 채널
hiddenhost-prefix "TR"; # 호스트 숨김 지정
prefix-quit "Quit:"; # 종료 메세지 ruo91 (ruo91@admin.yongbok.net) 종료 (Quit: Quit)
auto-join "#토깽이"; # IRC 서버 접속시 해당 채널로 자동 조인
kline-address "ruo91@192.168.0.100"; # 설정한 호스트로접속은 무조건 IRC 서버에서 접근 금지 시킴 (KILL)
maxchannelsperuser 20; # 사용자가 최대 채널 20개 입장 가능
modes-on-connect "+i"; # IRC 서버 접속시 +i 모드로 변경
modes-on-oper "+xwgs"; # 오퍼레이터 접속 또는 로그인시 +xwgs 모드로 변경
cloak-keys {
a2JO6fh3Q6w4oN3s7;
h47A78thfhHH47;
K547sghuio784S;
# 서로 다른 3개의 Cloak-key 입력
};
# 호스트 설정
hosts {
local "local.yongbok.net"; # 로컬 어드민 접속시 보여줄 호스트 이름
global "gobal.yongbok.net"; # Global 오퍼레이터 접속 또는 로그인시 보여줄 호스트 이름
coadmin "coadmin.yongbok.net"; # Co 관리자 접속 또는 로그인시 보여줄 호스트 이름
admin "yongbok.net"; # 일반 관리자 호스트 이름
servicesadmin "service.yongbok.net"; # 서비스 관리자 호스트 이름
netadmin "net.yongbok.net"; # 네트워크 관리자 호스트 이름
host-on-oper-up yes; # IRC 채널에 접속시 자동 옵 받음 (아무도 없을때)
};
# DNS 서버 설정
dns {
nameserver 127.0.0.1; # 네임 설정 (자체 DNS 서버 있으면 localhost 로 지정하고 없다면 ISP DNS 사용)
timeout 2s; # 2초 안에 서버가 응답을 안하면 timeout
retries 2s; # 2초 후에 재 연결
};
};
#################################
# Service Bot
#################################
alias NickServ { type services; };
alias ChanServ { type services; };
alias OperServ { type services; };
alias HelpServ { type services; };
alias StatServ { type stats; };
#################################
# 서버 연동
#################################
# irc2.yongbok.net 서버로 연동
# irc2 서버에는 link 가 yongbok.net 로 설정됨
#################################
link irc2.yongbok.net
{
username *;
hostname 116.41.167.17; # 연동될 서버 아이피
bind-ip *;
port 6664; # 6664 포트 번호로 연동
hub *.yongbok.net;
password-connect "link-yongbok"; # link-yongbok 비밀번호로 연결
password-receive "link-yongbok";
class servers;
options {
/* Note: You should not use autoconnect when linking services */
autoconnect; # 자동 연결
#ssl;
#zip;
};
};
IRC 서버 시작
[root@yongbok ~]# /usr/local/src/Unreal3.2/src/ircd
_ _ _ ___________ _____ _
| | | | | |_ _| ___ \/ __ \ | |
| | | |_ __ _ __ ___ __ _| | | | | |_/ /| / \/ __| |
| | | | '_ \| '__/ _ \/ _` | | | | | / | | / _` |
| |_| | | | | | | __/ (_| | |_| |_| |\ \ | \__/\ (_| |
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
v3.2.8.1
using TRE 0.7.5 (LGPL)
* Loading IRCd configuration ..
* Configuration loaded without any problems ..
* Loading tunefile..
* Dynamic configuration initialized .. booting IRCd.
---------------------------------------------------------------------
IRC 서버 접속 화면
