atheme works

This commit is contained in:
root 2025-01-05 12:51:24 +00:00
parent 757ee1e161
commit 91d3b05c1f
6 changed files with 103 additions and 181 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
include.conf include.conf
config.env config.env
atheme.db

View File

@ -20,7 +20,7 @@ WORKDIR /tmp/atheme
RUN git submodule update --init --recursive RUN git submodule update --init --recursive
RUN ./configure --prefix=/usr/local --enable-large-net --enable-contrib --enable-legacy-pwcrypto RUN ./configure --prefix=/usr/local --enable-large-net --enable-contrib --enable-legacy-pwcrypto --enable-contrib
RUN make -j$(nproc) RUN make -j$(nproc)
@ -50,4 +50,4 @@ VOLUME /etc/ssl/atheme
VOLUME /var/log/atheme VOLUME /var/log/atheme
ENTRYPOINT ["/usr/local/bin/atheme-services", "-p", "/tmp/atheme.pid", "-n", "-d"] ENTRYPOINT ["/usr/local/bin/atheme-services", "-p", "/tmp/atheme.pid", "-n"]

View File

@ -1,31 +1,29 @@
loadmodule "/usr/local/modules/security/cmdperm";
loadmodule "/usr/local/modules/protocol/inspircd"; loadmodule "/usr/local/modules/protocol/inspircd";
include "/usr/local/etc/include.conf";
#loadmodule "/usr/local/modules/security/cmdperm";
# loadmodule "/usr/local/modules/protocol/mixin_nohalfops"; # loadmodule "/usr/local/modules/protocol/mixin_nohalfops";
# loadmodule "/usr/local/modules/protocol/mixin_noholdnick"; # loadmodule "/usr/local/modules/protocol/mixin_noholdnick";
# loadmodule "/usr/local/modules/protocol/mixin_noprotect"; # loadmodule "/usr/local/modules/protocol/mixin_noprotect";
# loadmodule "/usr/local/modules/protocol/mixin_noowner"; # loadmodule "/usr/local/modules/protocol/mixin_noowner";
loadmodule "/usr/local/modules/backend/opensex"; loadmodule "/usr/local/modules/backend/opensex";
# loadmodule "/usr/local/modules/crypto/argon2"; # loadmodule "/usr/local/modules/crypto/argon2";
#loadmodule "/usr/local/modules/crypto/scrypt"; loadmodule "/usr/local/modules/crypto/scrypt";
# loadmodule "/usr/local/modules/crypto/pbkdf2v2"; # loadmodule "/usr/local/modules/crypto/pbkdf2v2";
#loadmodule "/usr/local/modules/crypto/bcrypt"; loadmodule "/usr/local/modules/crypto/bcrypt";
# loadmodule "/usr/local/modules/crypto/pbkdf2"; # loadmodule "/usr/local/modules/crypto/pbkdf2";
# loadmodule "/usr/local/modules/crypto/crypt3-sha2-512"; # loadmodule "/usr/local/modules/crypto/crypt3-sha2-512";
# loadmodule "/usr/local/modules/crypto/crypt3-sha2-256"; # loadmodule "/usr/local/modules/crypto/crypt3-sha2-256";
# loadmodule "/usr/local/modules/crypto/crypt3-md5"; # loadmodule "/usr/local/modules/crypto/crypt3-md5";
#loadmodule "/usr/local/modules/crypto/rawsha2-512"; loadmodule "/usr/local/modules/crypto/rawsha2-512";
#loadmodule "/usr/local/modules/crypto/rawsha2-256"; loadmodule "/usr/local/modules/crypto/rawsha2-256";
#loadmodule "/usr/local/modules/crypto/anope-enc-sha256"; loadmodule "/usr/local/modules/crypto/anope-enc-sha256";
#loadmodule "/usr/local/modules/crypto/rawsha1"; loadmodule "/usr/local/modules/crypto/rawsha1";
#loadmodule "/usr/local/modules/crypto/rawmd5"; loadmodule "/usr/local/modules/crypto/rawmd5";
#loadmodule "/usr/local/modules/crypto/ircservices"; loadmodule "/usr/local/modules/crypto/ircservices";
# loadmodule "/usr/local/modules/crypto/crypt3-des"; # loadmodule "/usr/local/modules/crypto/crypt3-des";
#loadmodule "/usr/local/modules/crypto/base64"; loadmodule "/usr/local/modules/crypto/base64";
#loadmodule "/usr/local/modules/auth/ldap"; #loadmodule "/usr/local/modules/auth/ldap";
loadmodule "/usr/local/modules/nickserv/main"; loadmodule "/usr/local/modules/nickserv/main";
#loadmodule "/usr/local/modules/nickserv/access"; loadmodule "/usr/local/modules/nickserv/access";
loadmodule "/usr/local/modules/nickserv/badmail"; loadmodule "/usr/local/modules/nickserv/badmail";
loadmodule "/usr/local/modules/nickserv/cert"; loadmodule "/usr/local/modules/nickserv/cert";
loadmodule "/usr/local/modules/nickserv/drop"; loadmodule "/usr/local/modules/nickserv/drop";
@ -56,14 +54,14 @@ loadmodule "/usr/local/modules/nickserv/restrict";
loadmodule "/usr/local/modules/nickserv/return"; loadmodule "/usr/local/modules/nickserv/return";
loadmodule "/usr/local/modules/nickserv/setpass"; loadmodule "/usr/local/modules/nickserv/setpass";
loadmodule "/usr/local/modules/nickserv/sendpass"; loadmodule "/usr/local/modules/nickserv/sendpass";
loadmodule "/usr/local/modules/nickserv/sendpass_user"; # loadmodule "/usr/local/modules/nickserv/sendpass_user";
loadmodule "/usr/local/modules/nickserv/set_accountname"; loadmodule "/usr/local/modules/nickserv/set_accountname";
loadmodule "/usr/local/modules/nickserv/set_badpasswdmsg"; loadmodule "/usr/local/modules/nickserv/set_badpasswdmsg";
loadmodule "/usr/local/modules/nickserv/set_email"; loadmodule "/usr/local/modules/nickserv/set_email";
loadmodule "/usr/local/modules/nickserv/set_emailmemos"; loadmodule "/usr/local/modules/nickserv/set_emailmemos";
loadmodule "/usr/local/modules/nickserv/set_enforcetime"; loadmodule "/usr/local/modules/nickserv/set_enforcetime";
loadmodule "/usr/local/modules/nickserv/set_hidemail"; loadmodule "/usr/local/modules/nickserv/set_hidemail";
loadmodule "/usr/local/modules/nickserv/set_language"; # loadmodule "/usr/local/modules/nickserv/set_language";
loadmodule "/usr/local/modules/nickserv/set_nevergroup"; loadmodule "/usr/local/modules/nickserv/set_nevergroup";
loadmodule "/usr/local/modules/nickserv/set_neverop"; loadmodule "/usr/local/modules/nickserv/set_neverop";
loadmodule "/usr/local/modules/nickserv/set_nogreet"; loadmodule "/usr/local/modules/nickserv/set_nogreet";
@ -86,7 +84,7 @@ loadmodule "/usr/local/modules/chanserv/main";
loadmodule "/usr/local/modules/chanserv/access"; loadmodule "/usr/local/modules/chanserv/access";
loadmodule "/usr/local/modules/chanserv/akick"; loadmodule "/usr/local/modules/chanserv/akick";
loadmodule "/usr/local/modules/chanserv/ban"; loadmodule "/usr/local/modules/chanserv/ban";
loadmodule "/usr/local/modules/chanserv/unban_self"; # loadmodule "/usr/local/modules/chanserv/unban_self";
loadmodule "/usr/local/modules/chanserv/bansearch"; loadmodule "/usr/local/modules/chanserv/bansearch";
loadmodule "/usr/local/modules/chanserv/clone"; loadmodule "/usr/local/modules/chanserv/clone";
loadmodule "/usr/local/modules/chanserv/close"; loadmodule "/usr/local/modules/chanserv/close";
@ -168,7 +166,7 @@ loadmodule "/usr/local/modules/operserv/rmatch";
loadmodule "/usr/local/modules/operserv/rnc"; loadmodule "/usr/local/modules/operserv/rnc";
loadmodule "/usr/local/modules/operserv/rwatch"; loadmodule "/usr/local/modules/operserv/rwatch";
loadmodule "/usr/local/modules/operserv/set"; loadmodule "/usr/local/modules/operserv/set";
loadmodule "/usr/local/modules/operserv/sgline"; # loadmodule "/usr/local/modules/operserv/sgline";
loadmodule "/usr/local/modules/operserv/shutdown"; loadmodule "/usr/local/modules/operserv/shutdown";
loadmodule "/usr/local/modules/operserv/soper"; loadmodule "/usr/local/modules/operserv/soper";
loadmodule "/usr/local/modules/operserv/specs"; loadmodule "/usr/local/modules/operserv/specs";
@ -191,7 +189,7 @@ loadmodule "/usr/local/modules/saslserv/ecdh-x25519-challenge";
loadmodule "/usr/local/modules/saslserv/ecdsa-nist256p-challenge"; loadmodule "/usr/local/modules/saslserv/ecdsa-nist256p-challenge";
loadmodule "/usr/local/modules/saslserv/external"; loadmodule "/usr/local/modules/saslserv/external";
loadmodule "/usr/local/modules/saslserv/plain"; loadmodule "/usr/local/modules/saslserv/plain";
loadmodule "/usr/local/modules/saslserv/scram"; # loadmodule "/usr/local/modules/saslserv/scram";
loadmodule "/usr/local/modules/gameserv/dice"; loadmodule "/usr/local/modules/gameserv/dice";
loadmodule "/usr/local/modules/gameserv/eightball"; loadmodule "/usr/local/modules/gameserv/eightball";
loadmodule "/usr/local/modules/gameserv/gamecalc"; loadmodule "/usr/local/modules/gameserv/gamecalc";
@ -250,15 +248,16 @@ loadmodule "/usr/local/modules/groupserv/set_joinflags";
loadmodule "/usr/local/modules/groupserv/set_open"; loadmodule "/usr/local/modules/groupserv/set_open";
loadmodule "/usr/local/modules/groupserv/set_public"; loadmodule "/usr/local/modules/groupserv/set_public";
loadmodule "/usr/local/modules/groupserv/set_url"; loadmodule "/usr/local/modules/groupserv/set_url";
#loadmodule "/usr/local/modules/misc/httpd"; loadmodule "/usr/local/modules/misc/httpd";
#loadmodule "/usr/local/modules/misc/login_throttling"; loadmodule "/usr/local/modules/misc/login_throttling";
#loadmodule "/usr/local/modules/transport/xmlrpc"; loadmodule "/usr/local/modules/transport/xmlrpc";
#loadmodule "/usr/local/modules/exttarget/oper"; loadmodule "/usr/local/modules/exttarget/oper";
#loadmodule "/usr/local/modules/exttarget/registered"; loadmodule "/usr/local/modules/exttarget/registered";
#loadmodule "/usr/local/modules/exttarget/channel"; loadmodule "/usr/local/modules/exttarget/channel";
#loadmodule "/usr/local/modules/exttarget/chanacs"; loadmodule "/usr/local/modules/exttarget/chanacs";
#loadmodule "/usr/local/modules/exttarget/server"; loadmodule "/usr/local/modules/exttarget/server";
#loadmodule "/usr/local/modules/proxyscan/dnsbl"; loadmodule "/usr/local/modules/proxyscan/dnsbl";
include "/usr/local/etc/include.conf";
crypto { crypto {
# argon2_type = "argon2id"; # argon2_type = "argon2id";
@ -279,19 +278,18 @@ crypto {
}; };
nickserv { nickserv {
nick = "NICKSERV"; nick = "NICKSERV";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
real = "Nickname Services"; real = "Nickname Services";
spam; # spam;
no_nick_ownership; # no_nick_ownership;
maxnicks = 5; maxnicks = 8;
expire = 30; expire = 0;
enforce_expire = 14; # enforce_expire = 14;
enforce_delay = 30; enforce_delay = 32;
enforce_prefix = "`"; enforce_prefix = "`";
waitreg_time = 0; waitreg_time = 4;
pwquality_warn_only; pwquality_warn_only;
show_custom_metadata; show_custom_metadata;
shorthelp = ""; shorthelp = "";
@ -300,25 +298,20 @@ nickserv {
}; };
chanserv { chanserv {
nick = "CHANSERV"; nick = "CHANSERV";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
real = "Channel Services"; real = "Channel Services";
aliases { aliases {
}; };
access { access {
}; };
reggroup = "!Services-Team"; reggroup = "!Services-Team";
maxchans = 5; maxchans = 5;
fantasy; fantasy;
hide_xop; hide_xop;
hide_flags_akicks; hide_flags_akicks;
hide_pubacl_akicks; hide_pubacl_akicks;
templates { templates {
vop = "+AV"; vop = "+AV";
hop = "+AHehitrv"; hop = "+AHehitrv";
@ -328,7 +321,6 @@ chanserv {
member = "+Ai"; member = "+Ai";
op = "+AOiortv"; op = "+AOiortv";
}; };
deftemplates = "MEMBER=+Ai OP=+AOeiortv"; deftemplates = "MEMBER=+Ai OP=+AOeiortv";
changets; changets;
trigger = "!"; trigger = "!";
@ -344,71 +336,55 @@ chanserv {
}; };
chanfix { chanfix {
nick = "CHANFIX"; nick = "CHANFIX";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
real = "Channel Fixing Service"; real = "Channel Fixing Service";
aliases { aliases {
}; };
access { access {
}; };
autofix; autofix;
}; };
global { global {
nick = "GLOBAL"; nick = "GLOBAL";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
real = "Network Announcements"; real = "Network Announcements";
aliases { aliases {
}; };
access { access {
}; };
}; };
infoserv { infoserv {
nick = "INFOSERV"; nick = "INFOSERV";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
real = "Information Service"; real = "Information Service";
aliases { aliases {
}; };
access { access {
}; };
logoninfo_count = 3; logoninfo_count = 3;
logoninfo_reverse; logoninfo_reverse;
logoninfo_show_metadata; logoninfo_show_metadata;
}; };
operserv { operserv {
nick = "OPERSERV"; nick = "OPERSERV";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
real = "Operator Services"; real = "Operator Services";
aliases { aliases {
}; };
access { access {
}; };
modinspect_use_colors; modinspect_use_colors;
}; };
saslserv { saslserv {
nick = "SASLSERV"; nick = "SASLSERV";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
@ -417,173 +393,136 @@ saslserv {
}; };
memoserv { memoserv {
nick = "MEMOSERV"; nick = "MEMOSERV";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
real = "Memo Services"; real = "Memo Services";
aliases { aliases {
}; };
access { access {
}; };
maxmemos = 64;
maxmemos = 30;
}; };
gameserv { gameserv {
nick = "GAMESERV"; nick = "GAMESERV";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
real = "Game Services"; real = "Game Services";
aliases { aliases {
}; };
access { access {
}; };
}; };
rpgserv { rpgserv {
nick = "RPGSERV"; nick = "RPGSERV";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
real = "RPG Finding Services"; real = "RPG Finding Services";
aliases { aliases {
}; };
access { access {
}; };
}; };
botserv { botserv {
nick = "BOTSERV"; nick = "BOTSERV";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
real = "Bot Services"; real = "Bot Services";
aliases { aliases {
}; };
access { access {
}; };
min_users = 0; min_users = 0;
}; };
groupserv { groupserv {
nick = "GROUPSERV"; nick = "GROUPSERV";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
real = "Group Management Services"; real = "Group Management Services";
aliases { aliases {
}; };
access { access {
}; };
maxgroups = 16;
maxgroups = 5; maxgroupacs = 256;
maxgroupacs = 100;
enable_open_groups; enable_open_groups;
join_flags = "+"; join_flags = "+";
}; };
hostserv { hostserv {
nick = "HOSTSERV"; nick = "HOSTSERV";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
real = "Host Management Services"; real = "Host Management Services";
aliases { aliases {
"APPROVE" = "ACTIVATE"; "APPROVE" = "ACTIVATE";
"DENY" = "REJECT"; "DENY" = "REJECT";
}; };
access { access {
}; };
reggroup = "!Services-Team"; reggroup = "!Services-Team";
no_subsequent_requests; no_subsequent_requests;
request_per_nick; request_per_nick;
}; };
helpserv { helpserv {
nick = "HELPSERV"; nick = "HELPSERV";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
real = "Help Services"; real = "Help Services";
aliases { aliases {
}; };
access { access {
}; };
}; };
statserv { statserv {
nick = "STATSERV"; nick = "STATSERV";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
real = "Statistics Services"; real = "Statistics Services";
aliases { aliases {
}; };
access { access {
}; };
}; };
alis { alis {
nick = "ALIS"; nick = "ALIS";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
real = "Channel Directory"; real = "Channel Directory";
aliases { aliases {
}; };
access { access {
}; };
maxmatches = 128;
maxmatches = 64;
}; };
proxyscan { proxyscan {
nick = "PROXYSCAN"; nick = "PROXYSCAN";
user = "_"; user = "_";
host = "services/SuperNETs"; host = "services/SuperNETs";
real = "Proxyscan Service"; real = "Proxyscan Service";
aliases { aliases {
}; };
access { access {
}; };
blacklists { blacklists {
"dnsbl.dronebl.org"; "dnsbl.dronebl.org";
"rbl.efnetrbl.org"; "rbl.efnetrbl.org";
"tor.efnet.org"; "tor.efnet.org";
}; };
dnsbl_action = snoop;
dnsbl_action = kline;
}; };
httpd { httpd {
host = "0.0.0.0"; host = "127.0.0.1";
host = "::"; # host = "::";
www_root = "/var/www"; www_root = "/var/www";
port = 8080; port = 8080;
}; };
@ -607,7 +546,6 @@ operclass "ircop" {
privs { privs {
special:ircop; special:ircop;
}; };
privs { privs {
user:auspex; user:auspex;
user:admin; user:admin;
@ -615,28 +553,24 @@ operclass "ircop" {
user:vhost; user:vhost;
user:mark; user:mark;
}; };
privs { privs {
chan:auspex; chan:auspex;
chan:admin; chan:admin;
chan:cmodes; chan:cmodes;
chan:joinstaffonly; chan:joinstaffonly;
}; };
privs { privs {
general:auspex; general:auspex;
general:helper; general:helper;
general:viewprivs; general:viewprivs;
general:flood; general:flood;
}; };
privs { privs {
operserv:omode; operserv:omode;
operserv:akill; operserv:akill;
operserv:jupe; operserv:jupe;
operserv:global; operserv:global;
}; };
privs { privs {
group:auspex; group:auspex;
group:admin; group:admin;
@ -645,24 +579,20 @@ operclass "ircop" {
operclass "sra" { operclass "sra" {
extends "ircop"; extends "ircop";
privs { privs {
user:exceedlimits; user:exceedlimits;
user:hold; user:hold;
user:regnolimit; user:regnolimit;
}; };
privs { privs {
general:metadata; general:metadata;
general:admin; general:admin;
}; };
privs { privs {
# operserv:massakill; # operserv:massakill;
# operserv:akill-anymask; # operserv:akill-anymask;
operserv:noop; operserv:noop;
operserv:grant; operserv:grant;
}; };
# needoper;
needoper;
}; };

View File

@ -11,12 +11,9 @@ services:
- data:/etc/atheme - data:/etc/atheme
- ./include.conf:/usr/local/etc/include.conf:ro - ./include.conf:/usr/local/etc/include.conf:ro
- ./atheme.conf:/usr/local/etc/atheme.conf:ro - ./atheme.conf:/usr/local/etc/atheme.conf:ro
- ssl:/etc/ssl/atheme
- log:/var/log/atheme - log:/var/log/atheme
volumes: volumes:
data: data:
name: atheme_data name: atheme_data
ssl:
name: atheme_ssl
log: log:
name: atheme_log name: atheme_log

View File

@ -1,29 +1,29 @@
serverinfo { serverinfo {
name = "lame-network.local"; name = "services.supernets.org";
desc = "IRC Services"; desc = "IRC Services";
numeric = "00A"; numeric = "10X";
recontime = 10; recontime = 4;
netname = "LameNet"; netname = "SuperNETs";
hidehostsuffix = "users.misconfigured"; hidehostsuffix = "hidden";
adminname = "admin"; adminname = "admin";
adminemail = "no-reply@lame-network.local"; adminemail = "no-reply@supernets.org";
registeremail = "no-reply@lame-network.local"; registeremail = "no-reply@supernets.org";
hidden; # hidden;
mta = "/usr/sbin/sendmail"; # mta = "/usr/sbin/sendmail";
loglevel = { admin; error; info; network; wallops; }; loglevel = { admin; error; info; network; wallops; };
maxcertfp = 0; maxcertfp = 8;
maxlogins = 5; maxlogins = 8;
maxusers = 5; maxusers = 8;
mdlimit = 30; mdlimit = 64;
emaillimit = 10; emaillimit = 8;
emailtime = 300; emailtime = 256;
auth = none; auth = none;
casemapping = rfc1459; casemapping = rfc1459;
}; };
uplink "irc.lame-network.local" { uplink "temple.supernets.org" {
host = "127.0.0.1"; host = "127.0.0.1";
port = 7001; port = 6000;
send_password = "changeme"; send_password = "changeme";
receive_password = "changeme"; receive_password = "changeme";
}; };
@ -34,38 +34,34 @@ operator "admin" {
}; };
general { general {
permissive_mode; permissive_mode; # https://github.com/atheme/atheme/issues/937
helpchan = "#help"; helpchan = "#help";
helpurl = "https://www.lame-network.local"; helpurl = "https://www.supernets.org";
verbose_wallops; verbose_wallops;
join_chans; join_chans;
leave_chans; leave_chans;
secure;
uflags = { hidemail; }; uflags = { hidemail; };
cflags = { guard; verbose; }; cflags = { verbose; verbose_ops; keeptopic; guard; };
raw; flood_msgs = 0;
flood_msgs = 7;
flood_time = 10; flood_time = 10;
ratelimit_uses = 5; # ratelimit_uses = 5;
ratelimit_period = 60; # ratelimit_period = 60;
vhost_change = 30; # vhost_change = 30;
kline_time = 7; kline_time = 1;
kline_with_ident; # kline_with_ident;
kline_verified_ident; kline_verified_ident;
clone_time = 0; clone_time = 0;
commit_interval = 5; commit_interval = 16;
db_save_blocking; db_save_blocking;
operstring = "is an IRC Operator"; operstring = "is an IRC Operator";
servicestring = "is a Network Service"; servicestring = "is a Network Service";
default_clone_allowed = 5; default_clone_allowed = 8;
default_clone_warn = 4; default_clone_warn = 4;
clone_identified_increase_limit; clone_identified_increase_limit;
uplink_sendq_limit = 1048576; uplink_sendq_limit = 1048576;
language = "en"; language = "en";
exempts { exempts {
}; };
allow_taint; allow_taint;
immune_level = immune; immune_level = immune;
show_entity_id; show_entity_id;

View File

@ -3,9 +3,7 @@ foreground = yes
[PKI client] [PKI client]
client = yes client = yes
accept = 127.0.0.1:6000 accept = 127.0.0.1:6000
connect = 1.2.3.4:7777 connect = 100.79.209.72:7777
verifyChain = yes
CAfile = /ca.crt CAfile = /ca.crt
cert = /server.crt verifyChain = yes
key = /server.key checkHost = super-temple.lame-server.local
checkHost = hub.lame-network.local