InspIRCd是一款现代化,快速的IRC服务器,也是少数几个IRC服务器应用程序之一,可提供高性能和稳定性,并以C ++编写。 它是在您的服务器上构建自己的IRC的最佳解决方案之一。 它支持两个加密库,OpenSSL和gnutls,并支持许多服务,如anope主题。 InspIRCd基于提供许多模块的模块化IRCd。 如果要在InspIRCd上启用模块,则只需编辑modules.conf文件,并为模块添加新行。
在本教程中,我将引导您从CentOS 7服务器上的源安装InspIRCd。 然后,我们将将InspIRCd与anope服务集成,并在其上启用gnutls加密。
先决条件
- CentOS 7服务器 - 64位。
- 根权限
第1步 - 安装软件包
在这一步中,我们将安装一些RPM软件包。 这些软件包用于模块管理器(基于perl)和InspIRCd安装的软件包。 登录到服务器并使用sudo命令切换到root:
ssh inspircd@192.168.1.102
sudo su
安装Perl扩展,以便稍后使用模块管理器。
yum -y install perl perl-libwww-perl perl-Crypt-SSLeay perl-LWP-Protocol-https
然后为InspIRCd安装安装gnutls和gcc编译器:
yum -y install gcc-c++ gnutls gnutls-devel gnutls-utils pkgconfig wget
第2步 - 添加新的系统用户
我们希望以irc用户身份运行InspIRCd ,因此我们需要在系统上创建一个新帐户。 使用useradd命令添加新用户:
useradd -m -s /bin/bash irc
-m =为用户创建一个主文件夹。
-s =定义shell - 我们使用/ bin / bash shell。
第3步 - 安装InspIRCd
从root用户切换到新帐号irc:
su - irc
现在我们在irc用户的主目录中,使用wget命令下载inpircd源代码,并解压缩:
wget https://github.com/inspircd/inspircd/archive/v2.0.21.tar.gz
tar -xzvf v2.0.21.tar.gz
转到inspircd目录:
cd inspircd-2.0.21/
启用对inspIRCd的gnutls支持:
./configure --enable-extras=m_ssl_gnutls.cpp
然后安装它,我们将在主目录“”上安装InspIRCd :
./configure
您将被要求安装目录,我们将使用“/ home / irc / inspircd /”作为安装目录。 键入目录的完整路径,然后按y或输入。
现在运行:
make
make install
等待安装过程完成,然后删除inspircd-2目录:
cd ~/
rm -rf inspircd-2.0.21/
第4步 - 配置InspIRCd
如果所有安装完成,请转到inspircd目录。
cd inspircd/
为证书文件创建一个新的“cert”目录,并使用certtool命令创建新证书 - 或者您可以使用openssl生成证书文件。
mkdir cert; cd cert
certtool --generate-privkey --outfile key.pem
certtool --generate-self-signed --load-privkey key.pem --outfile cert.pem
现在我们在cert目录中有一个证书和密钥文件:
cert.pem
key.pem
接下来,转到conf目录并创建一个新的配置文件inspircd.conf:
cd ~/inspircd/conf/
vi inspircd.conf
粘贴以下配置:
<config format="xml">
<define name="bindip" value="1.2.2.3">
<define name="localips" value="&bindip;/24">
####### SERVER CONFIGURATION #######
<server
name="chat.inspircd.co"
description="Welcome to inspird World"
id="97K"
network="chat.inspircd.co">
####### ADMIN INFO #######
<admin
name="jun naruse"
nick="naruse"
email="naruse@inspircd.co">
####### PORT CONFIGURATION #######
<bind
address=""
port="6697"
type="clients"
ssl="gnutls">
<module name="m_ssl_gnutls.so">
<gnutls certfile="/home/irc/inspircd/cert/cert.pem" keyfile="/home/irc/inspircd/cert/key.pem" priority="NORMAL:-MD5" hash="sha1">
<bind
address=""
port="7000"
type="servers">
####### DIE and RESTART CONFIGRATION #######
<power
diepass="mypassword"
restartpass="mypassword">
####### CONNECT CONFIGURATION #######
<connect deny="3ffe::0/32" reason="The 6bone address space is deprecated">
<connect
name="main"
allow="*"
#maxchans="30"
timeout="10"
pingfreq="120"
hardsendq="1M"
softsendq="8192"
recvq="8K"
threshold="10"
commandrate="1000"
fakelag="on"
localmax="10"
globalmax="10"
useident="no"
limit="5000"
modes="+x">
####### CIDR CONFIGURATION #######
<cidr
ipv4clone="32"
ipv6clone="128">
####### INCLUDE FILE #######
<include file="conf/opers.conf">
#<include file="conf/examples/links.conf.example">
####### MISCELLANEOUS CONFIGURATION #######
<files motd="conf/motd.txt" rules="conf/rules.txt">
####### MAXIMUM CHANNELS #######
<channels
users="20"
opers="60">
####### PID FILE #######
<pid file="/home/irc/inspircd/inspircd.pid">
####### BANLIST LIMITS #######
<banlist chan="#largechan" limit="128">
<banlist chan="*" limit="69">
####### SERVER OPTIONS #######
<options
prefixquit="Quit: "
suffixquit=""
prefixpart="""
suffixpart="""
syntaxhints="no"
cyclehosts="yes"
cyclehostsfromuser="no"
ircumsgprefix="no"
announcets="yes"
allowmismatch="no"
defaultbind="auto"
hostintopic="yes"
pingwarning="15"
serverpingfreq="60"
defaultmodes="nt"
moronbanner="You're banned! Email yone@natsu.com with the ERROR line below for help."
exemptchanops="nonick:v flood:o"
invitebypassmodes="yes"
nosnoticestack="no"
welcomenotice="yes">
####### PERFORMANCE CONFIGURATION #######
<performance
netbuffersize="10240"
somaxconn="128"
limitsomaxconn="true"
softlimit="12800"
quietbursts="yes"
nouserdns="no">
####### SECURITY CONFIGURATION #######
<security
announceinvites="dynamic"
hidemodes="eI"
hideulines="no"
flatlinks="no"
hidewhois=""
hidebans="no"
hidekills=""
hidesplits="no"
maxtargets="20"
customversion=""
operspywhois="no"
restrictbannedusers="yes"
genericoper="no"
userstats="Pu">
####### LIMITS CONFIGURATION #######
<limits
maxnick="31"
maxchan="64"
maxmodes="20"
maxident="11"
maxquit="255"
maxtopic="307"
maxkick="255"
maxgecos="128"
maxaway="200">
####### LOGGING #######
<log method="file" type="* -USERINPUT -USEROUTPUT" level="default" target="logs/ircd.log">
####### WHOWAS OPTIONS #######
<whowas
groupsize="10"
maxgroups="100000"
maxkeep="3d">
####### BAN OPTIONS #######
<badip
ipmask="192.0.2.69"
reason="No porn here thanks.">
<badnick
nick="ChanServ"
reason="Reserved For Services">
<badnick nick="NickServ" reason="Reserved For Services">
<badnick nick="OperServ" reason="Reserved For Services">
<badnick nick="MemoServ" reason="Reserved For Services">
<badhost
host="*@banneduser.example.net">
<badhost host="root@*" reason="Don't IRC as root!">
<badhost host="*@198.51.100.0/24" reason="This subnet is bad.">
# exception: Hosts that are exempt from [kgz]lines.
<exception
host="*@ircop.example.com"
reason="Oper's hostname">
####### INSANE BAN OPTIONS #######
<insane
hostmasks="no"
ipmasks="no"
nickmasks="no"
trigger="95.5">
编辑服务器的服务器配置块:
name :服务器的主机名或FQDN
描述 :您的服务器描述
id :服务器的SID - 2个字母
网络 :您的网络的名称
编辑管理员信息。
名字 :真名
nick :nick用于IRC网络
电子邮件 :admin的电子邮件
编辑端口和ssl配置的绑定地址。
地址 :服务器IP地址 - 不是主机名
端口 :端口使用
键入 :客户端或服务器类型
ssl :加密使用 - openssl或gnutls
编辑死机并重启配置。
此配置用于设置密码以重新启动或关闭可信赖的密码。
diepass =“mypassword”
restartpass =“mypassword”
保存文件并退出。
现在为操作员配置创建新的文件opers.conf。
vi opers.conf
粘贴下面的操作配置:
<class
name="Shutdown"
commands="DIE RESTART REHASH LOADMODULE UNLOADMODULE RELOADMODULE GLOADMODULE GUNLOADMODULE GRELOADMODULE"
usermodes="*"
chanmodes="*">
<class name="SACommands" commands="SAJOIN SAPART SANICK SAQUIT SATOPIC SAKICK SAMODE OJOIN">
<class name="ServerLink" commands="CONNECT SQUIT RCONNECT RSQUIT MKPASSWD ALLTIME SWHOIS JUMPSERVER LOCKSERV UNLOCKSERV" usermodes="*" chanmodes="*" privs="servers/auspex">
<class name="BanControl" commands="KILL GLINE KLINE ZLINE QLINE ELINE TLINE RLINE CHECK NICKLOCK NICKUNLOCK SHUN CLONES CBAN CLOSE" usermodes="*" chanmodes="*">
<class name="OperChat" commands="WALLOPS GLOBOPS" usermodes="*" chanmodes="*" privs="users/mass-message">
<class name="HostCloak" commands="SETHOST SETIDENT SETIDLE CHGNAME CHGHOST CHGIDENT" usermodes="*" chanmodes="*" privs="users/auspex">
<type
name="NetAdmin"
classes="SACommands OperChat BanControl HostCloak Shutdown ServerLink"
vhost="netadmin.inspircd.co"
modes="+s +cCqQ">
<type name="GlobalOp" classes="SACommands OperChat BanControl HostCloak ServerLink" vhost="ircop.inspircd.co">
<type name="Helper" classes="HostCloak" vhost="helper.inspircd.co">
####### OPERATOR CONFIGURATION #######
<oper
name="naruse"
password="mypassword"
host="brain@dialup15.isp.test.com *@localhost *@example.com *@*"
type="NetAdmin">
保存文件并退出。
Eedit操作配置如下:
名称 :网上使用的名称
密码 :获取操作密码
主机 :定义您的主机,如果要让所有主机或IP都可以获得操作访问权限,请定义为“* @ *”。
type :运算符的类型 - NetAdmin,Helper,GlobalOp。
接下来,从examples目录复制motd和rules文件的样本。
cp examples/motd.txt.example motd.txt
cp examples/rules.txt.example rules.txt
然后创建inspircd配置,您必须为服务配置创建一个新的文件links.conf。 我们将使用anope服务。
vi links.conf
粘贴配置如下:
<link name="services.inspircd.co"
ipaddr="127.0.0.1"
port="7000"
sid="3AX"
allowmask="127.0.0.0/8"
sendpass="iamalive"
recvpass="iamalive">
<uline server="services.inspircd.co" silent="yes">
保存并退出。
然后从examples目录复制模块配置。
cp examples/modules.conf.example modules.conf
编辑modules.conf并取消注释以下模块:
m_alias - line 65
m_chghost.so - line 463
m_customprefix - line 628
m_globops - line 814
m_hidechans - line 842
m_services_account - line 1630
m_svshold.so - line 1795
m_spanningtree - line 1902
保存并退出。
最后,回到inspircd目录,然后启动inspircd。
cd ~/inspircd/
./inspircd start
如果要检查inspircd端口,可以使用下面的netstat命令:
netstat -plntu
您可以看到端口6697和7000打开。
Inspircd已成功安装。
第5步 - 安装和配置Anope服务
从irc用户,通过键入“退出”或按ctrl + d切换到根,然后安装cmake。 需要安装anope
exit
yum -y install cmake
现在回到irc用户下载anope:
su - irc
wget https://github.com/anope/anope/archive/2.0.3.tar.gz
提取anope并编译它。
tar -xzvf 2.0.3.tar.gz
cd anope-2.0.3/
编译安装anope服务:
./Config
系统会询问您是否安装目录,只需按Enter键即可。
转到构建目录并安装它:
cd build/
make
make install
这将需要一些时间,不要中断这个过程。
当anope安装完成后,得到主目录,删除anope并转到services目录。
cd ~/
rm -rf anope-2.0.3/
cd services/
服务配置在conf目录中可用,因此请转到该目录,并将example.conf复制到services.conf。
cd conf/
cp example.conf services.conf
使用vi编辑配置文件:
vi services.conf
行92和93,定义您的IRC服务,它必须与inspircd.configuration匹配。
name = "services.inspircd.co"
value = "services.inspircd.co"
第195行,配置到IRC服务器的链接。
host = "127.0.0.1"
ssl = no
port = 7000
password = "iamalive"
第198行服务器信息:
name = "services.inspircd.co"
现在263行,定义使用的ircd软件:
name = "inspircd20"
行293,给出网络信息名称:
name = "services.inspircd.co"
保存并退出。
当所有这些都完成后,在bin目录中启动anope服务:
cd ~/services/bin/
./anoperc start
如果您看到这样的结果,您已经成功地为inspircd配置了anope服务。
第5步 - 测试
为了确保一切正常运行,我们现在应该测试我们创建的IRC服务器。
我们在IP上运行IRC 192.168.1.102和6697上的IRC SSL端口。
打开一个IRC客户端,如xchat,hexchat或irssi,并连接到服务器。
在本教程中,我们将使用hexchat。
连接到服务器。
/server -ssl 192.168.1.104 6697
将用户设置为netadmin或operator。
/oper naruse mypassword
测试anope服务。
/msg NickServ HELP
InspIRCd和Anope已成功安装和配置。
结论
InspIRCd是以C ++编写的最佳IRC服务器之一。 它提供高性能和稳定性,是可定制的,并有许多现成的模块可用。 Anope提供灵活的IRC服务,易于使用和配置。