IRCNow

This is an old revision of the document!


First, install oidentd:

$ doas pkg_add oidentd

Put this inside /etc/rc.local:

if [ -x /usr/local/sbin/oidentd ]; then
        echo -n ' oidentd';     /usr/local/sbin/oidentd -u _identd -g _identd
fi

This will run each time upon bootup. The first time, though, you will want to start it manually:

$ doas sh /etc/rc.local

Inside your /home/znc/home/znc/.znc/configs/znc.conf file, you will want to include the identfile module:

AnonIPLimit = 1000
AuthOnlyViaModule = false
ConfigWriteDelay = 0
ConnectDelay = 5
HideVersion = false
LoadModule = chansaver
LoadModule = lastseen
LoadModule = adminlog
LoadModule = identfile
LoadModule = webadmin
LoadModule = certauth
MaxBufferSize = 10000
ProtectWebSessions = true
SSLCertFile = /home/znc/.znc/bnc3.ircnow.org.fullchain.pem
SSLKeyFile = /home/znc/.znc/bnc3.ircnow.org.key
SSLDHParamFile = /home/znc/.znc/dhparam.pem
ServerThrottle = 30
Version = 1.7.4

<Listener listener0>
        AllowIRC = true
        AllowWeb = false
        Host = 209.141.39.184
        IPv4 = true
        IPv6 = false
        Port = 6697
        SSL = true
        URIPrefix = /
</Listener>

<Listener listener1>
        AllowIRC = true
        AllowWeb = false
        Host = 2605:6400:0020:0434::
        IPv4 = false
        IPv6 = true
        Port = 6697
        SSL = true
        URIPrefix = /
</Listener>

Put this inside /etc/oidentd.conf:

user "znc" {
    default {
        allow spoof
        allow spoof_all
    }
}

If this file doesn't already exist:

# touch /home/znc/home/znc/.oidentd.conf
# ln -s /home/znc/home/znc/.oidentd.conf /home/znc/.oidentd.conf
# chown znc:znc /home/znc/home/znc/.oidentd.conf /home/znc/.oidentd.conf

You want to connect to znc and set the ident to match the account's username (to prevent users from being able to change their ident response). This allows channel ops to ban individual users without banning the entire znc's IP address:

/msg *identfile setformat global { reply "%user%" }