Этот коммит содержится в:
sq 2021-06-25 19:26:57 -04:00
родитель afdfe97e12
Коммит 941fd262d0
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 7AF3499CBA8E6251
106 изменённых файлов: 2136 добавлений и 2617 удалений

Просмотреть файл

@ -53,15 +53,15 @@ command {
module
{
name = "bs_autoassign"
bot = "ChanServ"
name = "bs_autoassign"
bot = "ChanServ"
}
module
{
name = "bs_badwords"
badwordsmax = 256
casesensitive = yes
name = "bs_badwords"
badwordsmax = 256
casesensitive = yes
}
command {
@ -119,9 +119,9 @@ command {
module
{
name = "bs_kick"
keepdata = 10m
gentlebadwordreason = yes
name = "bs_kick"
keepdata = 10m
gentlebadwordreason = yes
}
command {
service = "BotServ";
@ -249,16 +249,16 @@ command {
privilege
{
name = "GREET"
rank = 40
level = 5
flag = "g"
xop = "AOP"
name = "GREET"
rank = 40
level = 5
flag = "g"
xop = "AOP"
}
module
{
name = "fantasy"
name = "fantasy"
fantasycharacter = "`"
}

Просмотреть файл

@ -4,367 +4,367 @@
service
{
nick = "CHANSERV"
user = "CS"
host = "chanserv.host"
gecos = "Channel Registration Service"
modes = "+oR"
channels = "@#services"
nick = "CHANSERV"
user = "CS"
host = "chanserv.host"
gecos = "Channel Registration Service"
modes = "+oR"
channels = "@#services"
}
module
{
name = "chanserv"
client = "ChanServ"
defaults = "keeptopic peace cs_keep_modes cs_secure persist securefounder signkick secureops"
maxregistered = 192
accessmax = 256
inhabit = 15s
reasonmax = 256
signkickformat = "%m (%n)"
disallow_hostmask_access = false
disallow_channel_access = false
always_lower_ts = false
name = "chanserv"
client = "ChanServ"
defaults = "keeptopic peace cs_keep_modes cs_secure persist securefounder signkick secureops"
maxregistered = 192
accessmax = 256
inhabit = 15s
reasonmax = 256
signkickformat = "%m (%n)"
disallow_hostmask_access = false
disallow_channel_access = false
always_lower_ts = false
}
privilege
{
name = "ACCESS_CHANGE"
rank = 0
level = 10
flag = "f"
xop = "SOP"
name = "ACCESS_CHANGE"
rank = 0
level = 10
flag = "f"
xop = "SOP"
}
privilege
{
name = "ACCESS_LIST"
rank = 10
level = 3
flag = "f"
xop = "VOP"
name = "ACCESS_LIST"
rank = 10
level = 3
flag = "f"
xop = "VOP"
}
privilege
{
name = "AKICK"
rank = 250
level = 10
flag = "K"
xop = "SOP"
name = "AKICK"
rank = 250
level = 10
flag = "K"
xop = "SOP"
}
privilege
{
name = "ASSIGN"
rank = 270
level = "founder"
flag = "s"
xop = "QOP"
name = "ASSIGN"
rank = 270
level = "founder"
flag = "s"
xop = "QOP"
}
privilege
{
name = "AUTOHALFOP"
rank = 100
level = 4
flag = "H"
xop = "HOP"
name = "AUTOHALFOP"
rank = 100
level = 4
flag = "H"
xop = "HOP"
}
privilege
{
name = "AUTOOP"
rank = 210
level = 5
flag = "O"
xop = "AOP"
name = "AUTOOP"
rank = 210
level = 5
flag = "O"
xop = "AOP"
}
privilege
{
name = "AUTOOWNER"
rank = 330
level = 9999
flag = "Q"
xop = "QOP"
name = "AUTOOWNER"
rank = 330
level = 9999
flag = "Q"
xop = "QOP"
}
privilege
{
name = "AUTOPROTECT"
rank = 240
level = 10
flag = "A"
xop = "SOP"
name = "AUTOPROTECT"
rank = 240
level = 10
flag = "A"
xop = "SOP"
}
privilege
{
name = "AUTOVOICE"
rank = 50
level = 3
flag = "V"
xop = "VOP"
name = "AUTOVOICE"
rank = 50
level = 3
flag = "V"
xop = "VOP"
}
privilege
{
name = "BADWORDS"
rank = 260
level = 10
flag = "K"
xop = "SOP"
name = "BADWORDS"
rank = 260
level = 10
flag = "K"
xop = "SOP"
}
privilege
{
name = "BAN"
rank = 150
level = 4
flag = "b"
xop = "HOP"
name = "BAN"
rank = 150
level = 4
flag = "b"
xop = "HOP"
}
privilege
{
name = "FANTASIA"
rank = 30
level = 3
flag = "c"
xop = "VOP"
name = "FANTASIA"
rank = 30
level = 3
flag = "c"
xop = "VOP"
}
privilege
{
name = "FOUNDER"
rank = 360
level = 10000
flag = "F"
xop = "QOP"
name = "FOUNDER"
rank = 360
level = 10000
flag = "F"
xop = "QOP"
}
privilege
{
name = "GETKEY"
rank = 180
level = 5
flag = "G"
xop = "AOP"
name = "GETKEY"
rank = 180
level = 5
flag = "G"
xop = "AOP"
}
privilege
{
name = "HALFOP"
rank = 120
level = 5
flag = "h"
xop = "AOP"
name = "HALFOP"
rank = 120
level = 5
flag = "h"
xop = "AOP"
}
privilege
{
name = "HALFOPME"
rank = 110
level = 4
flag = "h"
xop = "HOP"
name = "HALFOPME"
rank = 110
level = 4
flag = "h"
xop = "HOP"
}
privilege
{
name = "INFO"
rank = 80
level = 9999
flag = "I"
xop = "QOP"
name = "INFO"
rank = 80
level = 9999
flag = "I"
xop = "QOP"
}
privilege
{
name = "INVITE"
rank = 190
level = 5
flag = "i"
xop = "AOP"
name = "INVITE"
rank = 190
level = 5
flag = "i"
xop = "AOP"
}
privilege
{
name = "KICK"
rank = 130
level = 4
flag = "k"
xop = "HOP"
name = "KICK"
rank = 130
level = 4
flag = "k"
xop = "HOP"
}
privilege
{
name = "MEMO"
rank = 280
level = 10
flag = "m"
xop = "SOP"
name = "MEMO"
rank = 280
level = 10
flag = "m"
xop = "SOP"
}
privilege
{
name = "MODE"
rank = 170
level = 9999
flag = "s"
xop = "QOP"
name = "MODE"
rank = 170
level = 9999
flag = "s"
xop = "QOP"
}
privilege
{
name = "NOKICK"
rank = 20
level = 1
flag = "N"
xop = "VOP"
name = "NOKICK"
rank = 20
level = 1
flag = "N"
xop = "VOP"
}
privilege
{
name = "OP"
rank = 230
level = 5
flag = "o"
xop = "SOP"
name = "OP"
rank = 230
level = 5
flag = "o"
xop = "SOP"
}
privilege
{
name = "OPME"
rank = 220
level = 5
flag = "o"
xop = "AOP"
name = "OPME"
rank = 220
level = 5
flag = "o"
xop = "AOP"
}
privilege
{
name = "OWNER"
rank = 350
level = "founder"
flag = "q"
xop = "QOP"
name = "OWNER"
rank = 350
level = "founder"
flag = "q"
xop = "QOP"
}
privilege
{
name = "OWNERME"
rank = 340
level = 9999
flag = "q"
xop = "QOP"
name = "OWNERME"
rank = 340
level = 9999
flag = "q"
xop = "QOP"
}
privilege
{
name = "PROTECT"
rank = 310
level = 9999
flag = "a"
xop = "QOP"
name = "PROTECT"
rank = 310
level = 9999
flag = "a"
xop = "QOP"
}
privilege
{
name = "PROTECTME"
rank = 300
level = 10
flag = "a"
xop = "SOP"
name = "PROTECTME"
rank = 300
level = 10
flag = "a"
xop = "SOP"
}
privilege
{
name = "SAY"
rank = 90
level = 5
flag = "B"
xop = "AOP"
name = "SAY"
rank = 90
level = 5
flag = "B"
xop = "AOP"
}
privilege
{
name = "SET"
rank = 320
level = 9999
flag = "s"
xop = "QOP"
name = "SET"
rank = 320
level = 9999
flag = "s"
xop = "QOP"
}
privilege
{
name = "SIGNKICK";
rank = 140;
level = 9999;
flag = "K";
xop = "QOP";
name = "SIGNKICK";
rank = 140;
level = 9999;
flag = "K";
xop = "QOP";
}
privilege
{
name = "TOPIC";
rank = 160;
level = 5;
flag = "t";
xop = "AOP";
name = "TOPIC";
rank = 160;
level = 5;
flag = "t";
xop = "AOP";
}
privilege
{
name = "UNBAN";
rank = 200;
level = 4;
flag = "u";
xop = "HOP";
name = "UNBAN";
rank = 200;
level = 4;
flag = "u";
xop = "HOP";
}
privilege
{
name = "VOICE";
rank = 70;
level = 4;
flag = "v";
xop = "HOP";
name = "VOICE";
rank = 70;
level = 4;
flag = "v";
xop = "HOP";
}
privilege
{
name = "VOICEME";
rank = 60;
level = 3;
flag = "v";
xop = "VOP";
name = "VOICEME";
rank = 60;
level = 3;
flag = "v";
xop = "VOP";
}
command_group
{
name = "chanserv/access";
description = _("Used to manage the list of privileged users");
name = "chanserv/access";
description = _("Used to manage the list of privileged users");
}
command_group
{
name = "chanserv/status";
description = _("Used to modify the channel status of you or other users");
name = "chanserv/status";
description = _("Used to modify the channel status of you or other users");
}
command_group
{
name = "chanserv/management"
description = _("Used to manage channels")
name = "chanserv/management"
description = _("Used to manage channels")
}
command_group
{
name = "chanserv/admin";
description = _("Services Operator commands");
name = "chanserv/admin";
description = _("Services Operator commands");
}
command {
@ -394,9 +394,9 @@ command {
module
{
name = "cs_akick"
autokickmax = 256
autokickreason = "User has been banned from the channel"
name = "cs_akick"
autokickmax = 256
autokickreason = "User has been banned from the channel"
}
command {
@ -452,8 +452,8 @@ command {
module
{
name = "cs_entrymsg"
maxentries = 32
name = "cs_entrymsg"
maxentries = 32
}
command {
@ -516,8 +516,8 @@ command {
module
{
name = "cs_list";
listmax = 32;
name = "cs_list";
listmax = 32;
}
command {
@ -534,9 +534,9 @@ command {
module
{
name = "cs_mode"
mlock = "+nt"
max = 32
name = "cs_mode"
mlock = "+nt"
max = 32
}
command {
@ -638,8 +638,8 @@ command {
module
{
name = "cs_seen";
simple = false;
name = "cs_seen";
simple = false;
}
command {
@ -651,9 +651,9 @@ command {
module
{
name = "cs_set";
defbantype = 2;
persist_lower_ts = true;
name = "cs_set";
defbantype = 2;
persist_lower_ts = true;
}
command {
@ -785,8 +785,8 @@ command {
module
{
name = "cs_suspend"
show = "suspended, by, reason, on, expires"
name = "cs_suspend"
show = "suspended, by, reason, on, expires"
}
command {

Просмотреть файл

@ -1,40 +0,0 @@
/*
* example configuration at https://github.com/anope/anope/blob/2.0/data/global.example.conf
*/
service
{
nick = "GLOBAL"
user = "GLOBAL"
host = "global.host"
gecos = "Global Noticer"
modes = "+oDGp"
channels = "@#services"
}
module
{
name = "global"
client = "Global"
globaloncycledown = "Services are restarting, stand-by until they are restored"
globaloncycleup = "Services are restored"
anonymousglobal = no
}
command {
service = "Global";
name = "HELP";
command = "generic/help";
}
module {
name = "gl_global"
}
command {
service = "Global";
name = "GLOBAL";
command = "global/global";
permission = "global/global";
}

Просмотреть файл

@ -5,18 +5,18 @@
service
{
nick = "HOSTSERV"
user = "HS"
host = "hostserv.host"
gecos = "vHost Service"
channels = "@#services"
nick = "HOSTSERV"
user = "HS"
host = "hostserv.host"
gecos = "vHost Service"
channels = "@#services"
}
module
{
name = "hostserv"
client = "HostServ"
activate_on_set = true
name = "hostserv"
client = "HostServ"
activate_on_set = true
}
command {
@ -45,9 +45,9 @@ command {
module
{
name = "hs_group"
syncongroup = false
synconset = false
name = "hs_group"
syncongroup = false
synconset = false
}
command {
@ -80,6 +80,7 @@ command {
module {
name = "hs_on";
}
command {
service = "HostServ";
name = "ON";
@ -88,9 +89,9 @@ command {
module
{
name = "hs_request";
memouser = yes;
memooper = yes;
name = "hs_request";
memouser = yes;
memooper = yes;
}
command {

Просмотреть файл

@ -4,19 +4,19 @@
service
{
nick = "MEMOSERV"
user = "MS"
host = "memoserv.host"
gecos = "Memo Service"
channels = "@#services"
nick = "MEMOSERV"
user = "MS"
host = "memoserv.host"
gecos = "Memo Service"
channels = "@#services"
}
module
{
name = "memoserv"
client = "MemoServ"
maxmemos = 256
senddelay = 3s
name = "memoserv"
client = "MemoServ"
maxmemos = 256
senddelay = 3s
}
command {
@ -57,8 +57,8 @@ command {
module
{
name = "ms_ignore";
max = 256;
name = "ms_ignore";
max = 256;
}
command {
service = "MemoServ";

Просмотреть файл

@ -4,13 +4,13 @@ module {
module
{
name = "m_redis"
redis
{
name = "redis/main"
ip = "100.64.64.130"
port = 6379
}
name = "m_redis"
redis
{
name = "redis/main"
ip = "100.64.64.130"
port = 6379
}
}
module {

18
config/anope/modules.oper.conf Обычный файл
Просмотреть файл

@ -0,0 +1,18 @@
module {
name = "help"
}
module
{
name = "m_redis"
redis
{
name = "redis/main"
ip = "100.64.64.130"
port = 6379
}
}
module {
name = "m_sasl"
}

Просмотреть файл

@ -1,40 +1,40 @@
service
{
nick = "NICKSERV"
user = "NS"
host = "nickserv.host"
gecos = "Nickname Registration Service"
channels = "@#services"
nick = "NICKSERV"
user = "NS"
host = "nickserv.host"
gecos = "Nickname Registration Service"
channels = "@#services"
}
module
{
name = "nickserv"
client = "NickServ"
forceemail = no
confirmemailchanges = no
unregistered_notice = "Use /msg NICKSERV REGISTER <password> to claim an account with this nickname or /msg NICKSERV LOGIN to use your existing account"
defaults = "ns_private hide_email hide_mask memo_signon memo_receive memo_mail autoop ns_keep_modes"
regdelay = 1d
secureadmins = yes
modeonid = yes
name = "nickserv"
client = "NickServ"
forceemail = no
confirmemailchanges = no
unregistered_notice = "Use /msg NICKSERV REGISTER <password> to claim an account with this nickname or /msg NICKSERV LOGIN to use your existing account. Do not forget your password, it's very difficult/impossible to reset it."
defaults = "ns_private hide_email hide_mask memo_signon memo_receive memo_mail autoop ns_keep_modes"
regdelay = 1d
secureadmins = yes
modeonid = yes
expire = 3650d
hidenetsplitquit = no
hidenetsplitquit = no
killquick = 20s
kill = 60s
restrictopernicks = no
enforceruser = "k1ll4ll"
enforcerhost = "enforcer.host"
releasetimeout = 1m
guestnickprefix = "[g]"
nonicknameownership = no
passlen = 32
kill = 60s
restrictopernicks = no
enforceruser = "k1ll4ll"
enforcerhost = "enforcer.host"
releasetimeout = 1m
guestnickprefix = "[g]"
nonicknameownership = no
passlen = 32
}
command_group
{
name = "nickserv/admin"
description = _("Services Operator commands")
name = "nickserv/admin"
description = _("Services Operator commands")
}
@ -46,9 +46,9 @@ command {
module
{
name = "ns_access"
accessmax = 256
addaccessonreg = yes
name = "ns_access"
accessmax = 256
addaccessonreg = yes
}
command {
@ -59,8 +59,8 @@ command {
module
{
name = "ns_ajoin"
ajoinmax = 256
name = "ns_ajoin"
ajoinmax = 256
}
command {
@ -81,8 +81,8 @@ command {
module
{
name = "ns_cert"
max = 8
name = "ns_cert"
max = 8
}
command {
@ -101,23 +101,11 @@ command {
command = "nickserv/drop";
}
# module {
# name = "ns_getemail";
# }
# command {
# service = "NickServ";
# name = "GETEMAIL";
# command = "nickserv/getemail";
# permission = "nickserv/getemail";
# group = "nickserv/admin";
# }
module
{
name = "ns_group"
maxaliases = 8
nogroupchange = yes
name = "ns_group"
maxaliases = 8
nogroupchange = yes
}
command {
@ -140,8 +128,8 @@ command {
module
{
name = "ns_identify"
maxlogins = 8
name = "ns_identify"
maxlogins = 8
}
command {
@ -182,8 +170,8 @@ command {
module
{
name = "ns_list"
listmax = 32
name = "ns_list"
listmax = 32
}
command {
@ -215,57 +203,23 @@ command {
command = "nickserv/logout";
}
# module
# {
# name = "ns_recover"
# restoreonrecover = yes
# }
# command {
# service = "NickServ";
# name = "RECOVER";
# command = "nickserv/recover";
# }
module
{
name = "ns_register"
registration = "none"
resenddelay = 30m
nickregdelay = 30s
name = "ns_register"
registration = "none"
resenddelay = 30m
nickregdelay = 30s
}
# command {
# service = "NickServ";
# name = "CONFIRM";
# command = "nickserv/confirm";
# }
command {
service = "NickServ";
name = "REGISTER";
command = "nickserv/register";
}
# command {
# service = "NickServ";
# name = "RESEND";
# command = "nickserv/resend";
# }
# module {
# name = "ns_resetpass"
# }
# command {
# service = "NickServ";
# name = "RESETPASS";
# command = "nickserv/resetpass";
# }
module
{
name = "ns_set"
name = "ns_set"
}
command {
@ -421,7 +375,9 @@ command {
service = "NickServ";
name = "SASET URL";
command = "nickserv/saset/misc";
misc_description = _("Associate a URL with this account"); permission = "nickserv/saset/url"; group = "nickserv/admin";
misc_description = _("Associate a URL with this account");
permission = "nickserv/saset/url";
group = "nickserv/admin";
}
module {
@ -435,8 +391,8 @@ command {
module
{
name = "ns_suspend"
show = "suspended, by, reason, on, expires"
name = "ns_suspend"
show = "suspended, by, reason, on, expires"
}
command {

Просмотреть файл

@ -4,12 +4,12 @@
service
{
nick = "OPERSERV"
user = "OS"
nick = "GLOBAL"
user = "GLOBAL"
host = "operserv.host"
gecos = "Operator Service"
#modes = "+Rop"
channels = "@#services,@#oper"
modes = "+gop"
channels = "@#oper"
}
module
@ -28,8 +28,6 @@ module
opersonly = no
}
module {
name = "os_akill";
}
@ -118,6 +116,126 @@ module {
name = "os_update";
}
module
{
name = "global"
client = "Global"
globaloncycledown = "0p3rs3rv r3st4rt1ng"
globaloncycleup = "0p3rs3rv r3st0r3d"
anonymousglobal = no
}
module {
name = "gl_global"
}
module
{
name = "hostserv"
client = "HostServ"
activate_on_set = true
}
module {
name = "hs_del";
}
module
{
name = "hs_group"
syncongroup = false
synconset = false
}
module {
name = "hs_list";
}
module {
name = "hs_off";
}
module {
name = "hs_on";
}
module
{
name = "hs_request";
memouser = yes;
memooper = yes;
}
module {
name = "hs_set";
}
fantasy {
name = "GLOBAL";
command = "global/global";
prepend_channel = false;
permission = "global/global";
}
fantasy {
name = "HDEL";
command = "hostserv/del";
prepend_channel = false;
permission = "hostserv/del";
}
fantasy {
name = "HDELALL";
command = "hostserv/delall";
prepend_channel = false;
permission = "hostserv/del";
}
fantasy {
name = "HLIST";
command = "hostserv/list";
prepend_channel = false;
permission = "hostserv/list";
}
fantasy {
name = "HACTIVATE";
command = "hostserv/activate";
prepend_channel = false;
permission = "hostserv/set";
}
fantasy {
name = "HREJECT";
command = "hostserv/reject";
prepend_channel = false;
permission = "hostserv/set";
}
fantasy {
name = "HWAITING";
command = "hostserv/waiting";
prepend_channel = false;
permission = "hostserv/set";
}
fantasy {
name = "HSET";
command = "hostserv/set";
prepend_channel = false;
permission = "hostserv/set";
}
fantasy {
name = "HSETALL";
command = "hostserv/setall";
prepend_channel = false;
permission = "hostserv/set";
}
fantasy {
name = "AKILL";
command = "operserv/akill";
@ -132,7 +250,6 @@ fantasy {
permission = "operserv/config";
}
fantasy {
name = "CHANKILL";
command = "operserv/chankill";
@ -278,4 +395,4 @@ fantasy {
command = "operserv/userlist";
prepend_channel = false;
permission = "operserv/userlist";
}
}

Просмотреть файл

@ -4,273 +4,176 @@
define
{
name = "nickserv.host";
value = "s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
name = "nickserv.host";
value = "1ns3c.ur1.ty";
}
define
{
name = "chanserv.host";
value = "s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
name = "chanserv.host";
value = "1ns3c.ur1.ty";
}
define
{
name = "botserv.host";
value = "s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
name = "botserv.host";
value = "1ns3c.ur1.ty";
}
define
{
name = "hostserv.host";
value = "s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
name = "hostserv.host";
value = "1ns3c.ur1.ty";
}
define
{
name = "memoserv.host";
value = "s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
name = "memoserv.host";
value = "1ns3c.ur1.ty";
}
define
{
name = "operserv.host";
value = "s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
}
define
{
name = "global.host";
value = "s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
}
define
{
name = "enforcer.host";
value = "s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
}
uplink
{
host = "100.64.64.34";
ipv6 = no;
ssl = no;
port = 5555;
password = "password";
host = "100.64.64.34";
ipv6 = no;
ssl = no;
port = 5555;
password = "password";
}
serverinfo
{
name = "s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
description = "𝓷3𝓽𝔀3𝓻𝓴";
id = "14X";
pid = "data/services.pid";
motd = "conf/services.motd";
name = "1ns3c.ur1.ty";
description = "𝓷3𝓽𝔀3𝓻𝓴";
id = "14X";
pid = "data/services.pid";
motd = "conf/services.motd";
}
module
{
name = "hybrid";
use_server_side_mlock = yes;
use_server_side_topiclock = yes;
name = "hybrid";
use_server_side_mlock = yes;
use_server_side_topiclock = yes;
}
networkinfo
{
networkname = "𝓷3𝓽𝔀3𝓻𝓴";
nicklen = 30;
userlen = 10;
hostlen = 64;
chanlen = 50;
modelistsize = 128;
vhost_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-\x03\x02";
allow_undotted_vhosts = false;
disallow_start_or_end = ".-";
networkname = "𝓷3𝓽𝔀3𝓻𝓴";
nicklen = 30;
userlen = 10;
hostlen = 64;
chanlen = 50;
modelistsize = 128;
vhost_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-\x03\x02";
allow_undotted_vhosts = false;
disallow_start_or_end = ".-";
}
options
{
user = "anope";
casemap = "ascii";
seed = 9866235;
strictpasswords = no;
badpasslimit = 5;
badpasstimeout = 1h;
updatetimeout = 5m;
user = "anope";
casemap = "ascii";
seed = 9866235;
strictpasswords = no;
badpasslimit = 5;
badpasstimeout = 1h;
updatetimeout = 5m;
hidestatso = yes;
expiretimeout = 30m;
readtimeout = 5s;
warningtimeout = 4h;
timeoutcheck = 3s;
retrywait = 60s;
hideprivilegedcommands = yes;
hideregisteredcommands = yes;
expiretimeout = 30m;
readtimeout = 5s;
warningtimeout = 4h;
timeoutcheck = 3s;
retrywait = 60s;
hideprivilegedcommands = yes;
hideregisteredcommands = yes;
}
include
{
type = "file";
name = "botserv.conf";
type = "file";
name = "botserv.conf";
}
include
{
type = "file";
name = "chanserv.conf";
type = "file";
name = "chanserv.conf";
}
include
{
type = "file";
name = "global.conf";
type = "file";
name = "hostserv.conf";
}
include
{
type = "file";
name = "hostserv.conf";
type = "file";
name = "memoserv.conf";
}
include
{
type = "file";
name = "memoserv.conf";
}
include
{
type = "file";
name = "nickserv.conf";
}
include
{
type = "file";
name = "operserv.conf";
}
log
{
bot = "Global";
target = "globops";
admin = "global/* operserv/chankill operserv/mode operserv/kick operserv/akill operserv/s*line operserv/noop operserv/jupe operserv/oline operserv/set operserv/svsnick operserv/svsjoin operserv/svspart nickserv/getpass */drop";
servers = "squit";
users = "oper";
other = "expire/* bados akill/*";
}
opertype
{
name = "Helper";
commands = "hostserv/*";
}
opertype
{
name = "Services Operator";
inherits = "Helper, Another Helper";
commands = "chanserv/list chanserv/suspend chanserv/topic memoserv/staff nickserv/list nickserv/suspend operserv/mode operserv/chankill operserv/akill operserv/session operserv/modinfo operserv/sqline operserv/oper operserv/kick operserv/ignore operserv/snline";
privs = "chanserv/auspex chanserv/no-register-limit memoserv/* nickserv/auspex nickserv/confirm";}
opertype
{
name = "Services Administrator";
inherits = "Services Operator";
commands = "botserv/* chanserv/access/list chanserv/drop chanserv/getkey chanserv/saset/noexpire memoserv/sendall nickserv/saset/* nickserv/getemail operserv/news operserv/jupe operserv/svs operserv/stats operserv/oline operserv/noop operserv/forbid operserv/svsjoin global/*";
privs = "*";
}
opertype
{
name = "Services Root";
commands = "*";
privs = "*";
}
oper
{
name = "sq";
type = "Services Root";
require_oper = no;
}
oper
{
name = "sniff";
type = "Services Root";
require_oper = no;
}
oper
{
name = "kayos";
type = "Services Root";
require_oper = no;
}
oper
{
name = "seroquel";
type = "Services Root";
require_oper = no;
type = "file";
name = "nickserv.conf";
}
mail
{
usemail = yes;
sendmailpath = "/usr/sbin/sendmail -t";
sendfrom = "services@localhost.net";
delay = 5m;
registration_subject = "Nickname registration for %n";
registration_message = "Hi,
sendmailpath = "/usr/sbin/sendmail -t";
sendfrom = "services@localhost.net";
delay = 5m;
registration_subject = "Nickname registration for %n";
registration_message = "Hi,
You have requested to register the nickname %n on %N.
Please type \" /msg NickServ CONFIRM %c \" to complete registration.
You have requested to register the nickname %n on %N.
Please type \" /msg NickServ CONFIRM %c \" to complete registration.
If you don't know why this mail was sent to you, please ignore it silently.
If you don't know why this mail was sent to you, please ignore it silently.
%N administrators.";
%N administrators.";
reset_subject = "Reset password request for %n";
reset_message = "Hi,
reset_subject = "Reset password request for %n";
reset_message = "Hi,
You have requested to have the password for %n reset.
To reset your password, type \" /msg NickServ CONFIRM %n %c \"
You have requested to have the password for %n reset.
To reset your password, type \" /msg NickServ CONFIRM %n %c \"
If you don't know why this mail was sent to you, please ignore it silently.
If you don't know why this mail was sent to you, please ignore it silently.
%N administrators.";
%N administrators.";
emailchange_subject = "Email confirmation";
emailchange_message = "Hi,
emailchange_subject = "Email confirmation";
emailchange_message = "Hi,
You have requested to change your email address from %e to %E.
Please type \" /msg NickServ CONFIRM %c \" to confirm this change.
You have requested to change your email address from %e to %E.
Please type \" /msg NickServ CONFIRM %c \" to confirm this change.
If you don't know why this mail was sent to you, please ignore it silently.
If you don't know why this mail was sent to you, please ignore it silently.
%N administrators."
%N administrators."
memo_subject = "New memo";
memo_message = "Hi %n,
You've just received a new memo from %s. This is memo number %d.
You've just received a new memo from %s. This is memo number %d.
Memo text:
Memo text:
%t";
%t";
}
module
{
name = "db_redis";
engine = "redis/main";
name = "db_redis";
engine = "redis/main";
}
module {
@ -279,6 +182,6 @@ module {
include
{
type = "file";
name = "modules.conf";
type = "file";
name = "modules.conf";
}

113
config/anope/services.oper.conf Обычный файл
Просмотреть файл

@ -0,0 +1,113 @@
/*
* example configuration at https://github.com/anope/anope/blob/2.0/data/example.oper.conf
*/
define
{
name = "operserv.host";
value = "0p.3r.1ns3c.ur1.ty";
}
define
{
name = "enforcer.host";
value = "0p.3r.1ns3c.ur1.ty";
}
uplink
{
host = "";
ipv6 = no;
ssl = no;
port = 55555;
password = "password";
}
serverinfo
{
name = "0p.3r.1ns3c.ur1.ty";
description = "𝓷3𝓽𝔀3𝓻𝓴";
id = "";
pid = "data/services.pid";
motd = "conf/services.motd";
}
module
{
name = "hybrid";
use_server_side_mlock = yes;
use_server_side_topiclock = yes;
}
networkinfo
{
networkname = "𝓷3𝓽𝔀3𝓻𝓴";
nicklen = 30;
userlen = 10;
hostlen = 64;
chanlen = 50;
modelistsize = 128;
vhost_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-\x03\x02";
allow_undotted_vhosts = false;
disallow_start_or_end = ".-";
}
options
{
user = "anope";
casemap = "ascii";
seed = 9866235;
strictpasswords = no;
badpasslimit = 5;
badpasstimeout = 1h;
updatetimeout = 5m;
hidestatso = yes;
expiretimeout = 30m;
readtimeout = 5s;
warningtimeout = 4h;
timeoutcheck = 3s;
retrywait = 60s;
hideprivilegedcommands = no;
hideregisteredcommands = no;
}
include
{
type = "file";
name = "operserv.conf";
}
log
{
bot = "OperServ";
target = "globops";
admin = "global/* operserv/chankill operserv/mode operserv/kick operserv/akill operserv/s*line operserv/noop operserv/jupe operserv/oline operserv/set operserv/svsnick operserv/svsjoin operserv/svspart nickserv/getpass */drop";
servers = "squit";
users = "oper";
other = "expire/* bados akill/*";
}
opertype
{
name = "Services Root";
commands = "*";
privs = "*";
}
module
{
name = "db_redis";
engine = "redis/main";
}
module {
name = "enc_sha256";
}
include
{
type = "file";
name = "modules.conf";
}

Просмотреть файл

@ -3,200 +3,199 @@
*/
options {
pidfile = "/dev/shm/hopm.pid";
command_queue_size = 64;
command_interval = 10 seconds;
command_timeout = 180 seconds;
negcache_rebuild = 12 hours;
dns_fdlimit = 102400;
dns_timeout = 5 seconds;
pidfile = "/dev/shm/hopm.pid";
command_queue_size = 64;
command_interval = 10 seconds;
command_timeout = 180 seconds;
negcache_rebuild = 12 hours;
dns_fdlimit = 102400;
dns_timeout = 5 seconds;
};
irc {
nick = "SCANNER";
realname = "n3tw3rk 1ns3cur1ty c0rp pr0xy sc4nn3r";
username = "sc4nn3r";
server = "100.64.64.66";
port = 6868;
tls = no;
tls_hostname_verification = yes;
readtimeout = 15 minutes;
reconnectinterval = 30 seconds;
nickserv = "NS IDENTIFY password";
oper = "SCANNER password";
mode = "+cgBDfkjwisq";
away = "go privmsg someone else";
channel {
name = "#hopm";
invite = "CS INVITE #hopm";
};
channel {
name = "#netcrave";
invite = "CS INVITE #netcrave";
};
nick = "SCANNER";
realname = "n3tw3rk 1ns3cur1ty c0rp pr0xy sc4nn3r";
username = "sc4nn3r";
server = "100.64.64.66";
port = 6868;
tls = no;
tls_hostname_verification = yes;
readtimeout = 15 minutes;
reconnectinterval = 30 seconds;
nickserv = "NS IDENTIFY password";
oper = "SCANNER password";
mode = "+cgBDfkjwisq";
away = "go msg someone else";
connregex = "\\*\\*\\* Notice -- Client connecting.*: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]+)\\].*";
kline = "OS AKILL ADD +3h *@%i Open proxy found on your host. Try connecting through the proxy DMZ or Tor instead.";
notice = "dronesbl/efnetrbl/port scanning you, if you have trouble connecting please use the proxy DMZ or Tor.";
channel {
name = "#hopm";
invite = "CS INVITE #hopm";
};
channel {
name = "#netcrave";
invite = "CS INVITE #netcrave";
};
connregex = "\\*\\*\\* Notice -- Client connecting.*: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]+)\\].*";
kline = "OS AKILL ADD +3h *@%i Open proxy found on your host. Try connecting through the proxy DMZ or Tor instead.";
notice = "dronesbl/efnetrbl/port scanning you, if you have trouble connecting please use the proxy DMZ or Tor.";
};
opm {
blacklist {
name = "dnsbl.dronebl.org";
address_family = ipv4, ipv6;
type = "A record reply";
ban_unknown = yes;
reply {
2 = "Sample data used for heuristical analysis";
3 = "IRC spam drone (litmus/sdbot/fyle)";
5 = "Bottler (experimental)";
6 = "Unknown worm or spambot";
7 = "DDoS drone";
8 = "Open SOCKS proxy";
9 = "Open HTTP proxy";
10 = "ProxyChain";
11 = "Web Page Proxy";
12 = "Open DNS Resolver";
13 = "Automated dictionary attacks";
14 = "Open WINGATE proxy";
15 = "Compromised router / gateway";
16 = "Autorooting worms";
17 = "Automatically determined botnet IPs (experimental)";
18 = "DNS/MX type hostname detected on IRC";
255 = "Uncategorized threat class";
};
kline = "KLINE 180 *@%i :You have a host listed in the DroneBL";
blacklist {
name = "dnsbl.dronebl.org";
address_family = ipv4, ipv6;
type = "A record reply";
ban_unknown = yes;
reply {
2 = "Sample data used for heuristical analysis";
3 = "IRC spam drone (litmus/sdbot/fyle)";
5 = "Bottler (experimental)";
6 = "Unknown worm or spambot";
7 = "DDoS drone";
8 = "Open SOCKS proxy";
9 = "Open HTTP proxy";
10 = "ProxyChain";
11 = "Web Page Proxy";
12 = "Open DNS Resolver";
13 = "Automated dictionary attacks";
14 = "Open WINGATE proxy";
15 = "Compromised router / gateway";
16 = "Autorooting worms";
17 = "Automatically determined botnet IPs (experimental)";
18 = "DNS/MX type hostname detected on IRC";
255 = "Uncategorized threat class";
};
kline = "KLINE 180 *@%i :You have a host listed in the DroneBL. Try connecting through the proxy DMZ or Tor instead.";
};
blacklist {
name = "rbl.efnetrbl.org";
type = "A record reply";
ban_unknown = yes;
blacklist {
name = "rbl.efnetrbl.org";
type = "A record reply";
ban_unknown = yes;
reply {
1 = "Open proxy";
2 = "spamtrap666";
3 = "spamtrap50";
4 = "TOR";
5 = "Drones / Flooding";
};
reply {
1 = "Open proxy";
2 = "spamtrap666";
3 = "spamtrap50";
4 = "TOR";
5 = "Drones / Flooding";
};
kline = "KLINE 180 *@%i :Blacklisted proxy found. Try connecting through the proxy DMZ or Tor instead.";
};
kline = "KLINE 180 *@%i :Blacklisted proxy found";
};
blacklist {
name = "tor.efnetrbl.org";
type = "A record reply";
ban_unknown = no;
blacklist {
name = "tor.efnetrbl.org";
type = "A record reply";
ban_unknown = no;
reply {
1 = "TOR";
};
kline = "KLINE 180 *@%i :TOR exit node found";
};
reply {
1 = "TOR";
};
kline = "KLINE 180 *@%i :TOR exit node found. Try connecting through the proxy DMZ or Tor instead.";
};
};
scanner {
name = "default";
protocol = HTTP:80;
protocol = HTTP:8080;
protocol = HTTP:3128;
protocol = HTTP:6588;
protocol = SOCKS4:1080;
protocol = SOCKS5:1080;
protocol = ROUTER:23;
protocol = WINGATE:23;
protocol = DREAMBOX:23;
protocol = HTTPPOST:80;
fd = 102400;
max_read = 4 kbytes;
timeout = 30 seconds;
target_ip = "irc.clandestine.network";
target_port = 6667;
target_string = ":irc.clandestine.network NOTICE * :*** Looking up your hostname";
target_string = "ERROR :Your host is trying to (re)connect too fast -- throttled.";
name = "default";
protocol = HTTP:80;
protocol = HTTP:8080;
protocol = HTTP:3128;
protocol = HTTP:6588;
protocol = SOCKS4:1080;
protocol = SOCKS5:1080;
protocol = ROUTER:23;
protocol = WINGATE:23;
protocol = DREAMBOX:23;
protocol = HTTPPOST:80;
fd = 102400;
max_read = 4 kbytes;
timeout = 30 seconds;
target_ip = "irc.clandestine.network";
target_port = 6667;
target_string = ":irc.clandestine.network NOTICE * :*** Looking up your hostname";
target_string = "ERROR :Your host is trying to (re)connect too fast -- throttled.";
};
scanner {
name = "extended";
protocol = HTTP:81;
protocol = HTTP:8000;
protocol = HTTP:8001;
protocol = HTTP:8081;
protocol = HTTPPOST:81;
protocol = HTTPPOST:6588;
protocol = HTTPPOST:4480;
protocol = HTTPPOST:8000;
protocol = HTTPPOST:8001;
protocol = HTTPPOST:8080;
protocol = HTTPPOST:8081;
protocol = SOCKS4:4914;
protocol = SOCKS4:6826;
protocol = SOCKS4:7198;
protocol = SOCKS4:7366;
protocol = SOCKS4:9036;
protocol = SOCKS5:4438;
protocol = SOCKS5:5104;
protocol = SOCKS5:5113;
protocol = SOCKS5:5262;
protocol = SOCKS5:5634;
protocol = SOCKS5:6552;
protocol = SOCKS5:6561;
protocol = SOCKS5:7464;
protocol = SOCKS5:7810;
protocol = SOCKS5:8130;
protocol = SOCKS5:8148;
protocol = SOCKS5:8520;
protocol = SOCKS5:8814;
protocol = SOCKS5:9100;
protocol = SOCKS5:9186;
protocol = SOCKS5:9447;
protocol = SOCKS5:9578;
protocol = SOCKS5:10000;
protocol = SOCKS5:64101;
protocol = SOCKS4:29992;
protocol = SOCKS4:38884;
protocol = SOCKS4:18844;
protocol = SOCKS4:17771;
protocol = SOCKS4:31121;
fd = 102400;
name = "extended";
protocol = HTTP:81;
protocol = HTTP:8000;
protocol = HTTP:8001;
protocol = HTTP:8081;
protocol = HTTPPOST:81;
protocol = HTTPPOST:6588;
protocol = HTTPPOST:4480;
protocol = HTTPPOST:8000;
protocol = HTTPPOST:8001;
protocol = HTTPPOST:8080;
protocol = HTTPPOST:8081;
protocol = SOCKS4:4914;
protocol = SOCKS4:6826;
protocol = SOCKS4:7198;
protocol = SOCKS4:7366;
protocol = SOCKS4:9036;
protocol = SOCKS5:4438;
protocol = SOCKS5:5104;
protocol = SOCKS5:5113;
protocol = SOCKS5:5262;
protocol = SOCKS5:5634;
protocol = SOCKS5:6552;
protocol = SOCKS5:6561;
protocol = SOCKS5:7464;
protocol = SOCKS5:7810;
protocol = SOCKS5:8130;
protocol = SOCKS5:8148;
protocol = SOCKS5:8520;
protocol = SOCKS5:8814;
protocol = SOCKS5:9100;
protocol = SOCKS5:9186;
protocol = SOCKS5:9447;
protocol = SOCKS5:9578;
protocol = SOCKS5:10000;
protocol = SOCKS5:64101;
protocol = SOCKS4:29992;
protocol = SOCKS4:38884;
protocol = SOCKS4:18844;
protocol = SOCKS4:17771;
protocol = SOCKS4:31121;
fd = 102400;
};
scanner {
name = "ssh";
protocol = SSH:22;
target_string = "SSH-1.99-OpenSSH_5.1";
target_string = "SSH-2.0-dropbear_0.51";
target_string = "SSH-2.0-dropbear_0.52";
target_string = "SSH-2.0-dropbear_0.53.1";
target_string = "SSH-2.0-dropbear_2012.55";
target_string = "SSH-2.0-dropbear_2013.62";
target_string = "SSH-2.0-dropbear_2014.63";
target_string = "SSH-2.0-OpenSSH_4.3";
target_string = "SSH-2.0-OpenSSH_5.1";
target_string = "SSH-2.0-OpenSSH_5.5p1";
target_string = "SSH-2.0-ROSSSH";
target_string = "SSH-2.0-SSH_Server";
name = "ssh";
protocol = SSH:22;
target_string = "SSH-1.99-OpenSSH_5.1";
target_string = "SSH-2.0-dropbear_0.51";
target_string = "SSH-2.0-dropbear_0.52";
target_string = "SSH-2.0-dropbear_0.53.1";
target_string = "SSH-2.0-dropbear_2012.55";
target_string = "SSH-2.0-dropbear_2013.62";
target_string = "SSH-2.0-dropbear_2014.63";
target_string = "SSH-2.0-OpenSSH_4.3";
target_string = "SSH-2.0-OpenSSH_5.1";
target_string = "SSH-2.0-OpenSSH_5.5p1";
target_string = "SSH-2.0-ROSSSH";
target_string = "SSH-2.0-SSH_Server";
};
user {
mask = "*!*@";
scanner = "extended";
mask = "*!*@";
scanner = "extended";
};
user {
mask = "*!squid@*";
mask = "*!nobody@*";
mask = "*!www-data@*";
mask = "*!cache@*";
mask = "*!CacheFlowS@*";
mask = "*!*@*www*";
mask = "*!*@*proxy*";
mask = "*!*@*cache*";
scanner = "extended";
mask = "*!squid@*";
mask = "*!nobody@*";
mask = "*!www-data@*";
mask = "*!cache@*";
mask = "*!CacheFlowS@*";
mask = "*!*@*www*";
mask = "*!*@*proxy*";
mask = "*!*@*cache*";
scanner = "extended";
};
exempt {

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/admin.conf>

Просмотреть файл

@ -1,21 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/auth.conf>
auth {
spoof = "b0unc3.n3tw3rk.1ns3cur1ty.c0rp";
user = "*@100.64.70.75";
class = "bounce_oper";
flags = need_ident, exceed_limit, kline_exempt,
xline_exempt, resv_exempt, can_flood;
};
auth {
spoof = "c0ns0l3.n3tw3rk.1ns3cur1ty.c0rp";
user = "*@100.64.70.34";
class = "console_admin";
flags = need_password, exceed_limit, kline_exempt,
xline_exempt, resv_exempt, can_flood, no_tilde;
};

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/channels.conf>

Просмотреть файл

@ -1,23 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/user.classes.conf>
class {
name = "console_admin";
ping_time = 2 seconds;
number_per_ip_local = 1;
max_number = 10240;
sendq = 1 megabyte;
max_channels = 60;
max_idle = 1000 years;
};
class {
name = "hub";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
};

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/cluster.conf>

Просмотреть файл

@ -1,61 +0,0 @@
/* Configuration example located at
* https://gitedge.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/edge.admin.conf>
.include <hb_conf/edge.auth.conf>
.include <hb_conf/edge.channels.conf>
.include <hb_conf/edge.classes.conf>
.include <hb_conf/edge.cluster.conf>
.include <hb_conf/edge.deny.conf>
.include <hb_conf/edge.exempt.conf>
.include <hb_conf/edge.gecos.conf>
.include <hb_conf/edge.general.conf>
.include <hb_conf/edge.kill.conf>
.include <hb_conf/edge.log.conf>
.include <hb_conf/edge.modules.conf>
.include <hb_conf/edge.motd.conf>
.include <hb_conf/edge.oper.conf>
.include <hb_conf/edge.pseudo.conf>
.include <hb_conf/edge.resv.conf>
.include <hb_conf/edge.services.conf>
.include <hb_conf/edge.shared.conf>
.include <hb_conf/edge.serverhide.conf>
serverinfo {
name = "3dg3.n3tw3rk.1ns3cur1ty.c0rp";
sid = "15X";
description = "n3tw3rk 1ns3cur1ty c0rp0r4t10n 3dg3 upl1nk";
network_name = "𝓷3𝓽𝔀3𝓻𝓴";
network_description = "General-purpose internet relay chat network";
hub = yes;
default_max_clients = 65465;
max_nick_length = 30;
max_topic_length = 192;
};
connect {
name = "hub.n3tw3rk.1ns3cur1ty.c0rp";
host = "100.64.64.26";
port = 7003;
timeout = 1 seconds;
bind = "100.64.64.27";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "hub";
hub_mask = "*";
flags = autoconn;
};
listen {
host = "100.64.65.195"; # Console
port = 6665;
host = "100.64.64.27"; # Hub
port = 7003;
host = "100.64.48.14"; # Public
port = 6667;
host = "2001:470:dc7b:10::2"; # Public IPv6
port = 6667;
};

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/deny.conf>

Просмотреть файл

@ -1,9 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/exempt.conf>
exempt {
ip = "100.64.64.24/29";
};

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/gecos.conf>

Просмотреть файл

@ -1,9 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*
* Note: some of these settings need to remain consistent globally so
* be careful when changing them or just use include/general.conf
*
*/
.include <hb_conf/include/general.conf>

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/kill.conf>

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/log.conf>

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/modules.conf>

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/motd.conf>

Просмотреть файл

@ -1,28 +0,0 @@
#.include <hb_conf/include/oper.conf>
operator {
user = "*@b0unc3.n3tw3rk.1ns3cur1ty.c0rp";
password = "password";
whois = "I'm too lame to read BitchX.doc";
class = "bounce_oper";
umodes = locops, servnotice, wallop, softcallerid, hidden,
invisible, external, debug, rej, skill, hideidle,
wallop, expiration;
flags = admin, connect, connect:remote, die, globops, kill, kill:remote,
kline, module, rehash, restart, set, unkline, unxline, xline;
};
operator {
user = "*@c0ns0l3.n3tw3rk.1ns3cur1ty.c0rp";
password = "password";
whois = "I'm too lame to read BitchX.doc";
class = "console_admin";
umodes = locops, servnotice, wallop, softcallerid, hidden,
invisible, external, debug, rej, skill, hideidle,
wallop, expiration;
flags = admin, connect, connect:remote, die, globops, kill, kill:remote,
kline, module, rehash, restart, set, unkline, unxline, xline;
};

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/pseudo.conf>

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/resv.conf>

Просмотреть файл

@ -1,12 +0,0 @@
/* Configuration example located at
* https://gittor-dmz.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
serverhide {
disable_remote_commands = no;
flatten_links = no;
hidden = yes;
hide_servers = no;
hide_services = no;
hide_server_ips = yes;
};

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/services.conf>

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/shared.conf>

Просмотреть файл

@ -5,15 +5,15 @@
.include <hb_conf/include/auth.conf>
auth {
spoof = "h0pm.n3tw3rk.1ns3cur1ty.c0rp";
user = "*@100.64.64.67";
class = "hopm_oper";
flags = need_password, exceed_limit, kline_exempt, xline_exempt, resv_exempt, can_flood, no_tilde;
spoof = "h0pm.n3tw3rk.1ns3cur1ty.c0rp";
user = "*@100.64.64.67";
class = "hopm_oper";
flags = need_password, exceed_limit, kline_exempt, xline_exempt, resv_exempt, can_flood, no_tilde;
};
auth {
user = "*@*";
class = "general_users";
user = "*@*";
class = "general_users";
};

Просмотреть файл

@ -5,27 +5,27 @@
.include <hb_conf/include/user.classes.conf>
class {
name = "console_admin";
ping_time = 5 seconds;
number_per_ip_local = 1;
max_number = 10240;
sendq = 100 kbytes;
max_channels = 256;
name = "console_admin";
ping_time = 5 seconds;
number_per_ip_local = 1;
max_number = 10240;
sendq = 100 kbytes;
max_channels = 256;
};
class {
name = "hub";
ping_time = 5 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 2 megabytes;
name = "hub";
ping_time = 5 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 2 megabytes;
};
class {
name = "hopm_oper";
ping_time = 5 seconds;
number_per_ip_local = 1;
max_number = 10240;
sendq = 100 kbytes;
max_channels = 256;
name = "hopm_oper";
ping_time = 5 seconds;
number_per_ip_local = 1;
max_number = 10240;
sendq = 100 kbytes;
max_channels = 256;
};

Просмотреть файл

@ -23,56 +23,55 @@
.include <hb_conf/general.serverhide.conf>
serverinfo {
name = "irc.clandestine.network";
sid = "11X";
description = "n3tw3rk 1ns3cur1ty c0rp0r4t10n";
network_name = "𝓷3𝓽𝔀3𝓻𝓴";
network_description = "General-purpose internet relay chat network";
hub = no;
default_max_clients = 65465;
max_nick_length = 30;
max_topic_length = 192;
rsa_private_key_file = "/key.pem";
tls_certificate_file = "/cert.pem";
tls_supported_groups = "X25519:P-256";
tls_cipher_list = "ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA:AES256-SHA";
tls_cipher_suites = "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256";
tls_message_digest_algorithm = "sha256";
name = "irc.clandestine.network";
sid = "11X";
description = "n3tw3rk 1ns3cur1ty c0rp0r4t10n";
network_name = "𝓷3𝓽𝔀3𝓻𝓴";
network_description = "General-purpose internet relay chat network";
hub = no;
default_max_clients = 65465;
max_nick_length = 30;
max_topic_length = 192;
rsa_private_key_file = "/key.pem";
tls_certificate_file = "/cert.pem";
tls_supported_groups = "X25519:P-256";
tls_cipher_list = "ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA:AES256-SHA";
tls_cipher_suites = "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256";
tls_message_digest_algorithm = "sha256";
};
connect {
name = "hub.n3tw3rk.1ns3cur1ty.c0rp";
host = "100.64.64.2";
port = 7000;
timeout = 1 seconds;
bind = "100.64.64.3";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "hub";
hub_mask = "*";
flags = autoconn;
name = "hub.n3tw3rk.1ns3cur1ty.c0rp";
host = "100.64.64.2";
port = 7000;
timeout = 1 seconds;
bind = "100.64.64.3";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "hub";
hub_mask = "*";
flags = autoconn;
};
listen {
host = "100.64.64.66"; # HOPM
port = 6868;
host = "100.64.65.162"; # Console
port = 6665;
host = "100.64.64.3"; # Hub
port = 7000;
flags = defer;
host = "100.64.48.10"; # Public
port = 6667;
flags = defer;
host = "2001:470:dc7b:11::2"; # Public IPv6
port = 6667;
flags = defer, tls;
host = "100.64.48.10"; # Public TLS
port = 6697;
flags = defer, tls;
host = "2001:470:dc7b:11::2"; # Public IPv6 TLS
port = 6697;
host = "100.64.64.66"; # HOPM
port = 6868;
host = "100.64.65.162"; # Console
port = 6665;
host = "100.64.64.3"; # Hub
port = 7000;
flags = defer;
host = "100.64.48.10"; # Public
port = 6667;
flags = defer;
host = "2001:470:dc7b:11::2"; # Public IPv6
port = 6667;
flags = defer, tls;
host = "100.64.48.10"; # Public TLS
port = 6697;
flags = defer, tls;
host = "2001:470:dc7b:11::2"; # Public IPv6 TLS
port = 6697;
};

Просмотреть файл

@ -5,7 +5,7 @@
.include <hb_conf/include/exempt.conf>
exempt {
ip = "100.64.64.0/29";
ip = "100.64.64.0/29";
ip = "100.64.64.64/29";
ip = "100.64.64.67";
};

Просмотреть файл

@ -7,50 +7,50 @@
*/
general {
cycle_on_host_change = yes;
max_accept = 64;
whowas_history_length = 10240;
dline_min_cidr = 16;
dline_min_cidr6 = 48;
kline_min_cidr = 16;
kline_min_cidr6 = 48;
invisible_on_connect = yes;
kill_chase_time_limit = 30 seconds;
disable_auth = no;
default_floodcount = 0;
default_floodtime = 1 second;
failed_oper_notice = no;
specials_in_ident = 2;
min_nonwildcard = 4;
min_nonwildcard_simple = 3;
anti_nick_flood = yes;
max_nick_changes = 4;
max_nick_time = 20 seconds;
away_count = 2;
away_time = 10 seconds;
anti_spam_exit_message_time = 5 minutes;
ts_warn_delta = 3 seconds;
ts_max_delta = 15 seconds;
warn_no_connect_block = yes;
stats_e_disabled = no;
stats_m_oper_only = yes;
stats_o_oper_only = yes;
stats_P_oper_only = yes;
stats_u_oper_only = yes;
stats_i_oper_only = yes;
stats_k_oper_only = yes;
caller_id_wait = 1 minute;
opers_bypass_callerid = no;
pace_wait_simple = 1 second;
pace_wait = 10 seconds;
short_motd = yes;
ping_cookie = no;
no_oper_flood = yes;
max_targets = 4;
oper_only_umodes = cconn, debug, external, farconnect, flood, hidden,
locops, nchange, rej, skill, spy, expiration;
oper_umodes = flood, locops, servnotice, wallop;
throttle_count = 1;
throttle_time = 2 seconds;
cycle_on_host_change = yes;
max_accept = 64;
whowas_history_length = 10240;
dline_min_cidr = 16;
dline_min_cidr6 = 48;
kline_min_cidr = 16;
kline_min_cidr6 = 48;
invisible_on_connect = yes;
kill_chase_time_limit = 30 seconds;
disable_auth = no;
default_floodcount = 0;
default_floodtime = 1 second;
failed_oper_notice = no;
specials_in_ident = 2;
min_nonwildcard = 4;
min_nonwildcard_simple = 3;
anti_nick_flood = yes;
max_nick_changes = 4;
max_nick_time = 20 seconds;
away_count = 2;
away_time = 10 seconds;
anti_spam_exit_message_time = 5 minutes;
ts_warn_delta = 3 seconds;
ts_max_delta = 15 seconds;
warn_no_connect_block = yes;
stats_e_disabled = no;
stats_m_oper_only = yes;
stats_o_oper_only = yes;
stats_P_oper_only = yes;
stats_u_oper_only = yes;
stats_i_oper_only = yes;
stats_k_oper_only = yes;
caller_id_wait = 1 minute;
opers_bypass_callerid = no;
pace_wait_simple = 1 second;
pace_wait = 10 seconds;
short_motd = yes;
ping_cookie = no;
no_oper_flood = yes;
max_targets = 4;
oper_only_umodes = cconn, debug, external, farconnect, flood, hidden,
locops, nchange, rej, skill, spy, expiration;
oper_umodes = flood, locops, servnotice, wallop;
throttle_count = 1;
throttle_time = 2 seconds;
};

Просмотреть файл

@ -11,11 +11,11 @@ kill {
user = "*!*@78.129.202.38";
user = "*!*@207.192.75.252";
user = "*!*@*.mibbit.com";
reason = "mibbit users - please use the proxy-dmz to connect instead: irc.proxy.dmz.clandestine.network on port 6668 or 6698 (TLS.)";
reason = "mibbit users - please use the proxy-dmz to connect instead: irc.proxy.dmz.clandestine.network on port 6668 (non-TLS) or 6698 (TLS)";
};
kill {
user = "*!*@107.161.16.0";
user = "*!*@*.kiwiirc.com";
reason = "kiwiirc users - please use the proxy-dmz to connect instead: irc.proxy.dmz.clandestine.network on port 6668 or 6698 (TLS.)";
reason = "kiwiirc users - please use the proxy-dmz to connect instead: irc.proxy.dmz.clandestine.network on port 6668 (non-TLS) or 6698 (TLS.)";
};

Просмотреть файл

@ -11,6 +11,8 @@ operator {
whois = "I'm too lame to read BitchX.doc";
class = "hopm_oper";
encrypted = no;
umodes = locops, servnotice, wallop, softcallerid, hidden, invisible, external, rej, skill, hideidle, wallop, expiration, cconn;
flags = admin, connect, connect:remote, die, globops, kill, kill:remote, kline, module, rehash, restart, set, unkline, unxline, xline;
umodes = locops, servnotice, wallop, softcallerid, hidden, invisible,
external, rej, skill, hideidle, wallop, expiration, cconn;
flags = admin, connect, connect:remote, die, globops, kill, kill:remote, kline,
module, rehash, restart, set, unkline, unxline, xline;
};

Просмотреть файл

@ -3,11 +3,11 @@
*/
serverhide {
disable_remote_commands = no;
flatten_links = no;
hidden = no;
hide_servers = yes;
hide_services = yes;
hidden_name = "*.clandestine.network";
hide_server_ips = no;
disable_remote_commands = no;
flatten_links = no;
hidden = no;
hide_servers = yes;
hide_services = yes;
hidden_name = "*.clandestine.network";
hide_server_ips = no;
};

Просмотреть файл

@ -6,71 +6,70 @@
class {
name = "bounce_oper";
ping_time = 120 seconds;
number_per_ip_local = 5;
max_number = 5;
sendq = 100 kbytes;
max_channels = 256;
name = "bounce_oper";
ping_time = 120 seconds;
number_per_ip_local = 5;
max_number = 5;
sendq = 100 kbytes;
max_channels = 256;
};
class {
name = "console_admin";
ping_time = 2 seconds;
number_per_ip_local = 1;
max_number = 10240;
sendq = 1 megabyte;
max_channels = 60;
max_idle = 1000 years;
name = "console_admin";
ping_time = 2 seconds;
number_per_ip_local = 1;
max_number = 10240;
sendq = 1 megabyte;
max_channels = 60;
max_idle = 1000 years;
};
class {
name = "tor_edge_hub";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
};
class {
name = "edge_hub";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
name = "tor_edge_hub";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
};
class {
name = "tor_dmz_leaf";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
name = "edge_hub";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
};
class {
name = "proxy_dmz_leaf";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
name = "tor_dmz_leaf";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
};
class {
name = "general_leaf";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
name = "proxy_dmz_leaf";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
};
class {
name = "services_leaf";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
name = "general_leaf";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
};
class {
name = "services_leaf";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
};

Просмотреть файл

@ -23,87 +23,87 @@
.include <hb_conf/hub.serverhide.conf>
serverinfo {
name = "hub.n3tw3rk.1ns3cur1ty.c0rp";
sid = "10X";
description = "n3tw3rk 1ns3cur1ty c0rp0r4t10n";
network_name = "𝓷3𝓽𝔀3𝓻𝓴";
network_description = "General-purpose internet relay chat network";
hub = yes;
default_max_clients = 65465;
max_nick_length = 30;
max_topic_length = 192;
name = "hub.n3tw3rk.1ns3cur1ty.c0rp";
sid = "10X";
description = "n3tw3rk 1ns3cur1ty c0rp0r4t10n";
network_name = "𝓷3𝓽𝔀3𝓻𝓴";
network_description = "General-purpose internet relay chat network";
hub = yes;
default_max_clients = 65465;
max_nick_length = 30;
max_topic_length = 192;
};
connect {
name = "irc.clandestine.network";
host = "100.64.64.3";
port = 7000;
timeout = 1 seconds;
bind = "100.64.64.2";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "general_leaf";
name = "irc.clandestine.network";
host = "100.64.64.3";
port = 7000;
timeout = 1 seconds;
bind = "100.64.64.2";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "general_leaf";
};
connect {
name = "2dhzy4ckmb4gihxsg4jp2li2sb5k2oq6jgxidmeqf3dsqryydhpk7tyd.onion";
host = "100.64.64.11";
port = 7001;
timeout = 1 seconds;
bind = "100.64.64.10";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "tor_dmz_leaf";
name = "2dhzy4ckmb4gihxsg4jp2li2sb5k2oq6jgxidmeqf3dsqryydhpk7tyd.onion";
host = "100.64.64.11";
port = 7001;
timeout = 1 seconds;
bind = "100.64.64.10";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "tor_dmz_leaf";
};
connect {
name = "irc.proxy.dmz.clandestine.network";
host = "100.64.64.19";
port = 7002;
timeout = 1 seconds;
bind = "100.64.64.18";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "proxy_dmz_leaf";
name = "irc.proxy.dmz.clandestine.network";
host = "100.64.64.19";
port = 7002;
timeout = 1 seconds;
bind = "100.64.64.18";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "proxy_dmz_leaf";
};
connect {
name = "3dg3.n3tw3rk.1ns3cur1ty.c0rp";
host = "100.64.64.27";
port = 7003;
timeout = 1 seconds;
bind = "100.64.64.26";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "edge_hub";
name = "3dg3.n3tw3rk.1ns3cur1ty.c0rp";
host = "100.64.64.27";
port = 7003;
timeout = 1 seconds;
bind = "100.64.64.26";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "edge_hub";
};
connect {
name = "t0r-3dg3.n3tw3rk.1ns3cur1ty.c0rp";
host = "100.64.64.59";
port = 7004;
timeout = 1 seconds;
bind = "100.64.64.58";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "tor_edge_hub";
name = "t0r-3dg3.n3tw3rk.1ns3cur1ty.c0rp";
host = "100.64.64.59";
port = 7004;
timeout = 1 seconds;
bind = "100.64.64.58";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "tor_edge_hub";
};
connect {
name = "s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
host = "100.64.64.35";
port = 5555;
timeout = 1 seconds;
bind = "100.64.64.34";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "edge_hub";
name = "s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
host = "100.64.64.35";
port = 5555;
timeout = 1 seconds;
bind = "100.64.64.34";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "edge_hub";
};
listen {
@ -123,6 +123,5 @@ listen {
port = 7003;
host = "100.64.64.58"; # Tor Edge
port = 7004;
};

Просмотреть файл

@ -5,6 +5,6 @@
.include <hb_conf/include/deny.conf>
deny {
ip = "0.0.0.0/8";
reason = "you are forbidden from connecting to this network";
ip = "0.0.0.0/8";
reason = "you are forbidden from connecting to this network";
};

Просмотреть файл

@ -5,7 +5,7 @@
.include <hb_conf/include/exempt.conf>
exempt {
ip = "100.64.64.0/29";
ip = "100.64.64.0/29";
ip = "100.64.64.8/29";
ip = "100.64.64.16/29";
ip = "100.64.64.24/29";

Просмотреть файл

@ -7,50 +7,50 @@
*/
general {
cycle_on_host_change = yes;
max_accept = 64;
whowas_history_length = 10240;
dline_min_cidr = 16;
dline_min_cidr6 = 48;
kline_min_cidr = 16;
kline_min_cidr6 = 48;
invisible_on_connect = yes;
kill_chase_time_limit = 30 seconds;
disable_auth = no;
default_floodcount = 256;
default_floodtime = 1 second;
failed_oper_notice = no;
specials_in_ident = 2;
min_nonwildcard = 4;
min_nonwildcard_simple = 3;
anti_nick_flood = yes;
max_nick_changes = 4;
max_nick_time = 20 seconds;
away_count = 2;
away_time = 10 seconds;
anti_spam_exit_message_time = 5 minutes;
ts_warn_delta = 3 seconds;
ts_max_delta = 15 seconds;
warn_no_connect_block = yes;
stats_e_disabled = no;
stats_m_oper_only = yes;
stats_o_oper_only = yes;
stats_P_oper_only = yes;
stats_u_oper_only = yes;
stats_i_oper_only = yes;
stats_k_oper_only = yes;
caller_id_wait = 1 minute;
opers_bypass_callerid = yes;
pace_wait_simple = 1 second;
pace_wait = 10 seconds;
short_motd = yes;
ping_cookie = no;
no_oper_flood = yes;
max_targets = 4;
oper_only_umodes = cconn, debug, external, farconnect, flood, hidden,
locops, nchange, rej, skill, spy, expiration;
oper_umodes = flood, locops, servnotice, wallop;
throttle_count = 1;
throttle_time = 2 seconds;
cycle_on_host_change = yes;
max_accept = 64;
whowas_history_length = 10240;
dline_min_cidr = 16;
dline_min_cidr6 = 48;
kline_min_cidr = 16;
kline_min_cidr6 = 48;
invisible_on_connect = yes;
kill_chase_time_limit = 30 seconds;
disable_auth = no;
default_floodcount = 256;
default_floodtime = 1 second;
failed_oper_notice = no;
specials_in_ident = 2;
min_nonwildcard = 4;
min_nonwildcard_simple = 3;
anti_nick_flood = yes;
max_nick_changes = 4;
max_nick_time = 20 seconds;
away_count = 2;
away_time = 10 seconds;
anti_spam_exit_message_time = 5 minutes;
ts_warn_delta = 3 seconds;
ts_max_delta = 15 seconds;
warn_no_connect_block = yes;
stats_e_disabled = no;
stats_m_oper_only = yes;
stats_o_oper_only = yes;
stats_P_oper_only = yes;
stats_u_oper_only = yes;
stats_i_oper_only = yes;
stats_k_oper_only = yes;
caller_id_wait = 1 minute;
opers_bypass_callerid = yes;
pace_wait_simple = 1 second;
pace_wait = 10 seconds;
short_motd = yes;
ping_cookie = no;
no_oper_flood = yes;
max_targets = 4;
oper_only_umodes = cconn, debug, external, farconnect, flood, hidden,
locops, nchange, rej, skill, spy, expiration;
oper_umodes = flood, locops, servnotice, wallop;
throttle_count = 1;
throttle_time = 2 seconds;
};

Просмотреть файл

@ -13,11 +13,11 @@ operator {
invisible, external, debug, rej, skill, hideidle,
wallop, expiration;
flags = admin, connect, connect:remote, die, globops, kill, kill:remote,
kline, module, rehash, rehash:remote, restart, set, unkline, unxline, xline;
kline, module, rehash, rehash:remote, restart, set, unkline, unxline, xline;
};
operator {
name = "internal_hub_operator";
name = "admin";
user = "*@c0ns0l3.n3tw3rk.1ns3cur1ty.c0rp";
password = "password";
whois = "I'm too lame to read BitchX.doc";
@ -28,5 +28,5 @@ operator {
wallop, expiration;
flags = admin, connect, connect:remote, die, globops, kill, kill:remote,
kline, module, rehash, restart, set, unkline, unxline, xline;
kline, module, rehash, restart, set, unkline, unxline, xline;
};

Просмотреть файл

@ -3,10 +3,10 @@
*/
serverhide {
disable_remote_commands = no;
flatten_links = no;
hidden = yes;
hide_servers = no;
hide_services = no;
hide_server_ips = no;
disable_remote_commands = no;
flatten_links = no;
hidden = yes;
hide_servers = no;
hide_services = no;
hide_server_ips = no;
};

Просмотреть файл

@ -3,7 +3,7 @@
*/
admin {
name = "";
description = "𝓪𝓭𝓶𝓲𝓷";
email = "<>";
name = "";
description = "𝓪𝓭𝓶𝓲𝓷";
email = "<>";
};

Просмотреть файл

@ -4,23 +4,23 @@
*/
channel {
enable_extbans = yes;
disable_fake_channels = yes;
invite_client_count = 4;
invite_client_time = 5 minutes;
invite_delay_channel = 5 seconds;
invite_expire_time = 1 hour;
knock_client_count = 4;
knock_client_time = 5 minutes;
knock_delay_channel = 1 minute;
/*
* max_channels: the maximum number of channels a user can join/be on.
* This is a default value which can be overriden with class {} blocks.
*/
max_channels = 256;
max_invites = 256;
max_bans = 256;
max_bans_large = 512;
default_join_flood_count = 16;
default_join_flood_time = 6 seconds;
enable_extbans = yes;
disable_fake_channels = yes;
invite_client_count = 4;
invite_client_time = 5 minutes;
invite_delay_channel = 5 seconds;
invite_expire_time = 1 hour;
knock_client_count = 4;
knock_client_time = 5 minutes;
knock_delay_channel = 1 minute;
/*
* max_channels: the maximum number of channels a user can join/be on.
* This is a default value which can be overriden with class {} blocks.
*/
max_channels = 256;
max_invites = 256;
max_bans = 256;
max_bans_large = 512;
default_join_flood_count = 16;
default_join_flood_time = 6 seconds;
};

Просмотреть файл

@ -3,6 +3,6 @@
*/
cluster {
name = "*";
type = all;
name = "*";
type = all;
};

Просмотреть файл

@ -4,160 +4,160 @@
*/
deny {
ip = "10.0.0.0/8";
reason = "Unclassified (ARPANET)";
ip = "10.0.0.0/8";
reason = "Unclassified (ARPANET)";
};
deny {
ip = "100.64.0.0/10";
reason = "Unclassified (CGNAT)";
ip = "100.64.0.0/10";
reason = "Unclassified (CGNAT)";
};
deny {
ip = "172.16.0.0/12";
reason = "Unclassified (private network)";
ip = "172.16.0.0/12";
reason = "Unclassified (private network)";
};
deny {
ip = "192.0.0.0/24";
reason = "Unclassified (private network)";
ip = "192.0.0.0/24";
reason = "Unclassified (private network)";
};
deny {
ip = "192.0.2.0/24";
reason = "Unclassified (TEST-NET-1)";
ip = "192.0.2.0/24";
reason = "Unclassified (TEST-NET-1)";
};
deny {
ip = "192.88.99.0/24";
reason = "Unclassified (6-to-4)";
ip = "192.88.99.0/24";
reason = "Unclassified (6-to-4)";
};
deny {
ip = "192.168.0.0/16";
reason = "Unclassified (private network)";
ip = "192.168.0.0/16";
reason = "Unclassified (private network)";
};
deny {
ip = "100.64.0.0/15";
reason = "Unclassified (benchmarking)";
ip = "100.64.0.0/15";
reason = "Unclassified (benchmarking)";
};
deny {
ip = "198.51.100.0/24";
reason = "Unclassified (TEST-NET-2)";
ip = "198.51.100.0/24";
reason = "Unclassified (TEST-NET-2)";
};
deny {
ip = "203.0.113.0/24";
reason = "Unclassified (TEST-NET-3)";
ip = "203.0.113.0/24";
reason = "Unclassified (TEST-NET-3)";
};
deny {
ip = "127.0.0.0/8";
reason = "Unclassified (loop-back)";
ip = "127.0.0.0/8";
reason = "Unclassified (loop-back)";
};
deny {
ip = "169.254.0.0/8";
reason = "Unclassified (link-local)";
ip = "169.254.0.0/8";
reason = "Unclassified (link-local)";
};
deny {
ip = "224.0.0.0/3";
reason = "Unclassified (multi-cast/future-use/limited broadcast)";
ip = "224.0.0.0/3";
reason = "Unclassified (multi-cast/future-use/limited broadcast)";
};
deny {
ip = "6.0.0.0/7";
reason = "You are forbidden from connecting to this network (AIS/DoD)";
ip = "6.0.0.0/7";
reason = "You are forbidden from connecting to this network (AIS/DoD)";
};
deny {
ip = "11.0.0.0/8";
reason = "You are forbidden from connecting to this network (DoD)";
ip = "11.0.0.0/8";
reason = "You are forbidden from connecting to this network (DoD)";
};
deny {
ip = "21.0.0.0/7";
reason = "You are forbidden from connecting to this network (DoD)";
ip = "21.0.0.0/7";
reason = "You are forbidden from connecting to this network (DoD)";
};
deny {
ip = "26.0.0.0/8";
reason = "You are forbidden from connecting to this network (DoD)";
ip = "26.0.0.0/8";
reason = "You are forbidden from connecting to this network (DoD)";
};
deny {
ip = "28.0.0.0/7";
reason = "You are forbidden from connecting to this network (DoD)";
ip = "28.0.0.0/7";
reason = "You are forbidden from connecting to this network (DoD)";
};
deny {
ip = "30.0.0.0/8";
reason = "You are forbidden from connecting to this network (DoD)";
ip = "30.0.0.0/8";
reason = "You are forbidden from connecting to this network (DoD)";
};
deny {
ip = "33.0.0.0/8";
reason = "You are forbidden from connecting to this network (DoD)";
ip = "33.0.0.0/8";
reason = "You are forbidden from connecting to this network (DoD)";
};
deny {
ip = "55.0.0.0/7";
reason = "You are forbidden from connecting to this network (DoD/US Postal)";
ip = "55.0.0.0/7";
reason = "You are forbidden from connecting to this network (DoD/US Postal)";
};
deny {
ip = "214.0.0.0/7";
reason = "You are forbidden from connecting to this network (DoD)";
ip = "214.0.0.0/7";
reason = "You are forbidden from connecting to this network (DoD)";
};
deny {
ip = "::1/128";
reason = "Unclassified (loop-back)";
ip = "::1/128";
reason = "Unclassified (loop-back)";
};
deny {
ip = "::ffff:0:0/96";
reason = "Unclassified (IPv4 Mapped)";
ip = "::ffff:0:0/96";
reason = "Unclassified (IPv4 Mapped)";
};
deny {
ip = "::ffff:0:0:0/96";
reason = "Unclassified (IPv4 translated)";
ip = "::ffff:0:0:0/96";
reason = "Unclassified (IPv4 translated)";
};
deny {
ip = "64:ff9b::/96";
reason = "Unclassified (Global IPv4 translated)";
ip = "64:ff9b::/96";
reason = "Unclassified (Global IPv4 translated)";
};
deny {
ip = "100::/64";
reason = "Unclassified (null-routed/discard)";
ip = "100::/64";
reason = "Unclassified (null-routed/discard)";
};
deny {
ip = "2001:20::/28";
reason = "Unclassified (ORCHIDv2)";
ip = "2001:20::/28";
reason = "Unclassified (ORCHIDv2)";
};
deny {
ip = "2001:db8::/32";
reason = "Unclassified (documentation/example)";
ip = "2001:db8::/32";
reason = "Unclassified (documentation/example)";
};
deny {
ip = "2002::/16";
reason = "Unclassified (deprecated 6-to-4)";
ip = "2002::/16";
reason = "Unclassified (deprecated 6-to-4)";
};
deny {
ip = "fc00::/7";
reason = "Unclassified (ULA)";
ip = "fc00::/7";
reason = "Unclassified (ULA)";
};
deny {
ip = "fe80::/10";
reason = "Unclassified (link-local)";
ip = "fe80::/10";
reason = "Unclassified (link-local)";
};

Просмотреть файл

@ -3,11 +3,11 @@
*/
gecos {
name = "*sex*";
reason = "Possible sexbot, if you have found this in error please change your GECOS and re-connect";
name = "*sex*";
reason = "your GECOS is banned";
};
gecos {
name = "sub7server";
reason = "sub7 is forbidden here, come back when you have back oriface 2000 figured out";
name = "sub7server";
reason = "your GECOS is banned";
};

Просмотреть файл

@ -3,50 +3,50 @@
*/
general {
cycle_on_host_change = yes;
max_accept = 64;
whowas_history_length = 10240;
dline_min_cidr = 16;
dline_min_cidr6 = 48;
kline_min_cidr = 16;
kline_min_cidr6 = 48;
invisible_on_connect = yes;
kill_chase_time_limit = 30 seconds;
disable_auth = yes;
default_floodcount = 100000;
default_floodtime = 1 second;
failed_oper_notice = no;
specials_in_ident = 2;
min_nonwildcard = 4;
min_nonwildcard_simple = 3;
anti_nick_flood = yes;
max_nick_changes = 4;
max_nick_time = 20 seconds;
away_count = 2;
away_time = 10 seconds;
anti_spam_exit_message_time = 5 minutes;
ts_warn_delta = 3 seconds;
ts_max_delta = 15 seconds;
warn_no_connect_block = yes;
stats_e_disabled = yes;
stats_m_oper_only = yes;
stats_o_oper_only = yes;
stats_P_oper_only = yes;
stats_u_oper_only = yes;
stats_i_oper_only = yes;
stats_k_oper_only = yes;
caller_id_wait = 1 minute;
opers_bypass_callerid = no;
pace_wait_simple = 1 second;
pace_wait = 10 seconds;
short_motd = yes;
ping_cookie = no;
no_oper_flood = yes;
max_targets = 4;
oper_only_umodes = cconn, debug, external, farconnect, flood, hidden,
locops, nchange, rej, skill, spy, expiration;
oper_umodes = flood, locops, servnotice, wallop;
throttle_count = 1;
throttle_time = 2 seconds;
cycle_on_host_change = yes;
max_accept = 64;
whowas_history_length = 10240;
dline_min_cidr = 16;
dline_min_cidr6 = 48;
kline_min_cidr = 16;
kline_min_cidr6 = 48;
invisible_on_connect = yes;
kill_chase_time_limit = 30 seconds;
disable_auth = yes;
default_floodcount = 100000;
default_floodtime = 1 second;
failed_oper_notice = no;
specials_in_ident = 2;
min_nonwildcard = 4;
min_nonwildcard_simple = 3;
anti_nick_flood = yes;
max_nick_changes = 4;
max_nick_time = 20 seconds;
away_count = 2;
away_time = 10 seconds;
anti_spam_exit_message_time = 5 minutes;
ts_warn_delta = 3 seconds;
ts_max_delta = 15 seconds;
warn_no_connect_block = yes;
stats_e_disabled = yes;
stats_m_oper_only = yes;
stats_o_oper_only = yes;
stats_P_oper_only = yes;
stats_u_oper_only = yes;
stats_i_oper_only = yes;
stats_k_oper_only = yes;
caller_id_wait = 1 minute;
opers_bypass_callerid = no;
pace_wait_simple = 1 second;
pace_wait = 10 seconds;
short_motd = yes;
ping_cookie = no;
no_oper_flood = yes;
max_targets = 4;
oper_only_umodes = cconn, debug, external, farconnect, flood, hidden,
locops, nchange, rej, skill, spy, expiration;
oper_umodes = flood, locops, servnotice, wallop;
throttle_count = 1;
throttle_time = 2 seconds;
};

Просмотреть файл

@ -3,6 +3,6 @@
*/
kill {
user = "*@*.gov";
reason = "you are forbidden from connecting to this network";
user = "*@*.gov";
reason = "you are forbidden from connecting to this network";
};

Просмотреть файл

@ -1,3 +1,3 @@
log {
use_logging = yes;
use_logging = yes;
};

Просмотреть файл

@ -3,8 +3,8 @@
*/
modules {
path = "lib/ircd-hybrid/modules";
path = "lib/ircd-hybrid/modules/extra";
path = "lib/ircd-hybrid/modules/autoload";
path = "lib/ircd-hybrid/modules";
path = "lib/ircd-hybrid/modules/extra";
path = "lib/ircd-hybrid/modules/autoload";
};

Просмотреть файл

@ -3,6 +3,6 @@
*/
motd {
mask = "*";
file = "/usr/local/ircd/etc/hb_conf/include/insecurity.motd";
mask = "*";
file = "/usr/local/ircd/etc/hb_conf/include/insecurity.motd";
};

Просмотреть файл

@ -3,80 +3,80 @@
*/
pseudo {
command = "IDENTIFY";
prepend = "IDENTIFY ";
name = "NICKSERV";
target = "NICKSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
command = "IDENTIFY";
prepend = "IDENTIFY ";
name = "NICKSERV";
target = "NICKSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
};
pseudo {
command = "CHANSERV";
name = "CHANSERV";
target = "CHANSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
command = "CHANSERV";
name = "CHANSERV";
target = "CHANSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
};
pseudo {
command = "CS";
name = "CHANSERV";
target = "CHANSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
command = "CS";
name = "CHANSERV";
target = "CHANSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
};
pseudo {
command = "NICKSERV";
name = "NICKSERV";
target = "NICKSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
command = "NICKSERV";
name = "NICKSERV";
target = "NICKSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
};
pseudo {
command = "NS";
name = "NICKSERV";
target = "NICKSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
command = "NS";
name = "NICKSERV";
target = "NICKSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
};
pseudo {
command = "MEMOSERV";
name = "MEMOSERV";
target = "MEMOSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
command = "MEMOSERV";
name = "MEMOSERV";
target = "MEMOSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
};
pseudo {
command = "MS";
name = "MEMOSERV";
target = "MEMOSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
command = "MS";
name = "MEMOSERV";
target = "MEMOSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
};
pseudo {
command = "OPERSERV";
name = "OPERSERV";
target = "OPERSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
command = "OPERSERV";
name = "OPERSERV";
target = "OPERSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
};
pseudo {
command = "OS";
name = "OPERSERV";
target = "OPERSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
command = "OS";
name = "OPERSERV";
target = "OPERSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
};
pseudo {
command = "HOSTSERV";
name = "HOSTSERV";
target = "HOSTSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
command = "HOSTSERV";
name = "HOSTSERV";
target = "HOSTSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
};
pseudo {
command = "HS";
name = "HOSTSERV";
target = "HOSTSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
command = "HS";
name = "HOSTSERV";
target = "HOSTSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
};
pseudo {
command = "BOTSERV";
name = "BOTSERV";
target = "BOTSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
command = "BOTSERV";
name = "BOTSERV";
target = "BOTSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
};
pseudo {
command = "BS";
name = "BOTSERV";
target = "BOTSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
command = "BS";
name = "BOTSERV";
target = "BOTSERV@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
};

Просмотреть файл

@ -3,27 +3,27 @@
*/
resv {
mask = "&partyline";
reason = "It's mine and you can't use it";
exempt = "*@b0unc3.n3tw3rk.1ns3cur1ty.c0rp";
exempt = "*@c0ns0l3.n3tw3rk.1ns3cur1ty.c0rp";
mask = "&partyline";
reason = "It's mine and you can't use it";
exempt = "*@b0unc3.n3tw3rk.1ns3cur1ty.c0rp";
exempt = "*@c0ns0l3.n3tw3rk.1ns3cur1ty.c0rp";
};
resv {
mask = "#partyline";
reason = "It's mine and you can't use it";
exempt = "*@b0unc3.n3tw3rk.1ns3cur1ty.c0rp";
exempt = "*@c0ns0l3.n3tw3rk.1ns3cur1ty.c0rp";
exempt = "*@0p3r.n3tw3rk.1ns3cur1ty.c0rp";
mask = "#partyline";
reason = "It's mine and you can't use it";
exempt = "*@b0unc3.n3tw3rk.1ns3cur1ty.c0rp";
exempt = "*@c0ns0l3.n3tw3rk.1ns3cur1ty.c0rp";
exempt = "*@0p3r.n3tw3rk.1ns3cur1ty.c0rp";
};
resv {
mask = "#services";
reason = "It's mine and you can't use it";
exempt = "*@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
exempt = "*@b0unc3.n3tw3rk.1ns3cur1ty.c0rp";
exempt = "*@c0ns0l3.n3tw3rk.1ns3cur1ty.c0rp";
exempt = "SVC@n3tw3rk.1ns3cur1ty.c0rp";
mask = "#services";
reason = "It's mine and you can't use it";
exempt = "*@s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
exempt = "*@b0unc3.n3tw3rk.1ns3cur1ty.c0rp";
exempt = "*@c0ns0l3.n3tw3rk.1ns3cur1ty.c0rp";
exempt = "SVC@n3tw3rk.1ns3cur1ty.c0rp";
};
resv {

Просмотреть файл

@ -3,11 +3,11 @@
*/
serverhide {
disable_remote_commands = no;
flatten_links = no;
hidden = no;
hide_servers = yes;
hide_services = yes;
hidden_name = "*.your.real-dns.name";
hide_server_ips = yes;
disable_remote_commands = no;
flatten_links = no;
hidden = no;
hide_servers = yes;
hide_services = yes;
hidden_name = "*.your.real-dns.name";
hide_server_ips = yes;
};

Просмотреть файл

@ -3,8 +3,7 @@
*/
service {
name = "s3rv1c3z.n3tw3rk.1ns3cur1ty.c0rp";
name = "1ns3c.ur1.ty";
name = "1ns3c.ur1.ty";
};

Просмотреть файл

@ -2,7 +2,7 @@
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
shared {
name = "hub.n3tw3rk.1ns3cur1ty.c0rp";
user = "*@b0unc3.n3tw3rk.1ns3cur1ty.c0rp";
type = all;
name = "hub.n3tw3rk.1ns3cur1ty.c0rp";
user = "*@b0unc3.n3tw3rk.1ns3cur1ty.c0rp";
type = all;
};

Просмотреть файл

@ -3,62 +3,62 @@
*/
class {
name = "general_users";
ping_time = 120 seconds;
number_per_ip_local = 4;
number_per_ip_global = 8;
max_number = 1024000;
cidr_bitlen_ipv4 = 24;
cidr_bitlen_ipv6 = 120;
number_per_cidr = 16;
sendq = 100 kbytes;
name = "general_users";
ping_time = 120 seconds;
number_per_ip_local = 4;
number_per_ip_global = 8;
max_number = 1024000;
cidr_bitlen_ipv4 = 24;
cidr_bitlen_ipv6 = 120;
number_per_cidr = 16;
sendq = 100 kbytes;
};
class {
name = "tor_dmz_users";
ping_time = 15 seconds;
number_per_ip_local = 1024;
number_per_ip_global = 10240;
max_number = 1024000;
cidr_bitlen_ipv4 = 24;
cidr_bitlen_ipv6 = 120;
number_per_cidr = 16;
sendq = 100 kbytes;
flags = hide_idle_from_opers;
name = "tor_dmz_users";
ping_time = 15 seconds;
number_per_ip_local = 1024;
number_per_ip_global = 10240;
max_number = 1024000;
cidr_bitlen_ipv4 = 24;
cidr_bitlen_ipv6 = 120;
number_per_cidr = 16;
sendq = 100 kbytes;
flags = hide_idle_from_opers;
};
class {
name = "mibbit_dmz_users";
ping_time = 120 seconds;
number_per_ip_local = 1024;
number_per_ip_global = 10240;
max_number = 1024000;
cidr_bitlen_ipv4 = 24;
cidr_bitlen_ipv6 = 120;
number_per_cidr = 16;
sendq = 100 kbytes;
name = "mibbit_dmz_users";
ping_time = 120 seconds;
number_per_ip_local = 1024;
number_per_ip_global = 10240;
max_number = 1024000;
cidr_bitlen_ipv4 = 24;
cidr_bitlen_ipv6 = 120;
number_per_cidr = 16;
sendq = 100 kbytes;
};
class {
name = "kiwiirc_dmz_users";
ping_time = 120 seconds;
number_per_ip_local = 1024;
number_per_ip_global = 10240;
max_number = 1024000;
cidr_bitlen_ipv4 = 24;
cidr_bitlen_ipv6 = 120;
number_per_cidr = 16;
sendq = 100 kbytes;
name = "kiwiirc_dmz_users";
ping_time = 120 seconds;
number_per_ip_local = 1024;
number_per_ip_global = 10240;
max_number = 1024000;
cidr_bitlen_ipv4 = 24;
cidr_bitlen_ipv6 = 120;
number_per_cidr = 16;
sendq = 100 kbytes;
};
class {
name = "proxy_dmz_users";
ping_time = 15 seconds;
number_per_ip_local = 4;
number_per_ip_global = 8;
max_number = 1024000;
cidr_bitlen_ipv4 = 24;
cidr_bitlen_ipv6 = 120;
number_per_cidr = 16;
sendq = 100 kbytes;
name = "proxy_dmz_users";
ping_time = 15 seconds;
number_per_ip_local = 4;
number_per_ip_global = 8;
max_number = 1024000;
cidr_bitlen_ipv4 = 24;
cidr_bitlen_ipv6 = 120;
number_per_cidr = 16;
sendq = 100 kbytes;
};

Просмотреть файл

@ -5,24 +5,24 @@
.include <hb_conf/include/auth.conf>
auth {
spoof = "m1bb1t.dmz.n3tw3rk.1ns3cur1ty.c0rp";
user = "*!*@*.mibbit.com";
user = "*!*@109.169.29.95";
user = "*!*@64.62.228.82";
user = "*!*@78.129.202.38";
user = "*!*@207.192.75.252";
class = "mibbit_dmz_users";
spoof = "m1bb1t.dmz.n3tw3rk.1ns3cur1ty.c0rp";
user = "*!*@*.mibbit.com";
user = "*!*@109.169.29.95";
user = "*!*@64.62.228.82";
user = "*!*@78.129.202.38";
user = "*!*@207.192.75.252";
class = "mibbit_dmz_users";
};
auth {
spoof = "k1w11rc.dmz.n3tw3rk.1ns3cur1ty.c0rp";
user = "*!*@*.kiwiirc.com";
user = "*!*@107.161.16.0";
class = "kiwiirc_dmz_users";
spoof = "k1w11rc.dmz.n3tw3rk.1ns3cur1ty.c0rp";
user = "*!*@*.kiwiirc.com";
user = "*!*@107.161.16.0";
class = "kiwiirc_dmz_users";
};
auth {
spoof = "pr0xy.dmz.n3tw3rk.1ns3cur1ty.c0rp";
user = "*@*";
class = "proxy_dmz_users";
spoof = "pr0xy.dmz.n3tw3rk.1ns3cur1ty.c0rp";
user = "*@*";
class = "proxy_dmz_users";
};

Просмотреть файл

@ -5,19 +5,19 @@
.include <hb_conf/include/user.classes.conf>
class {
name = "console_admin";
ping_time = 2 seconds;
number_per_ip_local = 1;
max_number = 10240;
sendq = 1 megabyte;
max_channels = 60;
max_idle = 1000 years;
name = "console_admin";
ping_time = 2 seconds;
number_per_ip_local = 1;
max_number = 10240;
sendq = 1 megabyte;
max_channels = 60;
max_idle = 1000 years;
};
class {
name = "hub";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
name = "hub";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
};

Просмотреть файл

@ -23,15 +23,15 @@
.include <hb_conf/proxy-dmz.serverhide.conf>
serverinfo {
name = "irc.proxy.dmz.clandestine.network";
sid = "12X";
description = "n3tw3rk 1ns3cur1ty c0rp0r4t10n pr0xy dmz";
network_name = "𝓷3𝓽𝔀3𝓻𝓴";
network_description = "General-purpose internet relay chat network";
hub = no;
default_max_clients = 65465;
max_nick_length = 30;
max_topic_length = 192;
name = "irc.proxy.dmz.clandestine.network";
sid = "12X";
description = "n3tw3rk 1ns3cur1ty c0rp0r4t10n pr0xy dmz";
network_name = "𝓷3𝓽𝔀3𝓻𝓴";
network_description = "General-purpose internet relay chat network";
hub = no;
default_max_clients = 65465;
max_nick_length = 30;
max_topic_length = 192;
rsa_private_key_file = "/key.pem";
tls_certificate_file = "/cert.pem";
tls_supported_groups = "X25519:P-256";
@ -41,30 +41,30 @@ serverinfo {
};
connect {
name = "hub.n3tw3rk.1ns3cur1ty.c0rp";
host = "100.64.64.18";
port = 7002;
timeout = 1 seconds;
bind = "100.64.64.19";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "hub";
hub_mask = "*";
flags = autoconn;
name = "hub.n3tw3rk.1ns3cur1ty.c0rp";
host = "100.64.64.18";
port = 7002;
timeout = 1 seconds;
bind = "100.64.64.19";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "hub";
hub_mask = "*";
flags = autoconn;
};
listen {
host = "100.64.65.226"; # Console
port = 6665;
host = "100.64.64.19"; # Hub
port = 7000;
flags = defer;
host = "100.64.48.18"; # Public Incoming
port = 6667;
flags = defer, tls;
host = "100.64.48.18"; # Public TLS
port = 6697;
host = "100.64.65.226"; # Console
port = 6665;
host = "100.64.64.19"; # Hub
port = 7000;
flags = defer;
host = "100.64.48.18"; # Public Incoming
port = 6667;
flags = defer, tls;
host = "100.64.48.18"; # Public TLS
port = 6697;
};

Просмотреть файл

@ -5,5 +5,5 @@
.include <hb_conf/include/exempt.conf>
exempt {
ip = "100.64.64.16/29";
ip = "100.64.64.16/29";
};

Просмотреть файл

@ -3,11 +3,11 @@
*/
serverhide {
disable_remote_commands = no;
flatten_links = no;
hidden = no;
hide_servers = yes;
hide_services = yes;
hidden_name = "*.clandestine.network";
hide_server_ips = no;
disable_remote_commands = no;
flatten_links = no;
hidden = no;
hide_servers = yes;
hide_services = yes;
hidden_name = "*.clandestine.network";
hide_server_ips = no;
};

Просмотреть файл

@ -5,7 +5,7 @@
.include <hb_conf/include/auth.conf>
auth {
user = "*@*";
class = "tor_dmz_users";
spoof = "t0r.dmz.n3tw3rk.1ns3cur1ty.c0rp";
user = "*@*";
class = "tor_dmz_users";
spoof = "t0r.dmz.n3tw3rk.1ns3cur1ty.c0rp";
};

Просмотреть файл

@ -5,19 +5,19 @@
.include <hb_conf/include/user.classes.conf>
class {
name = "console_admin";
ping_time = 2 seconds;
number_per_ip_local = 1;
max_number = 10240;
sendq = 1 megabyte;
max_channels = 60;
max_idle = 1000 years;
name = "console_admin";
ping_time = 2 seconds;
number_per_ip_local = 1;
max_number = 10240;
sendq = 1 megabyte;
max_channels = 60;
max_idle = 1000 years;
};
class {
name = "hub";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
name = "hub";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
};

Просмотреть файл

@ -23,27 +23,27 @@
.include <hb_conf/tor-dmz.serverhide.conf>
serverinfo {
name = "2dhzy4ckmb4gihxsg4jp2li2sb5k2oq6jgxidmeqf3dsqryydhpk7tyd.onion";
sid = "13X";
description = "n3tw3rk 1ns3cur1ty c0rp0r4t10n t0r dmz";
network_name = "𝓷3𝓽𝔀3𝓻𝓴";
network_description = "General-purpose internet relay chat network";
hub = no;
default_max_clients = 65465;
max_nick_length = 30;
max_topic_length = 192;
name = "2dhzy4ckmb4gihxsg4jp2li2sb5k2oq6jgxidmeqf3dsqryydhpk7tyd.onion";
sid = "13X";
description = "n3tw3rk 1ns3cur1ty c0rp0r4t10n t0r dmz";
network_name = "𝓷3𝓽𝔀3𝓻𝓴";
network_description = "General-purpose internet relay chat network";
hub = no;
default_max_clients = 65465;
max_nick_length = 30;
max_topic_length = 192;
};
connect {
name = "hub.n3tw3rk.1ns3cur1ty.c0rp";
host = "100.64.64.10";
port = 7001;
timeout = 1 seconds;
bind = "100.64.64.11";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "hub";
name = "hub.n3tw3rk.1ns3cur1ty.c0rp";
host = "100.64.64.10";
port = 7001;
timeout = 1 seconds;
bind = "100.64.64.11";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "hub";
hub_mask = "*";
flags = autoconn;
};

Просмотреть файл

@ -5,7 +5,7 @@
.include <hb_conf/include/exempt.conf>
exempt {
ip = "100.64.65.2";
ip = "100.64.65.2";
ip = "100.64.65.10";
};

Просмотреть файл

@ -2,87 +2,4 @@
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
modules {
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_accept.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_admin.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_away.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_cap.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_capab.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_certfp.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_close.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_connect.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_dline.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_encap.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_eob.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_etrace.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_globops.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_hash.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_help.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_info.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_invite.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_ison.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_kline.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_knock.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_links.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_list.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_locops.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_lusers.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_map.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_metadata.la";
# path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_module.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_monitor.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_motd.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_names.la";
# path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_oper.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_pass.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_ping.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_pong.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_post.la";
#path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_rehash.la";
#path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_restart.la";
# path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_resv.la";
#path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_set.la";
# path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_stats.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_svinfo.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_svsaccount.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_svshost.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_svsjoin.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_svskill.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_svsmode.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_svsnick.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_svspart.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_svstag.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_tburst.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_time.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_topic.la";
#path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_trace.la";
#path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_undline.la";
#path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_unkline.la";
#path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_unresv.la";
#path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_unxline.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_user.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_userhost.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_version.la";
#path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_wallops.la";
# path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_webirc.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_who.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_whois.la";
# path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_whowas.la";
#path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload/m_xline.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/extra/m_opme.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/m_bmask.la";
#path = "/usr/local/ircd/lib/ircd-hybrid/modules/m_die.la";
#path = "/usr/local/ircd/lib/ircd-hybrid/modules/m_error.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/m_join.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/m_kick.la";
# path = "/usr/local/ircd/lib/ircd-hybrid/modules/m_kill.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/m_message.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/m_mode.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/m_nick.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/m_part.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/m_quit.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/m_server.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/m_sjoin.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/m_squit.la";
path = "/usr/local/ircd/lib/ircd-hybrid/modules/m_tmode.la";
};
.include <hb_conf/include/modules.conf>

Просмотреть файл

@ -3,11 +3,11 @@
*/
serverhide {
disable_remote_commands = no;
flatten_links = no;
hidden = no;
hide_servers = yes;
hide_services = yes;
hidden_name = "kir2yhtaj62d6tfyrbc6xdopc2ltkmcztl3t4wqxxtlyxe7s3jng6did.onion";
hide_server_ips = no;
disable_remote_commands = no;
flatten_links = no;
hidden = no;
hide_servers = yes;
hide_services = yes;
hidden_name = "kir2yhtaj62d6tfyrbc6xdopc2ltkmcztl3t4wqxxtlyxe7s3jng6did.onion";
hide_server_ips = no;
};

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/admin.conf>

Просмотреть файл

@ -1,21 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/auth.conf>
auth {
spoof = "b0unc3.n3tw3rk.1ns3cur1ty.c0rp";
user = "*@100.64.70.75";
class = "bounce_oper";
flags = need_ident, exceed_limit, kline_exempt,
xline_exempt, resv_exempt, can_flood;
};
auth {
spoof = "c0ns0l3.n3tw3rk.1ns3cur1ty.c0rp";
user = "*@100.64.70.34";
class = "console_admin";
flags = need_password, exceed_limit, kline_exempt,
xline_exempt, resv_exempt, can_flood, no_tilde;
};

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/channels.conf>

Просмотреть файл

@ -1,23 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/user.classes.conf>
class {
name = "console_admin";
ping_time = 2 seconds;
number_per_ip_local = 1;
max_number = 10240;
sendq = 1 megabyte;
max_channels = 60;
max_idle = 1000 years;
};
class {
name = "hub";
ping_time = 2 seconds;
connectfreq = 2 seconds;
max_number = 1;
sendq = 32 megabytes;
};

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/cluster.conf>

Просмотреть файл

@ -1,61 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/tor-edge.admin.conf>
.include <hb_conf/tor-edge.auth.conf>
.include <hb_conf/tor-edge.channels.conf>
.include <hb_conf/tor-edge.classes.conf>
.include <hb_conf/tor-edge.cluster.conf>
.include <hb_conf/tor-edge.deny.conf>
.include <hb_conf/tor-edge.exempt.conf>
.include <hb_conf/tor-edge.gecos.conf>
.include <hb_conf/tor-edge.general.conf>
.include <hb_conf/tor-edge.kill.conf>
.include <hb_conf/tor-edge.log.conf>
.include <hb_conf/tor-edge.modules.conf>
.include <hb_conf/tor-edge.motd.conf>
.include <hb_conf/tor-edge.oper.conf>
.include <hb_conf/tor-edge.pseudo.conf>
.include <hb_conf/tor-edge.resv.conf>
.include <hb_conf/tor-edge.services.conf>
.include <hb_conf/tor-edge.shared.conf>
.include <hb_conf/tor-edge.serverhide.conf>
serverinfo {
name = "t0r-3dg3.n3tw3rk.1ns3cur1ty.c0rp";
sid = "16X";
description = "n3tw3rk 1ns3cur1ty c0rp0r4t10n 3dg3 upl1nk";
network_name = "𝓷3𝓽𝔀3𝓻𝓴";
network_description = "General-purpose internet relay chat network";
hub = yes;
default_max_clients = 65465;
max_nick_length = 30;
max_topic_length = 192;
};
connect {
name = "hub.n3tw3rk.1ns3cur1ty.c0rp";
host = "100.64.64.58";
port = 7004;
timeout = 1 seconds;
bind = "100.64.64.59";
send_password = "password";
accept_password = "password";
encrypted = no;
class = "hub";
hub_mask = "*";
flags = autoconn;
};
listen {
host = "100.64.66.2"; # Console
port = 6665;
host = "100.64.66.11"; # Tor hidden service
port = 6667;
host = "100.64.64.59"; # Hub
port = 7004;
host = "100.64.65.11"; # Tor Up-Link
port = 6667;
};

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/deny.conf>

Просмотреть файл

@ -1,10 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/exempt.conf>
exempt {
ip = "100.64.65.8/29";
ip = "100.64.64.56/29";
};

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/gecos.conf>

Просмотреть файл

@ -1,9 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*
* Note: some of these settings need to remain consistent globally so
* be careful when changing them or just use include/general.conf
*
*/
.include <hb_conf/include/general.conf>

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/kill.conf>

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/log.conf>

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/modules.conf>

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/motd.conf>

Просмотреть файл

@ -1,6 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/oper.conf>

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/pseudo.conf>

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/resv.conf>

Просмотреть файл

@ -1,12 +0,0 @@
/* Configuration example located at
* https://gittor-dmz.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
serverhide {
disable_remote_commands = no;
flatten_links = no;
hidden = yes;
hide_servers = no;
hide_services = no;
hide_server_ips = yes;
};

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/services.conf>

Просмотреть файл

@ -1,5 +0,0 @@
/* Configuration example located at
* https://github.com/ircd-hybrid/ircd-hybrid/blob/master/doc/reference.conf
*/
.include <hb_conf/include/shared.conf>

Просмотреть файл

@ -1 +1 @@
# dict-type so-name (pathname) dict-function mkmap-function
# dict-type so-name (pathname) dict-function mkmap-function

Просмотреть файл

@ -1,217 +1,217 @@
#!/bin/sh
# To view the formatted manual page of this file, type:
# POSTFIXSOURCE/mantools/srctoman - post-install | nroff -man
# POSTFIXSOURCE/mantools/srctoman - post-install | nroff -man
#++
# NAME
# post-install
# post-install
# SUMMARY
# Postfix post-installation script
# Postfix post-installation script
# SYNOPSIS
# postfix post-install [name=value] command ...
# postfix post-install [name=value] command ...
# DESCRIPTION
# The post-install script performs the finishing touch of a Postfix
# installation, after the executable programs and configuration
# files are installed. Usage is one of the following:
# The post-install script performs the finishing touch of a Postfix
# installation, after the executable programs and configuration
# files are installed. Usage is one of the following:
# .IP o
# While installing Postfix from source code on the local machine, the
# script is run by the postfix-install script to update selected file
# or directory permissions and to update Postfix configuration files.
# While installing Postfix from source code on the local machine, the
# script is run by the postfix-install script to update selected file
# or directory permissions and to update Postfix configuration files.
# .IP o
# While installing Postfix from a pre-built package, the script is run
# by the package management procedure to set all file or directory
# permissions and to update Postfix configuration files.
# While installing Postfix from a pre-built package, the script is run
# by the package management procedure to set all file or directory
# permissions and to update Postfix configuration files.
# .IP o
# The script can be used to change installation parameter settings such
# as mail_owner or setgid_group after Postfix is already installed.
# The script can be used to change installation parameter settings such
# as mail_owner or setgid_group after Postfix is already installed.
# .IP o
# The script can be used to upgrade configuration files and to upgrade
# file/directory permissions of a secondary Postfix instance.
# The script can be used to upgrade configuration files and to upgrade
# file/directory permissions of a secondary Postfix instance.
# .IP o
# At Postfix start-up time, the script is run from "postfix check" to
# create missing queue directories.
# At Postfix start-up time, the script is run from "postfix check" to
# create missing queue directories.
# .PP
# The post-install script is controlled by installation parameters.
# Specific parameters are described at the end of this document.
# All installation parameters must be specified ahead of time via
# one of the methods described below.
# The post-install script is controlled by installation parameters.
# Specific parameters are described at the end of this document.
# All installation parameters must be specified ahead of time via
# one of the methods described below.
#
# Arguments
# Arguments
# .IP create-missing
# Create missing queue directories with ownerships and permissions
# according to the contents of $meta_directory/postfix-files
# and optionally in $meta_directory/postfix-files.d/*, using
# the mail_owner and setgid_group parameter settings from the
# command line, process environment or from the installed
# main.cf file.
# Create missing queue directories with ownerships and permissions
# according to the contents of $meta_directory/postfix-files
# and optionally in $meta_directory/postfix-files.d/*, using
# the mail_owner and setgid_group parameter settings from the
# command line, process environment or from the installed
# main.cf file.
#
# This is required at Postfix start-up time.
# This is required at Postfix start-up time.
# .IP set-permissions
# Set all file/directory ownerships and permissions according to the
# contents of $meta_directory/postfix-files and optionally
# in $meta_directory/postfix-files.d/*, using the mail_owner
# and setgid_group parameter settings from the command line,
# process environment or from the installed main.cf file.
# Implies create-missing.
# Set all file/directory ownerships and permissions according to the
# contents of $meta_directory/postfix-files and optionally
# in $meta_directory/postfix-files.d/*, using the mail_owner
# and setgid_group parameter settings from the command line,
# process environment or from the installed main.cf file.
# Implies create-missing.
#
# This is required when installing Postfix from a pre-built package,
# or when changing the mail_owner or setgid_group installation parameter
# settings after Postfix is already installed.
# This is required when installing Postfix from a pre-built package,
# or when changing the mail_owner or setgid_group installation parameter
# settings after Postfix is already installed.
# .IP upgrade-permissions
# Update ownership and permission of existing files/directories as
# specified in $meta_directory/postfix-files and optionally
# in $meta_directory/postfix-files.d/*, using the mail_owner
# and setgid_group parameter settings from the command line,
# process environment or from the installed main.cf file.
# Implies create-missing.
# Update ownership and permission of existing files/directories as
# specified in $meta_directory/postfix-files and optionally
# in $meta_directory/postfix-files.d/*, using the mail_owner
# and setgid_group parameter settings from the command line,
# process environment or from the installed main.cf file.
# Implies create-missing.
#
# This is required when upgrading an existing Postfix instance.
# This is required when upgrading an existing Postfix instance.
# .IP upgrade-configuration
# Edit the installed main.cf and master.cf files, in order to account
# for missing services and to fix deprecated parameter settings.
# Edit the installed main.cf and master.cf files, in order to account
# for missing services and to fix deprecated parameter settings.
#
# This is required when upgrading an existing Postfix instance.
# This is required when upgrading an existing Postfix instance.
# .IP upgrade-source
# Short-hand for: upgrade-permissions upgrade-configuration.
# Short-hand for: upgrade-permissions upgrade-configuration.
#
# This is recommended when upgrading Postfix from source code.
# This is recommended when upgrading Postfix from source code.
# .IP upgrade-package
# Short-hand for: set-permissions upgrade-configuration.
# Short-hand for: set-permissions upgrade-configuration.
#
# This is recommended when upgrading Postfix from a pre-built package.
# This is recommended when upgrading Postfix from a pre-built package.
# .IP first-install-reminder
# Remind the user that they still need to configure main.cf and the
# aliases file, and that newaliases still needs to be run.
# Remind the user that they still need to configure main.cf and the
# aliases file, and that newaliases still needs to be run.
#
# This is recommended when Postfix is installed for the first time.
# This is recommended when Postfix is installed for the first time.
# MULTIPLE POSTFIX INSTANCES
# .ad
# .fi
# Multiple Postfix instances on the same machine can share command and
# daemon program files but must have separate configuration and queue
# directories.
# Multiple Postfix instances on the same machine can share command and
# daemon program files but must have separate configuration and queue
# directories.
#
# To create a secondary Postfix installation on the same machine,
# copy the configuration files from the primary Postfix instance to
# a secondary configuration directory and execute:
# To create a secondary Postfix installation on the same machine,
# copy the configuration files from the primary Postfix instance to
# a secondary configuration directory and execute:
#
# postfix post-install config_directory=secondary-config-directory \e
# postfix post-install config_directory=secondary-config-directory \e
# .in +4
# queue_directory=secondary-queue-directory \e
# queue_directory=secondary-queue-directory \e
# .br
# create-missing
# create-missing
# .PP
# This creates secondary Postfix queue directories, sets their access
# permissions, and saves the specified installation parameters to the
# secondary main.cf file.
# This creates secondary Postfix queue directories, sets their access
# permissions, and saves the specified installation parameters to the
# secondary main.cf file.
#
# Be sure to list the secondary configuration directory in the
# alternate_config_directories parameter in the primary main.cf file.
# Be sure to list the secondary configuration directory in the
# alternate_config_directories parameter in the primary main.cf file.
#
# To upgrade a secondary Postfix installation on the same machine,
# execute:
# To upgrade a secondary Postfix installation on the same machine,
# execute:
#
# postfix post-install config_directory=secondary-config-directory \e
# postfix post-install config_directory=secondary-config-directory \e
# .in +4
# upgrade-permissions upgrade-configuration
# upgrade-permissions upgrade-configuration
# INSTALLATION PARAMETER INPUT METHODS
# .ad
# .fi
# Parameter settings can be specified through a variety of
# mechanisms. In order of decreasing precedence these are:
# Parameter settings can be specified through a variety of
# mechanisms. In order of decreasing precedence these are:
# .IP "command line"
# Parameter settings can be given as name=value arguments on
# the post-install command line. These have the highest precedence.
# Settings that override the installed main.cf file are saved.
# Parameter settings can be given as name=value arguments on
# the post-install command line. These have the highest precedence.
# Settings that override the installed main.cf file are saved.
# .IP "process environment"
# Parameter settings can be given as name=value environment
# variables.
# Settings that override the installed main.cf file are saved.
# Parameter settings can be given as name=value environment
# variables.
# Settings that override the installed main.cf file are saved.
# .IP "installed configuration files"
# If a parameter is not specified via the command line or via the
# process environment, post-install will attempt to extract its
# value from the already installed Postfix main.cf configuration file.
# These settings have the lowest precedence.
# If a parameter is not specified via the command line or via the
# process environment, post-install will attempt to extract its
# value from the already installed Postfix main.cf configuration file.
# These settings have the lowest precedence.
# INSTALLATION PARAMETER DESCRIPTION
# .ad
# .fi
# The description of installation parameters is as follows:
# The description of installation parameters is as follows:
# .IP config_directory
# The directory for Postfix configuration files.
# The directory for Postfix configuration files.
# .IP daemon_directory
# The directory for Postfix daemon programs. This directory
# should not be in the command search path of any users.
# The directory for Postfix daemon programs. This directory
# should not be in the command search path of any users.
# .IP command_directory
# The directory for Postfix administrative commands. This
# directory should be in the command search path of adminstrative users.
# The directory for Postfix administrative commands. This
# directory should be in the command search path of adminstrative users.
# .IP queue_directory
# The directory for Postfix queues.
# The directory for Postfix queues.
# .IP data_directory
# The directory for Postfix writable data files (caches, etc.).
# The directory for Postfix writable data files (caches, etc.).
# .IP sendmail_path
# The full pathname for the Postfix sendmail command.
# This is the Sendmail-compatible mail posting interface.
# The full pathname for the Postfix sendmail command.
# This is the Sendmail-compatible mail posting interface.
# .IP newaliases_path
# The full pathname for the Postfix newaliases command.
# This is the Sendmail-compatible command to build alias databases
# for the Postfix local delivery agent.
# The full pathname for the Postfix newaliases command.
# This is the Sendmail-compatible command to build alias databases
# for the Postfix local delivery agent.
# .IP mailq_path
# The full pathname for the Postfix mailq command.
# This is the Sendmail-compatible command to list the mail queue.
# The full pathname for the Postfix mailq command.
# This is the Sendmail-compatible command to list the mail queue.
# .IP mail_owner
# The owner of the Postfix queue. Its numerical user ID and group ID
# must not be used by any other accounts on the system.
# The owner of the Postfix queue. Its numerical user ID and group ID
# must not be used by any other accounts on the system.
# .IP setgid_group
# The group for mail submission and for queue management commands.
# Its numerical group ID must not be used by any other accounts on the
# system, not even by the mail_owner account.
# The group for mail submission and for queue management commands.
# Its numerical group ID must not be used by any other accounts on the
# system, not even by the mail_owner account.
# .IP html_directory
# The directory for the Postfix HTML files.
# The directory for the Postfix HTML files.
# .IP manpage_directory
# The directory for the Postfix on-line manual pages.
# The directory for the Postfix on-line manual pages.
# .IP sample_directory
# The directory for the Postfix sample configuration files.
# This feature is obsolete as of Postfix 2.1.
# The directory for the Postfix sample configuration files.
# This feature is obsolete as of Postfix 2.1.
# .IP readme_directory
# The directory for the Postfix README files.
# The directory for the Postfix README files.
# .IP shlib_directory
# The directory for the Postfix shared-library files, and for
# the Postfix dabatase plugin files with a relative pathname
# in the file dynamicmaps.cf.
# The directory for the Postfix shared-library files, and for
# the Postfix dabatase plugin files with a relative pathname
# in the file dynamicmaps.cf.
# .IP meta_directory
# The directory for non-executable files that are shared
# among multiple Postfix instances, such as postfix-files,
# dynamicmaps.cf, as well as the multi-instance template files
# main.cf.proto and master.cf.proto.
# The directory for non-executable files that are shared
# among multiple Postfix instances, such as postfix-files,
# dynamicmaps.cf, as well as the multi-instance template files
# main.cf.proto and master.cf.proto.
# SEE ALSO
# postfix-install(1) Postfix primary installation script.
# postfix-install(1) Postfix primary installation script.
# FILES
# $config_directory/main.cf, Postfix installation parameters.
# $meta_directory/postfix-files, installation control file.
# $meta_directory/postfix-files.d/*, optional control files.
# $config_directory/install.cf, obsolete configuration file.
# $config_directory/main.cf, Postfix installation parameters.
# $meta_directory/postfix-files, installation control file.
# $meta_directory/postfix-files.d/*, optional control files.
# $config_directory/install.cf, obsolete configuration file.
# LICENSE
# .ad
# .fi
# The Secure Mailer license must be distributed with this software.
# The Secure Mailer license must be distributed with this software.
# AUTHOR(S)
# Wietse Venema
# IBM T.J. Watson Research
# P.O. Box 704
# Yorktown Heights, NY 10598, USA
# Wietse Venema
# IBM T.J. Watson Research
# P.O. Box 704
# Yorktown Heights, NY 10598, USA
#
# Wietse Venema
# Google, Inc.
# 111 8th Avenue
# New York, NY 10011, USA
# Wietse Venema
# Google, Inc.
# 111 8th Avenue
# New York, NY 10011, USA
#--
umask 022
PATH=/bin:/usr/bin:/usr/sbin:/usr/etc:/sbin:/etc:/usr/contrib/bin:/usr/gnu/bin:/usr/ucb:/usr/bsd
SHELL=/bin/sh
IFS="
IFS="
"
BACKUP_IFS="$IFS"
debug=:
@ -239,17 +239,17 @@ obsolete=; keep_list=;
for arg
do
case $arg in
*[" "]*) echo $0: "Error: argument contains whitespace: '$arg'"
exit 1;;
*[" "]*) echo $0: "Error: argument contains whitespace: '$arg'"
exit 1;;
*=*) IFS= eval $arg; IFS="$BACKUP_IFS";;
create-missing) create=1;;
set-perm*) create=1; set_perms=1;;
set-perm*) create=1; set_perms=1;;
upgrade-perm*) create=1; upgrade_perms=1;;
upgrade-conf*) upgrade_conf=1;;
upgrade-source) create=1; upgrade_conf=1; upgrade_perms=1;;
upgrade-package) create=1; upgrade_conf=1; set_perms=1;;
first-install*) first_install_reminder=1;;
*) echo "$0: Error: $USAGE" 1>&2; exit 1;;
*) echo "$0: Error: $USAGE" 1>&2; exit 1;;
esac
shift
done
@ -292,7 +292,7 @@ test -d "$config_directory" || {
instances=`test ! -f $def_config_directory/main.cf ||
$POSTCONF -c $def_config_directory -h multi_instance_directories |
sed 's/,/ /'` || exit 1
sed 's/,/ /'` || exit 1
update_shared_files=1
for name in $instances
@ -313,13 +313,13 @@ test -f $meta_directory/postfix-files || {
fake_fmt() {
sed '
:top
/^\( *\)\([^ ][^ ]*\) */{
s//\1\2\
/^\( *\)\([^ ][^ ]*\) */{
s//\1\2\
\1/
P
D
b top
}
P
D
b top
}
' | fmt
}
@ -339,12 +339,12 @@ grep setgid_group $config_directory/main.cf >/dev/null 2>&1 || {
test -f $config_directory/install.cf && {
for name in sendmail_path newaliases_path mailq_path setgid manpages
do
eval junk=\$$name
eval junk=\$$name
case "$junk" in
"") eval unset $name;;
esac
eval : \${$name="\`. $config_directory/install.cf; echo \$$name\`"} \
|| exit 1
eval : \${$name="\`. $config_directory/install.cf; echo \$$name\`"} \
|| exit 1
done
: ${setgid_group=$setgid}
: ${manpage_directory=$manpages}
@ -356,7 +356,7 @@ grep setgid_group $config_directory/main.cf >/dev/null 2>&1 || {
test -f $config_directory/main.cf && {
for name in $MOST_PARAMETERS
do
eval junk=\$$name
eval junk=\$$name
case "$junk" in
"") eval unset $name;;
esac
@ -446,11 +446,11 @@ do
eval junk=\$$name
case "$junk" in
*"$mail_version"*)
case "$pattern" in
"") pattern=`echo "$mail_version" | sed 's/\./\\\\./g'` || exit 1
esac
val=`echo "$junk" | sed "s/$pattern"'$/${mail_version}/g'` || exit 1
eval ${name}='"$val"'
case "$pattern" in
"") pattern=`echo "$mail_version" | sed 's/\./\\\\./g'` || exit 1
esac
val=`echo "$junk" | sed "s/$pattern"'$/${mail_version}/g'` || exit 1
eval ${name}='"$val"'
esac
done
@ -462,28 +462,28 @@ for name in $MOST_PARAMETERS
do
eval junk=\"\$$name\"
test "$junk" = "`$POSTCONF -c $config_directory -h $name`" || {
override=1
break
override=1
break
}
done
test -n "$override" && {
$POSTCONF -c $config_directory -e \
"daemon_directory = $daemon_directory" \
"command_directory = $command_directory" \
"queue_directory = $queue_directory" \
"data_directory = $data_directory" \
"mail_owner = $mail_owner" \
"setgid_group = $setgid_group" \
"sendmail_path = $sendmail_path" \
"mailq_path = $mailq_path" \
"newaliases_path = $newaliases_path" \
"html_directory = $html_directory" \
"manpage_directory = $manpage_directory" \
"sample_directory = $sample_directory" \
"readme_directory = $readme_directory" \
"shlib_directory = $shlib_directory" \
"meta_directory = $meta_directory" \
"daemon_directory = $daemon_directory" \
"command_directory = $command_directory" \
"queue_directory = $queue_directory" \
"data_directory = $data_directory" \
"mail_owner = $mail_owner" \
"setgid_group = $setgid_group" \
"sendmail_path = $sendmail_path" \
"mailq_path = $mailq_path" \
"newaliases_path = $newaliases_path" \
"html_directory = $html_directory" \
"manpage_directory = $manpage_directory" \
"sample_directory = $sample_directory" \
"readme_directory = $readme_directory" \
"shlib_directory = $shlib_directory" \
"meta_directory = $meta_directory" \
|| exit 1
} || exit 0) || exit 1
@ -492,93 +492,93 @@ test -n "$override" && {
test -n "$create" && {
postfix_files_d=$meta_directory/postfix-files.d
for postfix_file in $meta_directory/postfix-files \
`test -d $postfix_files_d && { find $postfix_files_d -type f | sort; }`
`test -d $postfix_files_d && { find $postfix_files_d -type f | sort; }`
do
exec <$postfix_file || exit 1
while IFS=: read path type owner group mode flags junk
do
IFS="$BACKUP_IFS"
set_permission=
# Skip comments. Skip shared files, if updating a secondary instance.
case $path in
[$]*) case "$update_shared_files" in
1) $debug keep non-shared or shared $path;;
*) non_shared=
for name in $NON_SHARED
do
case $path in
"\$$name"*) non_shared=1; break;;
esac
done
case "$non_shared" in
1) $debug keep non-shared $path;;
*) $debug skip shared $path; continue;;
esac;;
esac;;
*) continue;;
esac
# Skip hard links and symbolic links.
case $type in
[hl]) continue;;
[df]) ;;
*) echo unknown type $type for $path in $postfix_file 1>&2; exit 1;;
esac
# Expand $name, and canonicalize null fields.
for name in path owner group flags
do
eval junk=\${$name}
case $junk in
[$]*) eval $name=$junk;;
-) eval $name=;;
*) ;;
esac
done
# Skip uninstalled files.
case $path in
no|no/*) continue;;
esac
# Pick up the flags.
case $flags in *u*) upgrade_flag=1;; *) upgrade_flag=;; esac
case $flags in *c*) create_flag=1;; *) create_flag=;; esac
case $flags in *r*) recursive="-R";; *) recursive=;; esac
case $flags in *o*) obsolete_flag=1;; *) obsolete_flag=;; esac
case $flags in *[1i]*) test ! -r "$path" -a "$config_directory" != \
"$def_config_directory" && continue;; esac
# Flag obsolete objects. XXX Solaris 2..9 does not have "test -e".
if [ -n "$obsolete_flag" ]
then
test -r $path -a "$type" != "d" && obsolete="$obsolete $path"
continue;
else
keep_list="$keep_list $path"
fi
# Create missing directories with proper owner/group/mode settings.
if [ -n "$create" -a "$type" = "d" -a -n "$create_flag" -a ! -d "$path" ]
then
mkdir $path || exit 1
set_permission=1
# Update all owner/group/mode settings.
elif [ -n "$set_perms" ]
then
set_permission=1
# Update obsolete owner/group/mode settings.
elif [ -n "$upgrade_perms" -a -n "$upgrade_flag" ]
then
set_permission=1
fi
test -n "$set_permission" && {
chown $recursive $owner $path || exit 1
test -z "$group" || chgrp $recursive $group $path || exit 1
# Don't "chmod -R"; queue file status is encoded in mode bits.
if [ "$type" = "d" -a -n "$recursive" ]
then
find $path -type d -exec chmod $mode "{}" ";"
else
chmod $mode $path
fi || exit 1
}
done
IFS="$BACKUP_IFS"
exec <$postfix_file || exit 1
while IFS=: read path type owner group mode flags junk
do
IFS="$BACKUP_IFS"
set_permission=
# Skip comments. Skip shared files, if updating a secondary instance.
case $path in
[$]*) case "$update_shared_files" in
1) $debug keep non-shared or shared $path;;
*) non_shared=
for name in $NON_SHARED
do
case $path in
"\$$name"*) non_shared=1; break;;
esac
done
case "$non_shared" in
1) $debug keep non-shared $path;;
*) $debug skip shared $path; continue;;
esac;;
esac;;
*) continue;;
esac
# Skip hard links and symbolic links.
case $type in
[hl]) continue;;
[df]) ;;
*) echo unknown type $type for $path in $postfix_file 1>&2; exit 1;;
esac
# Expand $name, and canonicalize null fields.
for name in path owner group flags
do
eval junk=\${$name}
case $junk in
[$]*) eval $name=$junk;;
-) eval $name=;;
*) ;;
esac
done
# Skip uninstalled files.
case $path in
no|no/*) continue;;
esac
# Pick up the flags.
case $flags in *u*) upgrade_flag=1;; *) upgrade_flag=;; esac
case $flags in *c*) create_flag=1;; *) create_flag=;; esac
case $flags in *r*) recursive="-R";; *) recursive=;; esac
case $flags in *o*) obsolete_flag=1;; *) obsolete_flag=;; esac
case $flags in *[1i]*) test ! -r "$path" -a "$config_directory" != \
"$def_config_directory" && continue;; esac
# Flag obsolete objects. XXX Solaris 2..9 does not have "test -e".
if [ -n "$obsolete_flag" ]
then
test -r $path -a "$type" != "d" && obsolete="$obsolete $path"
continue;
else
keep_list="$keep_list $path"
fi
# Create missing directories with proper owner/group/mode settings.
if [ -n "$create" -a "$type" = "d" -a -n "$create_flag" -a ! -d "$path" ]
then
mkdir $path || exit 1
set_permission=1
# Update all owner/group/mode settings.
elif [ -n "$set_perms" ]
then
set_permission=1
# Update obsolete owner/group/mode settings.
elif [ -n "$upgrade_perms" -a -n "$upgrade_flag" ]
then
set_permission=1
fi
test -n "$set_permission" && {
chown $recursive $owner $path || exit 1
test -z "$group" || chgrp $recursive $group $path || exit 1
# Don't "chmod -R"; queue file status is encoded in mode bits.
if [ "$type" = "d" -a -n "$recursive" ]
then
find $path -type d -exec chmod $mode "{}" ";"
else
chmod $mode $path
fi || exit 1
}
done
IFS="$BACKUP_IFS"
done
}
@ -590,9 +590,9 @@ test -n "$upgrade_conf" && {
# Add missing relay service to master.cf.
grep '^relay' $config_directory/master.cf >/dev/null || {
echo Editing $config_directory/master.cf, adding missing entry for relay service
cat >>$config_directory/master.cf <<EOF || exit 1
relay unix - - n - - smtp
echo Editing $config_directory/master.cf, adding missing entry for relay service
cat >>$config_directory/master.cf <<EOF || exit 1
relay unix - - n - - smtp
EOF
}
@ -600,8 +600,8 @@ EOF
# Add missing flush service to master.cf.
grep '^flush.*flush' $config_directory/master.cf >/dev/null || {
echo Editing $config_directory/master.cf, adding missing entry for flush service
cat >>$config_directory/master.cf <<EOF || exit 1
echo Editing $config_directory/master.cf, adding missing entry for flush service
cat >>$config_directory/master.cf <<EOF || exit 1
flush unix - - n 1000? 0 flush
EOF
}
@ -610,9 +610,9 @@ EOF
# Add missing trace service to master.cf.
grep 'trace.*bounce' $config_directory/master.cf >/dev/null || {
echo Editing $config_directory/master.cf, adding missing entry for trace service
cat >>$config_directory/master.cf <<EOF || exit 1
trace unix - - n - 0 bounce
echo Editing $config_directory/master.cf, adding missing entry for trace service
cat >>$config_directory/master.cf <<EOF || exit 1
trace unix - - n - 0 bounce
EOF
}
@ -620,21 +620,21 @@ EOF
# Add missing verify service to master.cf.
grep '^verify.*verify' $config_directory/master.cf >/dev/null || {
echo Editing $config_directory/master.cf, adding missing entry for verify service
cat >>$config_directory/master.cf <<EOF || exit 1
verify unix - - n - 1 verify
echo Editing $config_directory/master.cf, adding missing entry for verify service
cat >>$config_directory/master.cf <<EOF || exit 1
verify unix - - n - 1 verify
EOF
}
# Postfix 2.1.
# Fix verify service process limit.
grep '^verify.*[ ]0[ ]*verify' \
$config_directory/master.cf >/dev/null && {
echo Editing $config_directory/master.cf, setting verify process limit to 1
ed $config_directory/master.cf <<EOF || exit 1
/^verify.*[ ]0[ ]*verify/
s/\([ ]\)0\([ ]\)/\11\2/
grep '^verify.*[ ]0[ ]*verify' \
$config_directory/master.cf >/dev/null && {
echo Editing $config_directory/master.cf, setting verify process limit to 1
ed $config_directory/master.cf <<EOF || exit 1
/^verify.*[ ]0[ ]*verify/
s/\([ ]\)0\([ ]\)/\11\2/
p
w
q
@ -644,12 +644,12 @@ EOF
# Postfix 1.1.
# Change privileged pickup service into unprivileged.
grep "^pickup[ ]*fifo[ ]*n[ ]*n" \
$config_directory/master.cf >/dev/null && {
echo Editing $config_directory/master.cf, making the pickup service unprivileged
ed $config_directory/master.cf <<EOF || exit 1
/^pickup[ ]*fifo[ ]*n[ ]*n/
s/\(n[ ]*\)n/\1-/
grep "^pickup[ ]*fifo[ ]*n[ ]*n" \
$config_directory/master.cf >/dev/null && {
echo Editing $config_directory/master.cf, making the pickup service unprivileged
ed $config_directory/master.cf <<EOF || exit 1
/^pickup[ ]*fifo[ ]*n[ ]*n/
s/\(n[ ]*\)n/\1-/
p
w
q
@ -661,17 +661,17 @@ EOF
for name in cleanup flush
do
grep "^$name[ ]*unix[ ]*[-y]" \
$config_directory/master.cf >/dev/null && {
echo Editing $config_directory/master.cf, making the $name service public
ed $config_directory/master.cf <<EOF || exit 1
/^$name[ ]*unix[ ]*[-y]/
grep "^$name[ ]*unix[ ]*[-y]" \
$config_directory/master.cf >/dev/null && {
echo Editing $config_directory/master.cf, making the $name service public
ed $config_directory/master.cf <<EOF || exit 1
/^$name[ ]*unix[ ]*[-y]/
s/[-y]/n/
p
w
q
EOF
}
}
done
# Postfix 2.2.
@ -684,9 +684,9 @@ EOF
(echo "$found" | grep defer >/dev/null) || missing="$missing defer"
(echo "$found" | grep deferred>/dev/null)|| missing="$missing deferred"
test -n "$missing" && {
echo fixing main.cf hash_queue_names for missing $missing
$POSTCONF -c $config_directory -e hash_queue_names="$found$missing" ||
exit 1
echo fixing main.cf hash_queue_names for missing $missing
$POSTCONF -c $config_directory -e hash_queue_names="$found$missing" ||
exit 1
}
# Turn on safety nets for new features that could bounce mail that
@ -699,9 +699,9 @@ EOF
# Add missing proxymap service to master.cf.
grep '^proxymap.*proxymap' $config_directory/master.cf >/dev/null || {
echo Editing $config_directory/master.cf, adding missing entry for proxymap service
cat >>$config_directory/master.cf <<EOF || exit 1
proxymap unix - - n - - proxymap
echo Editing $config_directory/master.cf, adding missing entry for proxymap service
cat >>$config_directory/master.cf <<EOF || exit 1
proxymap unix - - n - - proxymap
EOF
}
@ -709,9 +709,9 @@ EOF
# Add missing anvil service to master.cf.
grep '^anvil.*anvil' $config_directory/master.cf >/dev/null || {
echo Editing $config_directory/master.cf, adding missing entry for anvil service
cat >>$config_directory/master.cf <<EOF || exit 1
anvil unix - - n - 1 anvil
echo Editing $config_directory/master.cf, adding missing entry for anvil service
cat >>$config_directory/master.cf <<EOF || exit 1
anvil unix - - n - 1 anvil
EOF
}
@ -719,9 +719,9 @@ EOF
# Add missing scache service to master.cf.
grep '^scache.*scache' $config_directory/master.cf >/dev/null || {
echo Editing $config_directory/master.cf, adding missing entry for scache service
cat >>$config_directory/master.cf <<EOF || exit 1
scache unix - - n - 1 scache
echo Editing $config_directory/master.cf, adding missing entry for scache service
cat >>$config_directory/master.cf <<EOF || exit 1
scache unix - - n - 1 scache
EOF
}
@ -729,20 +729,20 @@ EOF
# Add missing discard service to master.cf.
grep '^discard.*discard' $config_directory/master.cf >/dev/null || {
echo Editing $config_directory/master.cf, adding missing entry for discard service
cat >>$config_directory/master.cf <<EOF || exit 1
discard unix - - n - - discard
echo Editing $config_directory/master.cf, adding missing entry for discard service
cat >>$config_directory/master.cf <<EOF || exit 1
discard unix - - n - - discard
EOF
}
# Postfix 2.2.
# Update the tlsmgr fifo->unix service.
grep "^tlsmgr[ ]*fifo[ ]" \
$config_directory/master.cf >/dev/null && {
echo Editing $config_directory/master.cf, updating the tlsmgr from fifo to unix service
ed $config_directory/master.cf <<EOF || exit 1
/^tlsmgr[ ]*fifo[ ]/
grep "^tlsmgr[ ]*fifo[ ]" \
$config_directory/master.cf >/dev/null && {
echo Editing $config_directory/master.cf, updating the tlsmgr from fifo to unix service
ed $config_directory/master.cf <<EOF || exit 1
/^tlsmgr[ ]*fifo[ ]/
s/fifo/unix/
s/[0-9][0-9]*/&?/
p
@ -755,8 +755,8 @@ EOF
# Add missing tlsmgr service to master.cf.
grep '^tlsmgr.*tlsmgr' $config_directory/master.cf >/dev/null || {
echo Editing $config_directory/master.cf, adding missing entry for tlsmgr service
cat >>$config_directory/master.cf <<EOF || exit 1
echo Editing $config_directory/master.cf, adding missing entry for tlsmgr service
cat >>$config_directory/master.cf <<EOF || exit 1
tlsmgr unix - - n 1000? 1 tlsmgr
EOF
}
@ -765,8 +765,8 @@ EOF
# Add missing retry service to master.cf.
grep '^retry.*error' $config_directory/master.cf >/dev/null || {
echo Editing $config_directory/master.cf, adding missing entry for retry service
cat >>$config_directory/master.cf <<EOF || exit 1
echo Editing $config_directory/master.cf, adding missing entry for retry service
cat >>$config_directory/master.cf <<EOF || exit 1
retry unix - - n - - error
EOF
}
@ -775,8 +775,8 @@ EOF
# Add missing proxywrite service to master.cf.
grep '^proxywrite.*proxymap' $config_directory/master.cf >/dev/null || {
echo Editing $config_directory/master.cf, adding missing entry for proxywrite service
cat >>$config_directory/master.cf <<EOF || exit 1
echo Editing $config_directory/master.cf, adding missing entry for proxywrite service
cat >>$config_directory/master.cf <<EOF || exit 1
proxywrite unix - - n - 1 proxymap
EOF
}
@ -784,11 +784,11 @@ EOF
# Postfix 2.5.
# Fix a typo in the default master.cf proxywrite entry.
grep '^proxywrite.*-[ ]*proxymap' $config_directory/master.cf >/dev/null && {
echo Editing $config_directory/master.cf, setting proxywrite process limit to 1
ed $config_directory/master.cf <<EOF || exit 1
/^proxywrite.*-[ ]*proxymap/
s/-\([ ]*proxymap\)/1\1/
grep '^proxywrite.*-[ ]*proxymap' $config_directory/master.cf >/dev/null && {
echo Editing $config_directory/master.cf, setting proxywrite process limit to 1
ed $config_directory/master.cf <<EOF || exit 1
/^proxywrite.*-[ ]*proxymap/
s/-\([ ]*proxymap\)/1\1/
p
w
q
@ -799,8 +799,8 @@ EOF
# Add missing postscreen service to master.cf.
grep '^#*smtp.*postscreen' $config_directory/master.cf >/dev/null || {
echo Editing $config_directory/master.cf, adding missing entry for postscreen TCP service
cat >>$config_directory/master.cf <<EOF || exit 1
echo Editing $config_directory/master.cf, adding missing entry for postscreen TCP service
cat >>$config_directory/master.cf <<EOF || exit 1
#smtp inet n - n - 1 postscreen
EOF
}
@ -809,8 +809,8 @@ EOF
# Add missing smtpd (unix-domain) service to master.cf.
grep '^#*smtpd.*smtpd' $config_directory/master.cf >/dev/null || {
echo Editing $config_directory/master.cf, adding missing entry for smtpd unix-domain service
cat >>$config_directory/master.cf <<EOF || exit 1
echo Editing $config_directory/master.cf, adding missing entry for smtpd unix-domain service
cat >>$config_directory/master.cf <<EOF || exit 1
#smtpd pass - - n - - smtpd
EOF
}
@ -819,8 +819,8 @@ EOF
# Add temporary dnsblog (unix-domain) service to master.cf.
grep '^#*dnsblog.*dnsblog' $config_directory/master.cf >/dev/null || {
echo Editing $config_directory/master.cf, adding missing entry for dnsblog unix-domain service
cat >>$config_directory/master.cf <<EOF || exit 1
echo Editing $config_directory/master.cf, adding missing entry for dnsblog unix-domain service
cat >>$config_directory/master.cf <<EOF || exit 1
#dnsblog unix - - n - 0 dnsblog
EOF
}
@ -829,8 +829,8 @@ EOF
# Add tlsproxy (unix-domain) service to master.cf.
grep '^#*tlsproxy.*tlsproxy' $config_directory/master.cf >/dev/null || {
echo Editing $config_directory/master.cf, adding missing entry for tlsproxy unix-domain service
cat >>$config_directory/master.cf <<EOF || exit 1
echo Editing $config_directory/master.cf, adding missing entry for tlsproxy unix-domain service
cat >>$config_directory/master.cf <<EOF || exit 1
#tlsproxy unix - - n - 0 tlsproxy
EOF
}
@ -838,7 +838,7 @@ EOF
# Report (but do not remove) obsolete files.
test -n "$obsolete" && {
cat <<EOF | ${FMT}
cat <<EOF | ${FMT}
Note: the following files or directories still exist but are
no longer part of Postfix:
@ -857,14 +857,14 @@ EOF
# when IPv6 support is not compiled in. See util/sys_defs.h.
test "`$POSTCONF -dh inet_protocols`" = "ipv4" ||
test -n "`$POSTCONF -c $config_directory -n inet_protocols`" || {
cat <<EOF | ${FMT}
test -n "`$POSTCONF -c $config_directory -n inet_protocols`" || {
cat <<EOF | ${FMT}
COMPATIBILITY: editing $config_directory/main.cf, setting
inet_protocols=ipv4. Specify inet_protocols explicitly if you
want to enable IPv6.
In a future release IPv6 will be enabled by default.
EOF
$POSTCONF -c $config_directory inet_protocols=ipv4 || exit 1
$POSTCONF -c $config_directory inet_protocols=ipv4 || exit 1
}
# Disabled because unhelpful down-stream maintainers disable the safety net.
@ -876,24 +876,24 @@ EOF
# # INBOUND MAIL FROM UNEXPECTEDLY BOUNCING AFTER UPGRADING FROM
# # POSTFIX BEFORE 2.10.
# test -n "`$POSTCONF -c $config_directory -n smtpd_relay_restrictions`" || {
# cat <<EOF | ${FMT}
# cat <<EOF | ${FMT}
# COMPATIBILITY: editing $config_directory/main.cf, overriding
# smtpd_relay_restrictions to prevent inbound mail from
# unexpectedly bouncing.
# Specify an empty smtpd_relay_restrictions value to keep using
# smtpd_recipient_restrictions as before.
#EOF
# $POSTCONF -c $config_directory "smtpd_relay_restrictions = \
# permit_mynetworks permit_sasl_authenticated \
# defer_unauth_destination" || exit 1
# $POSTCONF -c $config_directory "smtpd_relay_restrictions = \
# permit_mynetworks permit_sasl_authenticated \
# defer_unauth_destination" || exit 1
# }
# Postfix 3.4
# Add a postlog service entry.
grep '^postlog' $config_directory/master.cf >/dev/null || {
echo Editing $config_directory/master.cf, adding missing entry for postlog unix-domain datagram service
cat >>$config_directory/master.cf <<EOF || exit 1
echo Editing $config_directory/master.cf, adding missing entry for postlog unix-domain datagram service
cat >>$config_directory/master.cf <<EOF || exit 1
postlog unix-dgram n - n - 1 postlogd
EOF
}

Просмотреть файл

@ -17,26 +17,26 @@
# Missing fields or separators at the end are OK.
#
# File format:
# name:type:owner:group:permission:flags
# No group means don't change group ownership.
# name:type:owner:group:permission:flags
# No group means don't change group ownership.
#
# File types:
# d=directory
# f=regular file
# h=hard link (*)
# l=symbolic link (*)
# d=directory
# f=regular file
# h=hard link (*)
# l=symbolic link (*)
#
# (*) With hard links and symbolic links, the owner field becomes the
# source pathname, while the group and permissions are ignored.
#
# File flags:
# No flag means the flag is not active.
# p=preserve existing file, do not replace (postfix-install).
# u=update owner/group/mode (post-install upgrade-permissions).
# c=create missing directory (post-install create-missing).
# r=apply owner/group recursively (post-install set/upgrade-permissions).
# o=obsolete, no longer part of Postfix
# 1=optional for non-default instance (config_dir != built-in default).
# No flag means the flag is not active.
# p=preserve existing file, do not replace (postfix-install).
# u=update owner/group/mode (post-install upgrade-permissions).
# c=create missing directory (post-install create-missing).
# r=apply owner/group recursively (post-install set/upgrade-permissions).
# o=obsolete, no longer part of Postfix
# 1=optional for non-default instance (config_dir != built-in default).
#
# Note: the "u" flag is for upgrading the permissions of existing files
# or directories after changes in Postfix architecture. For robustness

Просмотреть файл

@ -2,32 +2,32 @@
#++
# NAME
# postfix-script 1
# postfix-script 1
# SUMMARY
# execute Postfix administrative commands
# execute Postfix administrative commands
# SYNOPSIS
# \fBpostfix-script\fR \fIcommand\fR
# \fBpostfix-script\fR \fIcommand\fR
# DESCRIPTION
# The \fBpostfix-script\fR script executes Postfix administrative
# commands in an environment that is set up by the \fBpostfix\fR(1)
# command.
# The \fBpostfix-script\fR script executes Postfix administrative
# commands in an environment that is set up by the \fBpostfix\fR(1)
# command.
# SEE ALSO
# master(8) Postfix master program
# postfix(1) Postfix administrative interface
# master(8) Postfix master program
# postfix(1) Postfix administrative interface
# LICENSE
# .ad
# .fi
# The Secure Mailer license must be distributed with this software.
# The Secure Mailer license must be distributed with this software.
# AUTHOR(S)
# Wietse Venema
# IBM T.J. Watson Research
# P.O. Box 704
# Yorktown Heights, NY 10598, USA
# Wietse Venema
# IBM T.J. Watson Research
# P.O. Box 704
# Yorktown Heights, NY 10598, USA
#
# Wietse Venema
# Google, Inc.
# 111 8th Avenue
# New York, NY 10011, USA
# Wietse Venema
# Google, Inc.
# 111 8th Avenue
# New York, NY 10011, USA
#--
# Avoid POSIX death due to SIGHUP when some parent process exits.
@ -61,39 +61,39 @@ SHELL=/bin/sh
# Can't do much without these in place.
#
cd $command_directory || {
$FATAL no Postfix command directory $command_directory!
exit 1
$FATAL no Postfix command directory $command_directory!
exit 1
}
cd $daemon_directory || {
$FATAL no Postfix daemon directory $daemon_directory!
exit 1
$FATAL no Postfix daemon directory $daemon_directory!
exit 1
}
test -f master || {
$FATAL no Postfix master program $daemon_directory/master!
exit 1
$FATAL no Postfix master program $daemon_directory/master!
exit 1
}
cd $config_directory || {
$FATAL no Postfix configuration directory $config_directory!
exit 1
$FATAL no Postfix configuration directory $config_directory!
exit 1
}
case $shlib_directory in
no) ;;
*) cd $shlib_directory || {
$FATAL no Postfix shared-library directory $shlib_directory!
$FATAL no Postfix shared-library directory $shlib_directory!
exit 1
}
esac
cd $meta_directory || {
$FATAL no Postfix meta directory $meta_directory!
exit 1
$FATAL no Postfix meta directory $meta_directory!
exit 1
}
cd $queue_directory || {
$FATAL no Postfix queue directory $queue_directory!
exit 1
$FATAL no Postfix queue directory $queue_directory!
exit 1
}
def_config_directory=`$command_directory/postconf -dh config_directory` || {
$FATAL cannot execute $command_directory/postconf!
exit 1
$FATAL cannot execute $command_directory/postconf!
exit 1
}
# If this is a secondary instance, don't touch shared files.
@ -101,8 +101,8 @@ def_config_directory=`$command_directory/postconf -dh config_directory` || {
instances=`test ! -f $def_config_directory/main.cf ||
$command_directory/postconf -c $def_config_directory \
-h multi_instance_directories | sed 's/,/ /'` || {
$FATAL cannot execute $command_directory/postconf!
exit 1
$FATAL cannot execute $command_directory/postconf!
exit 1
}
check_shared_files=1
@ -121,13 +121,13 @@ case $1 in
start_msg)
echo "Start postfix"
;;
echo "Start postfix"
;;
stop_msg)
echo "Stop postfix"
;;
echo "Stop postfix"
;;
quick-start)
@ -145,334 +145,334 @@ quick-start)
start|start-fg)
$daemon_directory/master -t 2>/dev/null || {
$FATAL the Postfix mail system is already running
exit 1
}
if [ -f $queue_directory/quick-start ]
then
rm -f $queue_directory/quick-start
else
$daemon_directory/postfix-script check-fatal || {
$FATAL Postfix integrity check failed!
exit 1
}
# Foreground this so it can be stopped. All inodes are cached.
$daemon_directory/postfix-script check-warn
fi
$INFO starting the Postfix mail system || exit 1
case $1 in
start)
# NOTE: wait in foreground process to get the initialization status.
$daemon_directory/master -w || {
$FATAL "mail system startup failed"
exit 1
}
;;
start-fg)
# Foreground start-up is incompatible with multi-instance mode.
# Use "exec $daemon_directory/master" only if PID == 1.
# Otherwise, doing so would break process group management,
# and "postfix stop" would kill too many processes.
case $instances in
"") case $$ in
1) exec $daemon_directory/master -i
$FATAL "cannot start-fg the master daemon"
exit 1;;
*) $daemon_directory/master -s;;
esac
;;
*) $FATAL "start-fg does not support multi_instance_directories"
exit 1
;;
esac
;;
esac
;;
$daemon_directory/master -t 2>/dev/null || {
$FATAL the Postfix mail system is already running
exit 1
}
if [ -f $queue_directory/quick-start ]
then
rm -f $queue_directory/quick-start
else
$daemon_directory/postfix-script check-fatal || {
$FATAL Postfix integrity check failed!
exit 1
}
# Foreground this so it can be stopped. All inodes are cached.
$daemon_directory/postfix-script check-warn
fi
$INFO starting the Postfix mail system || exit 1
case $1 in
start)
# NOTE: wait in foreground process to get the initialization status.
$daemon_directory/master -w || {
$FATAL "mail system startup failed"
exit 1
}
;;
start-fg)
# Foreground start-up is incompatible with multi-instance mode.
# Use "exec $daemon_directory/master" only if PID == 1.
# Otherwise, doing so would break process group management,
# and "postfix stop" would kill too many processes.
case $instances in
"") case $$ in
1) exec $daemon_directory/master -i
$FATAL "cannot start-fg the master daemon"
exit 1;;
*) $daemon_directory/master -s;;
esac
;;
*) $FATAL "start-fg does not support multi_instance_directories"
exit 1
;;
esac
;;
esac
;;
drain)
$daemon_directory/master -t 2>/dev/null && {
$FATAL the Postfix mail system is not running
exit 1
}
$INFO stopping the Postfix mail system
kill -9 `sed 1q pid/master.pid`
;;
$daemon_directory/master -t 2>/dev/null && {
$FATAL the Postfix mail system is not running
exit 1
}
$INFO stopping the Postfix mail system
kill -9 `sed 1q pid/master.pid`
;;
quick-stop)
$daemon_directory/postfix-script stop
touch $queue_directory/quick-start
;;
$daemon_directory/postfix-script stop
touch $queue_directory/quick-start
;;
stop)
$daemon_directory/master -t 2>/dev/null && {
$FATAL the Postfix mail system is not running
exit 0
}
$INFO stopping the Postfix mail system
kill `sed 1q pid/master.pid`
for i in 5 4 3 2 1
do
$daemon_directory/master -t && exit 0
$INFO waiting for the Postfix mail system to terminate
sleep 1
done
$WARN stopping the Postfix mail system with force
pid=`awk '{ print $1; exit 0 } END { exit 1 }' pid/master.pid` &&
kill -9 -$pid
;;
$daemon_directory/master -t 2>/dev/null && {
$FATAL the Postfix mail system is not running
exit 0
}
$INFO stopping the Postfix mail system
kill `sed 1q pid/master.pid`
for i in 5 4 3 2 1
do
$daemon_directory/master -t && exit 0
$INFO waiting for the Postfix mail system to terminate
sleep 1
done
$WARN stopping the Postfix mail system with force
pid=`awk '{ print $1; exit 0 } END { exit 1 }' pid/master.pid` &&
kill -9 -$pid
;;
abort)
$daemon_directory/master -t 2>/dev/null && {
$FATAL the Postfix mail system is not running
exit 0
}
$INFO aborting the Postfix mail system
kill `sed 1q pid/master.pid`
;;
$daemon_directory/master -t 2>/dev/null && {
$FATAL the Postfix mail system is not running
exit 0
}
$INFO aborting the Postfix mail system
kill `sed 1q pid/master.pid`
;;
reload)
$daemon_directory/master -t 2>/dev/null && {
$FATAL the Postfix mail system is not running
exit 1
}
$INFO refreshing the Postfix mail system
$command_directory/postsuper active || exit 1
kill -HUP `sed 1q pid/master.pid`
$command_directory/postsuper &
;;
$daemon_directory/master -t 2>/dev/null && {
$FATAL the Postfix mail system is not running
exit 1
}
$INFO refreshing the Postfix mail system
$command_directory/postsuper active || exit 1
kill -HUP `sed 1q pid/master.pid`
$command_directory/postsuper &
;;
flush)
cd $queue_directory || {
$FATAL no Postfix queue directory $queue_directory!
exit 1
}
$command_directory/postqueue -f
;;
cd $queue_directory || {
$FATAL no Postfix queue directory $queue_directory!
exit 1
}
$command_directory/postqueue -f
;;
check)
$daemon_directory/postfix-script check-fatal || exit 1
$daemon_directory/postfix-script check-warn
exit 0
;;
$daemon_directory/postfix-script check-fatal || exit 1
$daemon_directory/postfix-script check-warn
exit 0
;;
status)
$daemon_directory/master -t 2>/dev/null && {
$INFO the Postfix mail system is not running
exit 1
}
$INFO the Postfix mail system is running: PID: `sed 1q pid/master.pid`
exit 0
;;
$daemon_directory/master -t 2>/dev/null && {
$INFO the Postfix mail system is not running
exit 1
}
$INFO the Postfix mail system is running: PID: `sed 1q pid/master.pid`
exit 0
;;
quick-check)
# This command is NOT part of the public interface.
# This command is NOT part of the public interface.
$SHELL $daemon_directory/post-install create-missing || {
$WARN unable to create missing queue directories
exit 1
}
$SHELL $daemon_directory/post-install create-missing || {
$WARN unable to create missing queue directories
exit 1
}
# Look for incomplete installations.
# Look for incomplete installations.
test -f $config_directory/master.cf || {
$FATAL no $config_directory/master.cf file found
exit 1
}
exit 0
;;
test -f $config_directory/master.cf || {
$FATAL no $config_directory/master.cf file found
exit 1
}
exit 0
;;
check-fatal)
# This command is NOT part of the public interface.
# This command is NOT part of the public interface.
$daemon_directory/postfix-script quick-check
$daemon_directory/postfix-script quick-check
maillog_file=`$command_directory/postconf -h maillog_file` || {
$FATAL cannot execute $command_directory/postconf!
exit 1
}
test -n "$maillog_file" && {
$command_directory/postconf -M postlog/unix-dgram 2>/dev/null \
| grep . >/dev/null || {
$FATAL "missing 'postlog' service in master.cf - run 'postfix upgrade-configuration'"
exit 1
}
}
maillog_file=`$command_directory/postconf -h maillog_file` || {
$FATAL cannot execute $command_directory/postconf!
exit 1
}
test -n "$maillog_file" && {
$command_directory/postconf -M postlog/unix-dgram 2>/dev/null \
| grep . >/dev/null || {
$FATAL "missing 'postlog' service in master.cf - run 'postfix upgrade-configuration'"
exit 1
}
}
# See if all queue files are in the right place. This is slow.
# We must scan all queues for mis-named queue files before the
# mail system can run.
# See if all queue files are in the right place. This is slow.
# We must scan all queues for mis-named queue files before the
# mail system can run.
$command_directory/postsuper || exit 1
exit 0
;;
$command_directory/postsuper || exit 1
exit 0
;;
check-warn)
# This command is NOT part of the public interface.
# This command is NOT part of the public interface.
# Check Postfix root-owned directory owner/permissions.
# Check Postfix root-owned directory owner/permissions.
find $queue_directory/. $queue_directory/pid \
-prune ! -user root \
-exec $WARN not owned by root: {} \;
find $queue_directory/. $queue_directory/pid \
-prune ! -user root \
-exec $WARN not owned by root: {} \;
find $queue_directory/. $queue_directory/pid \
-prune \( -perm -020 -o -perm -002 \) \
-exec $WARN group or other writable: {} \;
find $queue_directory/. $queue_directory/pid \
-prune \( -perm -020 -o -perm -002 \) \
-exec $WARN group or other writable: {} \;
# Check Postfix root-owned directory tree owner/permissions.
# Check Postfix root-owned directory tree owner/permissions.
todo="$config_directory/."
test -n "$check_shared_files" && {
todo="$daemon_directory/. $meta_directory/. $todo"
test "$shlib_directory" = "no" ||
todo="$shlib_directory/. $todo"
}
todo=`echo "$todo" | tr ' ' '\12' | sort -u`
todo="$config_directory/."
test -n "$check_shared_files" && {
todo="$daemon_directory/. $meta_directory/. $todo"
test "$shlib_directory" = "no" ||
todo="$shlib_directory/. $todo"
}
todo=`echo "$todo" | tr ' ' '\12' | sort -u`
find $todo ! -user root \
-exec $WARN not owned by root: {} \;
find $todo ! -user root \
-exec $WARN not owned by root: {} \;
# Handle symlinks separately
find -L $todo \( -perm -020 -o -perm -002 \) \
-exec $WARN group or other writable: {} \;
# Handle symlinks separately
find -L $todo \( -perm -020 -o -perm -002 \) \
-exec $WARN group or other writable: {} \;
find $todo -type l | while read f; do \
readlink "$f" | grep -q / && $WARN symlink leaves directory: "$f"; \
done; \
find $todo -type l | while read f; do \
readlink "$f" | grep -q / && $WARN symlink leaves directory: "$f"; \
done; \
# Check Postfix mail_owner-owned directory tree owner/permissions.
# Check Postfix mail_owner-owned directory tree owner/permissions.
find $data_directory/. ! -user $mail_owner \
-exec $WARN not owned by $mail_owner: {} \;
find $data_directory/. ! -user $mail_owner \
-exec $WARN not owned by $mail_owner: {} \;
find $data_directory/. \( -perm -020 -o -perm -002 \) \
-exec $WARN group or other writable: {} \;
find $data_directory/. \( -perm -020 -o -perm -002 \) \
-exec $WARN group or other writable: {} \;
# Check Postfix mail_owner-owned directory tree owner.
# Check Postfix mail_owner-owned directory tree owner.
find `ls -d $queue_directory/* | \
egrep '/(saved|incoming|active|defer|deferred|bounce|hold|trace|corrupt|public|private|flush)$'` \
! \( -type p -o -type s \) ! -user $mail_owner \
-exec $WARN not owned by $mail_owner: {} \;
find `ls -d $queue_directory/* | \
egrep '/(saved|incoming|active|defer|deferred|bounce|hold|trace|corrupt|public|private|flush)$'` \
! \( -type p -o -type s \) ! -user $mail_owner \
-exec $WARN not owned by $mail_owner: {} \;
# WARNING: this should not descend into the maildrop directory.
# maildrop is the least trusted Postfix directory.
# WARNING: this should not descend into the maildrop directory.
# maildrop is the least trusted Postfix directory.
find $queue_directory/maildrop -prune ! -user $mail_owner \
-exec $WARN not owned by $mail_owner: $queue_directory/maildrop \;
find $queue_directory/maildrop -prune ! -user $mail_owner \
-exec $WARN not owned by $mail_owner: $queue_directory/maildrop \;
# Check Postfix setgid_group-owned directory and file group/permissions.
# Check Postfix setgid_group-owned directory and file group/permissions.
todo="$queue_directory/public $queue_directory/maildrop"
test -n "$check_shared_files" &&
todo="$command_directory/postqueue $command_directory/postdrop $todo"
todo="$queue_directory/public $queue_directory/maildrop"
test -n "$check_shared_files" &&
todo="$command_directory/postqueue $command_directory/postdrop $todo"
find $todo \
-prune ! -group $setgid_group \
-exec $WARN not owned by group $setgid_group: {} \;
find $todo \
-prune ! -group $setgid_group \
-exec $WARN not owned by group $setgid_group: {} \;
test -n "$check_shared_files" &&
find $command_directory/postqueue $command_directory/postdrop \
-prune ! -perm -02111 \
-exec $WARN not set-gid or not owner+group+world executable: {} \;
test -n "$check_shared_files" &&
find $command_directory/postqueue $command_directory/postdrop \
-prune ! -perm -02111 \
-exec $WARN not set-gid or not owner+group+world executable: {} \;
# Check non-Postfix root-owned directory tree owner/content.
# Check non-Postfix root-owned directory tree owner/content.
for dir in bin etc lib sbin usr
do
test -d $dir && {
find $dir ! -user root \
-exec $WARN not owned by root: $queue_directory/{} \;
for dir in bin etc lib sbin usr
do
test -d $dir && {
find $dir ! -user root \
-exec $WARN not owned by root: $queue_directory/{} \;
find $dir -type f -print | while read path
do
test -f /$path && {
cmp -s $path /$path ||
$WARN $queue_directory/$path and /$path differ
}
done
}
done
find $dir -type f -print | while read path
do
test -f /$path && {
cmp -s $path /$path ||
$WARN $queue_directory/$path and /$path differ
}
done
}
done
find corrupt -type f -exec $WARN damaged message: {} \;
find corrupt -type f -exec $WARN damaged message: {} \;
# Check for non-Postfix MTA remnants.
# Check for non-Postfix MTA remnants.
test -n "$check_shared_files" -a -f /usr/sbin/sendmail -a \
-f /usr/lib/sendmail && {
cmp -s /usr/sbin/sendmail /usr/lib/sendmail || {
$WARN /usr/lib/sendmail and /usr/sbin/sendmail differ
$WARN Replace one by a symbolic link to the other
}
}
exit 0
;;
test -n "$check_shared_files" -a -f /usr/sbin/sendmail -a \
-f /usr/lib/sendmail && {
cmp -s /usr/sbin/sendmail /usr/lib/sendmail || {
$WARN /usr/lib/sendmail and /usr/sbin/sendmail differ
$WARN Replace one by a symbolic link to the other
}
}
exit 0
;;
set-permissions|upgrade-configuration)
$daemon_directory/post-install create-missing "$@"
;;
$daemon_directory/post-install create-missing "$@"
;;
post-install)
# Currently not part of the public interface.
shift
$daemon_directory/post-install "$@"
;;
# Currently not part of the public interface.
shift
$daemon_directory/post-install "$@"
;;
tls)
shift
$daemon_directory/postfix-tls-script "$@"
;;
shift
$daemon_directory/postfix-tls-script "$@"
;;
/*)
# Currently not part of the public interface.
"$@"
;;
# Currently not part of the public interface.
"$@"
;;
logrotate)
case $# in
1) ;;
*) $FATAL "usage postfix $1 (no arguments)"; exit 1;;
esac
for name in maillog_file maillog_file_compressor \
maillog_file_rotate_suffix
do
value="`$command_directory/postconf -h $name`"
case "$value" in
"") $FATAL "empty '$name' parameter value - logfile rotation failed"
exit 1;;
esac
eval $name='"$value"';
done
case $# in
1) ;;
*) $FATAL "usage postfix $1 (no arguments)"; exit 1;;
esac
for name in maillog_file maillog_file_compressor \
maillog_file_rotate_suffix
do
value="`$command_directory/postconf -h $name`"
case "$value" in
"") $FATAL "empty '$name' parameter value - logfile rotation failed"
exit 1;;
esac
eval $name='"$value"';
done
case "$maillog_file" in
/dev/*) $FATAL "not rotating '$maillog_file'"; exit 1;;
esac
case "$maillog_file" in
/dev/*) $FATAL "not rotating '$maillog_file'"; exit 1;;
esac
errors=`(
suffix="\`date +$maillog_file_rotate_suffix\`" || exit 1
mv "$maillog_file" "$maillog_file.$suffix" || exit 1
$daemon_directory/master -t 2>/dev/null ||
kill -HUP \`sed 1q pid/master.pid\` || exit 1
sleep 1
"$maillog_file_compressor" "$maillog_file.$suffix" || exit 1
) 2>&1` || {
$FATAL "logfile '$maillog_file' rotation failed: $errors"
exit 1
}
;;
errors=`(
suffix="\`date +$maillog_file_rotate_suffix\`" || exit 1
mv "$maillog_file" "$maillog_file.$suffix" || exit 1
$daemon_directory/master -t 2>/dev/null ||
kill -HUP \`sed 1q pid/master.pid\` || exit 1
sleep 1
"$maillog_file_compressor" "$maillog_file.$suffix" || exit 1
) 2>&1` || {
$FATAL "logfile '$maillog_file' rotation failed: $errors"
exit 1
}
;;
*)
$FATAL "unknown command: '$1'. Usage: postfix start (or stop, reload, abort, flush, check, status, set-permissions, upgrade-configuration, logrotate)"
exit 1
;;
$FATAL "unknown command: '$1'. Usage: postfix start (or stop, reload, abort, flush, check, status, set-permissions, upgrade-configuration, logrotate)"
exit 1
;;
esac

Просмотреть файл

@ -1,6 +1,6 @@
Version = 1.7.2
HideVersion = true
Motd = Unauthorized access prohibited
Motd = Unauthorized access prohibited
ServerThrottle = 1
AnonIPLimit = 0

Двоичные данные
doc/Diagram1.dia

Двоичный файл не отображается.

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше