InspIRCd is a modular IRCd (an IRC daemon) written entirely from scratch in C++. InspIRCd's website has recently moved to GitHub
Install the package inspircd along with its dependencies
# apt-get install inspircd
Edit the default configuration files in /etc/inspircd/ This directory and the files in it are owned by the user irc. So you may edit them as the irc user or you can change the ownership to the irc user after you are done editing.
For a minimal configuration you need <server> and <bind>, maybe <oper> too.
Backup the default configuration files and modify example configuration to use.
Sample configuration files can be obtained from /usr/share/doc/inspircd/examples/ and the available modules are located in /usr/lib/inspircd/modules/
In your inspircd.conf you need to set the full path of the file for any external file. Example:
... <pid file="/var/run/inspircd.pid"> ... <include file="/etc/inspircd/opers.conf"> // you must edit the opers.conf example due to some duplicate error reported while testing, around line 130 ... <include file="/etc/inspircd/modules.conf"> ... <files motd="/etc/inspircd/inspircd.motd" rules="/etc/inspircd/inspircd.rules">
If you have used hash="md5" for storing password you need to load in /etc/inspircd/modules.conf
GnuTLS sample configuration for /etc/inspircd/inspircd.conf
<bind address="" port="6697" type="clients" ssl="gnutls"> <gnutls cafile="" crlfile="" certfile="/etc/inspircd/cert.pem" keyfile="/etc/inspircd/key.pem" dh_bits="1024">
If you fail to connect using SSL then try to add priority="SECURE192:-VERS-SSL3.0" in /etc/inspircd/inspircd.conf:
<bind address="" port="6697" type="clients" ssl="gnutls"> <gnutls cafile="" crlfile="" certfile="/etc/inspircd/cert.pem" keyfile="/etc/inspircd/key.pem" dh_bits="1024" priority="SECURE192:-VERS-SSL3.0"> <module name="m_ssl_gnutls.so"> <module name="m_spanningtree.so">
Creating a certificate
Generate the certificate and set ownership to user irc.
# openssl req -x509 -nodes -newkey rsa:1024 -keyout key.pem -out cert.pem
or using certtool
# certtool --generate-privkey --outfile key.pem # certtool --generate-self-signed --load-privkey key.pem --outfile cert.pem
Configuration for /etc/inspircd/modules.conf:
<module name="m_ssl_gnutls.so"> <module name="m_spanningtree.so">
Note: we need to load m_ssl_gnutls.so module before m_spanningtree.so.
To test the configuration file, switch to user irc from root.
# su irc
Run the following commands to test it:
$ bash $ cd /etc/inspircd $ mkdir conf // testing search for a conf directory $ mkdir logs $ cp inspircd.conf conf/ $ /usr/sbin/inspircd start //it will start or report any error
If it runs successfully, stop inspircd, copy changes from conf/inspircd.conf to /etc/inspircd.conf and remove conf, logs directories from /etc/inspircd/
After finishing configuration edit /etc/default/inspircd to enable it:
# /etc/init.d/inspircd start
Check the log file in /var/log/inspircd.log.
Check whether inspircd is running:
# netstat -nplt | grep inspircd
Test it with an IRC client.
Example inspircd.conf for LDAP.
<module name="m_ldapauth.so"> <ldapauth baserdn="dc=domain,dc=com" attribute="uid" server="ldap://127.0.0.1" allowpattern="Guest*" killreason="Access denied" searchscope="subtree" binddn="cn=admin,dc=domain,dc=com" bindauth="password" verbose="yes" userfield="yes" >
You may need to set an option similar to Accept invalid SSL certificate in your IRC client, if you get the following error:
'* Connection failed. Error: self signed certificate.? (18)'