####################################################### ## ## ## _____ _ _____ _____ _____ _ ## ## | | |___ ___ ___ ___| | | __ | |_| | ## ## | | | | _| -_| .'| |- -| -| --| . | ## ## |_____|_|_|_| |___|__,|_|_____|__|__|_____|___| ## ## 6.2.0 ## ## UnrealIRCd.conf by DeviL ## ## irc.sisrv.net - support@sisrv.net ## ## ## ## Build on 10.09.2025 ## ####################################################### /* See: https://www.unrealircd.org/docs/Modules * Now let's include some other files as well: */ include "spamfilter.conf"; include "badwords.conf"; include "staff.conf"; include "help/help.conf"; include "aliases/anope.conf"; include "operclass.default.conf"; include "modules.default.conf"; include "modules.optional.conf"; include "snomasks.default.conf"; include "rpc.modules.default.conf"; /* Load the default cloaking module (2021 onwards): */ loadmodule "cloak_sha256"; /* Load view third party modules */ // check the entire list here: https://modules.unrealircd.org/ //loadmodule "third/hidebans"; //loadmodule "third/showwebirc"; /* This is the me { } block which basically says who we are. * It defines our server name, some information line and an unique "sid". * The server id (sid) must start with a digit followed by two digits or * letters. The sid must be unique for your IRC network (each server should * have it's own sid). */ me { name irc.sisrv.net; info "- SiSrv Client Server"; sid 001; }; admin { "SiSrv - support@sisrv.net"; "Order: https://clients.sisrv.net/"; "Support: https://clients.sisrv.net/submitticket.php"; }; /* Clients and servers are put in class { } blocks, we define them here. * Class blocks consist of the following items: * - pingfreq: how often to ping a user / server (in seconds) * - connfreq: how often we try to connect to this server (in seconds) * - sendq: the maximum queue size for a connection * - recvq: maximum receive queue from a connection (flood control) */ /* Client class with good defaults */ class clients { pingfreq 120; maxclients 1000; sendq 100000; recvq 8000; }; /* Special class for IRCOps with higher limits */ class opers { pingfreq 150; maxclients 500; sendq 1M; recvq 8000; }; /* Server class with good defaults */ class servers { pingfreq 90; connfreq 25; /* try to connect every 25 seconds */ maxclients 20; /* max servers */ sendq 5M; }; /* Allow blocks */ allow { mask *; class clients; maxperip 3; }; allow { mask "*@*"; class clients; maxperip 3; ipv6-clone-mask 64; }; allow { mask *@your-IRCd-IP; class clients; maxperip 10; }; /* Deny channel block */ deny channel { channel "#*cc*"; reason "CC channels are forbidden in this network!"; redirect "#SiSrv"; warn on; }; deny channel { channel "#operhelp"; reason "Our network help channel is #SiSrv"; redirect "#SiSrv"; }; deny channel { channel "#*sex*"; reason "Sex channels are forbidden in this network!"; warn on; }; /* Standard IRC ports */ listen { ip your-IRCd-IP; port 6667; options { clientsonly; }; }; listen { ip your-IRCd-IP; port 7000; options { serversonly; }; }; /* Standard IRC SSL/TLS port 6679 */ listen { ip your-IRCd-IP; port 6697; options { tls; clientsonly; }; }; /* * Link blocks allow you to link multiple servers together to form a network. */ link services.sisrv.net { incoming { mask *; }; outgoing { bind-ip *; hostname your-IRCd-IP; port 7000; options; }; password "hgfhgf1B9BdXM5jhknVtRqmZ"; class servers; }; /* U-lines give other servers (even) more power/commands. * If you use services you must add them here. * NEVER put the name of an UnrealIRCd server here!!! */ ulines { services.sisrv.net; } /* Here you can add a password for the IRCOp-only /DIE and /RESTART commands. * This is mainly meant to provide a little protection against accidental * restarts and server kills. */ drpass { restart "restart"; die "die"; } /* Here you can add a password for the IRCOp-only /DIE and /RESTART commands. */ drpass { restart "Restart"; die "Die"; }; tld { mask *@*; motd ircd.motd; rules ircd.rules; opermotd oper.motd; botmotd bot.motd; }; /* The log block defines what should be logged and to what file. * See also https://www.unrealircd.org/docs/Log_block */ log { source { autovhost.AUTOVHOST_INVALID; block_masshighlight.BLOCK_MASSHIGHLIGHT_DETECTED; block_masshighlight.BLOCK_MASSHIGHLIGHT_OPERMSG; commandsno.COMMANDSNO_USAGE; modmanager_irc.MODMANAGER_IRC_USAGE; rtkl.RTKL_USAGE; sacmds.SACMDS_NICK_USAGE; sacmds.SACMDS_UMODE_USAGE; textshun.TEXTSHUN_MATCH; !debug; all; } destination { file "ircd.log" { maxsize 100M; /* optional */ type text; /* either 'text' or 'json' */ }; } } /* Network configuration */ set { network-name "SiSrv"; default-server "irc.sisrv.net"; services-server "services.sisrv.net"; sasl-server "services.sisrv.net"; stats-server "stats.sisrv.net"; help-channel "#SiSrv"; hiddenhost-prefix "SiSrv"; default-ipv6-clone-mask "64"; prefix-quit "SiSrv.net"; cloak-method "host"; cloak-keys { "J1d57gI2hNJd727Xv2QWkb8MCrxUqSWYlRlB71m80x57W620T6N1s166TtX7iiX5V58wItI3NJ0r5KWl"; "BwdT433I43Mm3ED36SFEj7EqV2v42J026h5fUB456LCSg2GQ3cy5qmu8nUwJ7xtBt847868DcxR302vI"; "7VV6XoF4j6W681DVSc80EN46o08Tu7dkc8V8OxlagNx372Vqyo5w7f2B70aDJEIhi57Vao40Nn3jrwB7"; } } /* On *NIX you can use ./unrealircd gencloak to generate 3 random keys. */ /* Server specific configuration */ set { kline-address "support@sisrv.net"; modes-on-connect "+icxvw"; modes-on-join "+ntTHVCf-s 15:1440m [6j#R1,10m#M1,2n#N1,5t#b]:4"; modes-on-oper "+WxwgIspq"; auto-join "#SiSrv"; oper-auto-join "#SiSrv,#sTaff"; snomask-on-oper "+bBcdfkqsSoO"; topic-setter nick-user-host; ban-setter nick-user-host; who-limit 3; nick-length 15; topic-length 340; /* maximum: 360 */ away-length 250; /* maximum: 360 */ quit-length 300; /* maximum: 395 */ options { hide-ulines; allow-part-if-shunned; fail-oper-warn; show-opermotd; }; maxchannelsperuser 10; /* maximum number of channels a user may /JOIN */ /* The minimum time a user must be connected before being allowed to * use a QUIT message. This will hopefully help stop spam. */ anti-spam-quit-message-time 10s; static-part "Leaving..."; static-quit "SiSrv.net"; allow-user-stats "*"; /* Unreal 6.x.x settings */ check-target-nick-bans "yes"; ping-cookie "yes"; watch-away-notification "yes"; hide-ban-reason "no"; topic-setter nick-user-host; ban-setter nick-user-host; topic-length 340; /* maximum: 340 */ away-length 307; /* maximum: 360 */ quit-length 307; /* maximum: 395 */ kick-length 307; /* maximum: 360 */ /* Settings for spam filter */ spamfilter { ban-time 3h; show-message-content-on-hit always; ban-reason "Spamming is not allowed in this network!"; virus-help-channel "#SiSrv"; except { destination { "#SiSrv"; "SiSrv"; } } }; }; set { reputation { /* The database file, this will be in the 'data' subdirectory */ database "reputation.db"; /* Requires UnrealIRCd 6.1.2 or higher */ score-bump-timer-minimum-channel-members 3; } } set { restrict-commands { list { connect-delay 30; exempt-identified yes; exempt-reputation-score 50; } invite { connect-time 120; } channel-message { except { connect-time 10; destination "#SiSrv"; } private-message { connect-time 10; } links { } module { } map { } } } set { history { channel { /* How many lines to playback on join? */ playback-on-join { lines 15; time 1d; } /* How much history to keep. These are the * upper maximums for channel mode +H lines:time */ max-storage-per-channel { /* +r channels have larger maximums: */ registered { lines 50; time 1d; } /* -r channels have less: */ unregistered { lines 50; time 1d; } } } } } set { anti-flood { /* These limits apply to all users, * Only these 4 settings belong here (and only here): */ everyone { connect-flood 3:60; handshake-data-flood { amount 4k; ban-action zline; ban-time 5m; } target-flood { channel-privmsg 45:5; channel-notice 15:5; channel-tagmsg 15:5; private-privmsg 30:5; private-notice 10:5; private-tagmsg 10:5; } } /* These are the "known users" who (if you use default * security group settings) are: registered users * who are identified to services, OR have been connected * to UnrealIRCd for longer than 2 hours. */ known-users { nick-flood 3:60; join-flood 3:90; away-flood 4:120; invite-flood 4:60; knock-flood 4:120; max-concurrent-conversations { users 10; new-user-every 15s; } lag-penalty 750; lag-penalty-bytes 180; } /* Everyone who is not in the known-users group. * These users have lower limits: */ unknown-users { nick-flood 2:60; join-flood 2:90; away-flood 4:120; invite-flood 2:60; knock-flood 2:120; max-concurrent-conversations { users 4; new-user-every 15s; } lag-penalty 1000; lag-penalty-bytes 90; } channel { profile very-strict { flood-mode "[6j#R,10m#M,2n#N1]:4"; } profile strict { flood-mode "[7c#C15,15j#R10,10k#K15,40m#M10,10n#N15]:15"; } profile normal { flood-mode "[7c#C15,30j#R10,10k#K15,40m#M10,10n#N15]:15"; } profile relaxed { flood-mode "[7c#C15,45j#R10,10k#K15,60m#M10,10n#N15]:15"; } profile very-relaxed { flood-mode "[7c#C15,60j#R10,10k#K15,90m#M10,10n#N15]:15"; } /* The following 2 items are new as of UnrealIRCd 6.1.0 */ boot-delay 75; split-delay 75; } } } set { plaintext-policy { user warn; /* must be one of: allow, warn, deny */ oper warn; /* must be one of: allow, warn, deny */ server warn; /* must be one of: allow, warn, deny */ user-message "Insecure connection. Please reconnect using SSL/TLS on port +6697"; }; }; security-group known-users { identified yes; reputation-score 1000; } set { connthrottle { known-users { minimum-reputation-score 24; sasl-bypass yes; } new-users { local-throttle 20:60; global-throttle 30:60; } disabled-when { reputation-gathering 1w; start-delay 3m; } } } set { whois-details { basic { everyone full; } modes { everyone none; self full; oper full; } realhost { everyone none; self full; oper full; } registered-nick { everyone full; } channels { everyone limited; self full; oper full; } server { everyone full; } away { everyone full; } oper { everyone limited; self full; oper full; } secure { everyone full; } bot { everyone full; } services { everyone none; } reputation { everyone none; self full; oper full; } geo { everyone limited; self full; oper full; } certfp { everyone full; } shunned { everyone none; self none; oper full; } account { everyone full; } swhois { everyone full; } idle { everyone none; self full; oper full; } webirc { everyone none; self full; oper full; } /* only if showwebirc module is loaded */ websocket { everyone none; self full; oper full; } /* only if showwebirc module is loaded */ } } /****************** * Ban Nick Block : ******************/ ban nick { mask "?"; reason "Your nickname is too short - Please chose proper nickname"; }; /************************************************ * Kiwi IRC config: https://kiwiirc.com/register ***********************************************/ except ban { mask 107.161.19.109; }; except ban { mask 107.161.19.53; }; except ban { mask 109.169.31.4; }; webirc { mask 107.161.19.109; password yourpasswd; }; webirc { mask 107.161.19.53; password yourpasswd; }; webirc { mask 109.169.31.4; password yourpasswd; }; /*********************** * Except throttle block **********************/ except throttle { mask your-static-IP; }; except throttle { mask your-IRCd-IP; }; except ban { mask *@your-IRCd-IP; mask *@your-static-IP; type all; }; /* * Unrealircd.conf by DeviL (support@sisrv.net). * For any help visite http://www.SiSrv.Net */