2021-07-15 02:54:14 +00:00
|
|
|
|
|
|
|
/* Extensions */
|
|
|
|
loadmodule "extensions/chm_nonotice";
|
|
|
|
loadmodule "extensions/chm_operpeace";
|
|
|
|
loadmodule "extensions/chm_operonly";
|
2022-03-11 19:00:30 +00:00
|
|
|
#loadmodule "extensions/chm_regmsg"; # seems to force registration on plaintext users even if +R not set
|
2022-01-21 01:04:57 +00:00
|
|
|
loadmodule "extensions/chm_sslonly";
|
2021-07-15 02:54:14 +00:00
|
|
|
loadmodule "extensions/extb_account";
|
|
|
|
loadmodule "extensions/extb_canjoin";
|
|
|
|
loadmodule "extensions/extb_channel";
|
|
|
|
loadmodule "extensions/extb_combi";
|
|
|
|
loadmodule "extensions/extb_extgecos";
|
|
|
|
loadmodule "extensions/extb_hostmask";
|
|
|
|
loadmodule "extensions/extb_oper";
|
|
|
|
loadmodule "extensions/extb_realname";
|
|
|
|
loadmodule "extensions/extb_server";
|
|
|
|
loadmodule "extensions/extb_ssl";
|
|
|
|
loadmodule "extensions/extb_usermode";
|
|
|
|
loadmodule "extensions/helpops";
|
|
|
|
loadmodule "extensions/hurt";
|
|
|
|
loadmodule "extensions/m_extendchans";
|
|
|
|
loadmodule "extensions/m_findforwards";
|
2022-01-21 01:04:57 +00:00
|
|
|
loadmodule "extensions/m_sendbans";
|
2021-07-15 02:54:14 +00:00
|
|
|
loadmodule "extensions/m_identify";
|
|
|
|
loadmodule "extensions/m_locops";
|
2022-01-21 01:04:57 +00:00
|
|
|
loadmodule "extensions/invex_regonly"; # remove if solanum#207 is resolved
|
2021-07-15 02:54:14 +00:00
|
|
|
loadmodule "extensions/sno_farconnect";
|
|
|
|
loadmodule "extensions/sno_globalnickchange";
|
|
|
|
loadmodule "extensions/sno_globaloper";
|
|
|
|
loadmodule "extensions/override";
|
|
|
|
loadmodule "extensions/override_kick_immunity";
|
2021-08-31 23:19:48 +00:00
|
|
|
loadmodule "extensions/sasl_usercloak";
|
2022-01-21 01:04:57 +00:00
|
|
|
loadmodule "extensions/hide_uncommon_channels";
|
|
|
|
loadmodule "extensions/cap_oper";
|
|
|
|
loadmodule "extensions/cap_realhost";
|
2021-07-15 02:54:14 +00:00
|
|
|
|
|
|
|
serverinfo {
|
|
|
|
name = "{{ inventory_hostname }}";
|
2021-07-15 14:14:29 +00:00
|
|
|
sid = "{{ sid }}";
|
2021-07-15 02:54:14 +00:00
|
|
|
description = "{% if description is defined %}{{ description }}{% else %}solanum fox server{% endif %}";
|
|
|
|
network_name = "vulpineawoo";
|
|
|
|
|
|
|
|
{% if ssl_exists.stat.exists %}
|
|
|
|
ssl_cert = "etc/ssl.pem";
|
|
|
|
ssl_private_key = "etc/ssl.key";
|
|
|
|
ssl_dh_params = "etc/dh.pem";
|
|
|
|
ssld_count = 1;
|
|
|
|
|
|
|
|
{% endif %}
|
|
|
|
default_max_clients = 1024;
|
|
|
|
nicklen = 30;
|
|
|
|
};
|
|
|
|
|
|
|
|
admin {
|
|
|
|
name = "xfnw";
|
|
|
|
description = "friendly vulpine, requires payment in hugs.";
|
2022-01-21 01:04:57 +00:00
|
|
|
email = "services@owen.bellz.org";
|
2021-07-15 02:54:14 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
{% include 'class.j2' %}
|
|
|
|
|
|
|
|
listen {
|
|
|
|
defer_accept = yes;
|
|
|
|
port = 6667;
|
|
|
|
{% if ssl_exists.stat.exists %}
|
|
|
|
sslport = 6697;
|
|
|
|
wsock = yes;
|
|
|
|
sslport = 7001;
|
|
|
|
{% endif %}
|
|
|
|
};
|
|
|
|
|
|
|
|
{% include 'auth.j2' %}
|
|
|
|
|
|
|
|
privset "wombat" {
|
2022-01-23 23:35:45 +00:00
|
|
|
privs = oper:general, oper:kline, oper:unkline, oper:xline, oper:kill, oper:testline,
|
|
|
|
oper:privs, oper:resv, oper:cmodes, oper:mass_notice, oper:remoteban, usermode:helpops,
|
|
|
|
oper:message, oper:operwall, auspex:oper, auspex:hostname, auspex:umodes,
|
|
|
|
auspex:cmodes, oper:receive_immunity, oper:wallops;
|
2021-07-15 02:54:14 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
privset "dingo" {
|
|
|
|
extends = "wombat";
|
2022-01-23 23:35:45 +00:00
|
|
|
privs = oper:override, oper:ojoin,
|
|
|
|
oper:dehelper, usermode:servnotice;
|
2021-07-15 02:54:14 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
privset "shark" {
|
|
|
|
extends = "dingo";
|
2022-01-23 23:35:45 +00:00
|
|
|
privs = snomask:nick_changes;
|
2021-07-15 02:54:14 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
privset "bandicoot" {
|
|
|
|
extends = "dingo";
|
|
|
|
privs = oper:routing;
|
|
|
|
};
|
|
|
|
|
|
|
|
privset "jellyfish" {
|
|
|
|
extends = "bandicoot";
|
|
|
|
privs = oper:admin, oper:die, oper:rehash, oper:spy, oper:grant;
|
|
|
|
};
|
|
|
|
|
|
|
|
{% include 'operator.j2' %}
|
|
|
|
|
|
|
|
{% include 'connect.j2' %}
|
|
|
|
|
|
|
|
service {
|
|
|
|
name = "services.";
|
|
|
|
};
|
|
|
|
|
|
|
|
cluster {
|
|
|
|
name = "*";
|
|
|
|
flags = kline, tkline, unkline, xline, txline, unxline, resv, tresv, unresv, all;
|
|
|
|
};
|
|
|
|
|
|
|
|
channel {
|
|
|
|
use_invex = yes;
|
|
|
|
use_except = yes;
|
|
|
|
use_forward = yes;
|
|
|
|
use_knock = yes;
|
|
|
|
knock_delay = 5 minutes;
|
|
|
|
knock_delay_channel = 1 minute;
|
2022-03-05 20:25:48 +00:00
|
|
|
max_chans_per_user = 200;
|
|
|
|
max_chans_per_user_large = 500;
|
2021-07-15 02:54:14 +00:00
|
|
|
max_bans = 100;
|
|
|
|
max_bans_large = 500;
|
|
|
|
default_split_user_count = 0;
|
|
|
|
default_split_server_count = 0;
|
|
|
|
no_create_on_split = no;
|
|
|
|
no_join_on_split = no;
|
|
|
|
burst_topicwho = yes;
|
|
|
|
kick_on_split_riding = no;
|
|
|
|
only_ascii_channels = no;
|
|
|
|
resv_forcepart = yes;
|
|
|
|
channel_target_change = yes;
|
2022-03-05 20:25:48 +00:00
|
|
|
disable_local_channels = yes;
|
|
|
|
autochanmodes = "+ntC";
|
2021-07-15 02:54:14 +00:00
|
|
|
displayed_usercount = 3;
|
|
|
|
strip_topic_colors = no;
|
|
|
|
opmod_send_statusmsg = no;
|
|
|
|
};
|
|
|
|
|
|
|
|
serverhide {
|
|
|
|
flatten_links = yes;
|
|
|
|
links_delay = 5 minutes;
|
|
|
|
hidden = no;
|
|
|
|
disable_hidden = no;
|
|
|
|
};
|
|
|
|
|
|
|
|
{% include 'dnsbl.j2' %}
|
|
|
|
|
|
|
|
alias "NickServ" {
|
|
|
|
target = "NickServ";
|
|
|
|
};
|
|
|
|
|
|
|
|
alias "ChanServ" {
|
|
|
|
target = "ChanServ";
|
|
|
|
};
|
|
|
|
|
|
|
|
alias "OperServ" {
|
|
|
|
target = "OperServ";
|
|
|
|
};
|
|
|
|
|
|
|
|
alias "HostServ" {
|
|
|
|
target = "HostServ";
|
|
|
|
};
|
|
|
|
|
|
|
|
alias "MemoServ" {
|
|
|
|
target = "MemoServ";
|
|
|
|
};
|
|
|
|
|
|
|
|
alias "BotServ" {
|
|
|
|
target = "BotServ";
|
|
|
|
};
|
|
|
|
|
|
|
|
alias "CatServ" {
|
|
|
|
target = "CatServ";
|
|
|
|
};
|
|
|
|
|
|
|
|
alias "ALIS" {
|
|
|
|
target = "ALIS";
|
|
|
|
};
|
|
|
|
|
|
|
|
alias "NS" {
|
|
|
|
target = "NickServ";
|
|
|
|
};
|
|
|
|
|
|
|
|
alias "CS" {
|
|
|
|
target = "ChanServ";
|
|
|
|
};
|
|
|
|
|
|
|
|
alias "OS" {
|
|
|
|
target = "OperServ";
|
|
|
|
};
|
|
|
|
|
|
|
|
alias "HS" {
|
|
|
|
target = "HostServ";
|
|
|
|
};
|
|
|
|
|
|
|
|
alias "MS" {
|
|
|
|
target = "MemoServ";
|
|
|
|
};
|
|
|
|
|
|
|
|
alias "BS" {
|
|
|
|
target = "BotServ";
|
|
|
|
};
|
|
|
|
|
|
|
|
general {
|
|
|
|
hide_error_messages = opers;
|
|
|
|
hide_spoof_ips = yes;
|
2022-01-21 01:04:57 +00:00
|
|
|
default_umodes = "+i";
|
2021-07-15 02:54:14 +00:00
|
|
|
|
|
|
|
default_operstring = "is an IRC Operator";
|
|
|
|
default_adminstring = "is a Server Administrator";
|
|
|
|
servicestring = "is a Network Service";
|
|
|
|
|
|
|
|
sasl_service = "SaslServ";
|
|
|
|
disable_fake_channels = no;
|
|
|
|
tkline_expire_notices = no;
|
|
|
|
default_floodcount = 10;
|
|
|
|
failed_oper_notice = yes;
|
|
|
|
dots_in_ident = 2;
|
|
|
|
min_nonwildcard = 4;
|
|
|
|
min_nonwildcard_simple = 3;
|
|
|
|
max_accept = 100;
|
|
|
|
max_monitor = 100;
|
|
|
|
anti_nick_flood = yes;
|
|
|
|
max_nick_time = 20 seconds;
|
|
|
|
max_nick_changes = 5;
|
|
|
|
anti_spam_exit_message_time = 5 minutes;
|
|
|
|
ts_warn_delta = 30 seconds;
|
|
|
|
ts_max_delta = 5 minutes;
|
|
|
|
client_exit = yes;
|
|
|
|
collision_fnc = yes;
|
|
|
|
resv_fnc = yes;
|
|
|
|
global_snotices = yes;
|
|
|
|
dline_with_reason = yes;
|
|
|
|
kline_with_reason = yes;
|
|
|
|
hide_tkdline_duration = no;
|
|
|
|
kline_reason = "K-Lined";
|
|
|
|
identify_service = "NickServ@services.";
|
|
|
|
identify_command = "IDENTIFY";
|
|
|
|
non_redundant_klines = yes;
|
|
|
|
warn_no_nline = yes;
|
|
|
|
use_propagated_bans = yes;
|
|
|
|
stats_e_disabled = no;
|
|
|
|
stats_c_oper_only = no;
|
|
|
|
stats_y_oper_only = no;
|
|
|
|
stats_o_oper_only = yes;
|
|
|
|
stats_P_oper_only = no;
|
|
|
|
stats_i_oper_only = masked;
|
|
|
|
stats_k_oper_only = masked;
|
|
|
|
map_oper_only = no;
|
|
|
|
operspy_admin_only = no;
|
|
|
|
operspy_dont_care_user_info = no;
|
|
|
|
caller_id_wait = 1 minute;
|
|
|
|
pace_wait_simple = 1 second;
|
|
|
|
pace_wait = 10 seconds;
|
|
|
|
short_motd = no;
|
|
|
|
ping_cookie = no;
|
|
|
|
connect_timeout = 30 seconds;
|
|
|
|
default_ident_timeout = 5;
|
|
|
|
disable_auth = no;
|
|
|
|
no_oper_flood = yes;
|
|
|
|
max_targets = 4;
|
2022-03-07 20:44:38 +00:00
|
|
|
client_flood_max_lines = 15;
|
2021-07-15 02:54:14 +00:00
|
|
|
post_registration_delay = 0 seconds;
|
|
|
|
use_whois_actually = no;
|
|
|
|
oper_only_umodes = operwall, locops, servnotice;
|
|
|
|
oper_umodes = locops, servnotice, operwall, wallop;
|
|
|
|
oper_snomask = "+s";
|
|
|
|
burst_away = yes;
|
|
|
|
nick_delay = 0 seconds; # 15 minutes if you want to enable this
|
2021-08-14 02:16:26 +00:00
|
|
|
reject_ban_time = 10 minutes;
|
|
|
|
reject_after_count = 2;
|
|
|
|
reject_duration = 60 minutes;
|
2021-07-15 02:54:14 +00:00
|
|
|
throttle_duration = 60;
|
|
|
|
throttle_count = 4;
|
|
|
|
max_ratelimit_tokens = 30;
|
|
|
|
away_interval = 30;
|
|
|
|
certfp_method = sha512;
|
|
|
|
hide_opers_in_whois = no;
|
|
|
|
tls_ciphers_oper_only = no;
|
2022-03-20 17:08:29 +00:00
|
|
|
oper_secure_only = {% if ssl_exists.stat.exists %}yes{% else %}no{% endif %};
|
2021-07-15 02:54:14 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
modules {
|
|
|
|
path = "modules";
|
|
|
|
path = "modules/autoload";
|
|
|
|
};
|
|
|
|
|