Skip to content

Instantly share code, notes, and snippets.

@mdellavo
Last active January 11, 2019 14:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mdellavo/3ddd62ce165a79b4c71b00bb8a39af17 to your computer and use it in GitHub Desktop.
Save mdellavo/3ddd62ce165a79b4c71b00bb8a39af17 to your computer and use it in GitHub Desktop.
Basic setup of an InspIRCd IRC server instance for Ubuntu

Basic InspIRCd Setup

  • SSL only
  • valid Let's Encrypt cert.
  • unbound for upstream dns queries
  • simplified admin config for small team
# install ircd
sudo apt-get install inspircd unbound

# copy lets encrypt to inspircd config dir
sudo cp /etc/letsencrypt/live/$domain/fullchain.pem /etc/inspircd/cert.pem
sudo chown irc:irc /etc/inspircd/cert.pem

sudo cp /etc/letsencrypt/live/$domain/privkey.pem /etc/inspircd/key.pem
sudo chown irc:irc /etc/inspircd/key.pem

# generate cert for linking
openssl req -x509 -nodes -newkey rsa:1024 -keyout key-link.pem -out cert-link.pem

Todo

  • cron for cert renewal
<module name="m_ssl_gnutls.so">
<module name="m_sslinfo.so">
<module name="m_sslmodes.so">
<module name="m_conn_umodes.so">
<module name="m_cloaking.so">
<cloak mode="full"
key=""
prefix="">
<module name="m_md5.so">
<module name="m_stripcolor.so">
<module name="m_userip.so">
<module name="m_samode.so">
<module name="m_sethost.so">
<module name="m_spanningtree.so">
<server name=""
description=""
network="">
<admin name=""
nick=""
email="">
<bind address="0.0.0.0" port="9999" type="clients" ssl="gnutls">
<bind ipaddr="0.0.0.0" port="7000" type="servers" ssl="gnutls" ssl_cert="cert-link">
<ssl_cert name="cert-link" certfile="cert-link.pem" keyfile="key-link.pem">
<link name=""
ipaddr=""
port="7000"
sendpass=""
recvpass=""
ssl="gnutls">
<power diepass="3456" restartpass="7890" pause="2">
<connect allow="*"
timeout="60"
flood="20"
threshold="1"
pingfreq="120"
sendq="262144"
recvq="8192"
localmax="3"
globalmax="3"
modes="+x">
<class name="Shutdown"
commands="DIE RESTART REHASH LOADMODULE UNLOADMODULE RELOAD">
<class name="ServerLink"
commands="CONNECT SQUIT RCONNECT MKPASSWD MKSHA256">
<class name="BanControl"
commands="KILL GLINE KLINE ZLINE QLINE ELINE">
<class name="OperChat"
commands="WALLOPS GLOBOPS SETIDLE SPYLIST SPYNAMES">
<class name="HostCloak"
commands="SETHOST SETIDENT SETNAME CHGHOST CHGIDENT">
<class name="SACommands"
commands="SAJOIN SAPART SANICK SAQUIT SATOPIC SAKICK SAMODE OJOIN">
<type name="NetAdmin"
classes="OperChat BanControl HostCloak Shutdown ServerLink SACommands"
host="*@localhost">
<oper name=""
password=""
host="*@localhost"
type="NetAdmin">
<files motd="/etc/inspircd/inspircd.motd"
rules="/etc/inspircd/inspircd.rules">
<channels users="20"
opers="60">
<dns server="127.0.0.1" timeout="5">
<pid file="/var/run/inspircd.pid">
<options prefixquit="Quit: "
noservices="no"
qaprefixes="no"
deprotectself="no"
deprotectothers="no"
flatlinks="no"
hideulines="no"
syntaxhints="no"
cyclehosts="yes"
ircumsgprefix="no"
announcets="yes"
disablehmac="no"
hostintopic="yes"
quietbursts="yes"
pingwarning="15"
allowhalfop="yes"
exemptchanops=""
defaultmodes="nsStz">
<security hidewhois=""
userstats="Pu"
customversion=""
hidesplits="no"
hidebans="no"
operspywhois="no"
hidemodes="eI"
maxtargets="20">
<performance nouserdns="no"
maxwho="128"
softlimit="1024"
somaxconn="128"
netbuffersize="10240">
<whowas groupsize="10"
maxgroups="100000"
maxkeep="3d">
<timesync enable="no" master="no">
<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">
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment