IRCNow

First, install oidentd:

$ doas pkg_add oidentd

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

Add this to /etc/pf.conf:

pass in proto tcp to port {auth} #ident
$ doas pfctl -f /etc/pf.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%" }

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

You will probably also want to restart znc. You can do this as follows:

$ doas pkill -INT znc
$ doas su
# export HOME=/home/znc && chroot -u znc -g znc /home/znc znc > /var/log/znc.log 2>&1 &