рдореЗрд░реЛ рд▓реЗрдЦ рдЙрддреНрдкрд╛рджрдирдХреЛ рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рд╣реЛрдЗрди, рддрд░ рд░рд╛рдореНрд░реЛ рдкреНрд░рдХрд╛рд╢рди "FusionPBX, рд╡рд╛ рдлреЗрд░рд┐-рдорд╣рд╛рди, FreeSWITCH" рдХреЛ рдПрдХ рд╕рд╛рдиреЛ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдорд╛рддреНрд░ рд╣реЛред рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ FusionPBX рдорд╛ ACL рдХреЛ рд╡рд┐рд╖рдп рдпрд╕рдорд╛ рдзреЗрд░реИ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдЦреБрд▓рд╛рд╕рд╛ рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред рдо FreeSWITCH/FusionPBX рдХреЛ рд╕рд╛рде рдореЗрд░реЛ рдЖрдлреНрдиреИ рдЕрдиреБрднрд╡рдХреЛ рдЖрдзрд╛рд░рдорд╛ рдпреЛ рдЦрд╛рд▓реА рдард╛рдЙрдБ рднрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗрдЫреБред

рд░ рддреНрдпрд╕реИрд▓реЗ, рд╣рд╛рдореАрд╕рдБрдЧ domain.local рдбреЛрдореЗрдирдорд╛ рджрд░реНрддрд╛ рдЧрд░рд┐рдПрдХреЛ рдЖрдиреНрддрд░рд┐рдХ рдирдореНрдмрд░ 1010 рднрдПрдХреЛ FusionPBX рд╕реНрдерд╛рдкрд┐рдд рдЫ рд░ рд╢рд╣рд░рдорд╛ рдмрд╛рд╣рд┐рд░реА рдХрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдорд╛рд░реНрдЧ рдЫред рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдЯреЗрд▓рд┐рдлреЛрдиреА рдкреНрд░рдгрд╛рд▓реАрд▓рд╛рдИ рдЕрдирдзрд┐рдХреГрдд рдХрд▓рд╣рд░реВрдмрд╛рдЯ рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░реНрди ACL рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ рдЬрд╕рд▓реЗ рд╣рд╛рдореНрд░реЛ рдкреИрд╕рд╛ рд▓реИрдЬрд╛рдиреНрдЫред рддреАред ACL рдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХрд╛ рдиреЗрдЯрд╡рд░реНрдХрд╣рд░реВрдмрд╛рдЯ рдорд╛рддреНрд░ рдмрд╣рд┐рд░реНрдЧрдорди рдХрд▓рд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рд░ рдпрд╣рд╛рдБ рддрдкрд╛рдЗрдБрд▓рд╛рдИ FusionPBX рдорд╛ ACL рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрджрдЫ, рдпрд╕рдХреЛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ, рддрд░реНрдХ рд░ рдпрд╕рдХреЛ рдПрдиреНрдХрд░ рдкреЛрдЗрдиреНрдЯрдХреЛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕реНрдкрд╖реНрдЯ рдмреБрдЭрд╛рдЗ рдЪрд╛рд╣рд┐рдиреНрдЫред

рдорд╛рдерд┐рдХреЛ рд▓реЗрдЦрдХреЛ рд╕рдореНрдорд╛рдирд┐рдд рд▓реЗрдЦрдХ рдЬрд╕реНрддреИ, рдореИрд▓реЗ рдкрдирд┐ ACL рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдмреИ рд░реЗрдХрд╣рд░реВрдорд╛ рдХрджрдо рдЪрд╛рд▓реЗрдХреЛ рдЫреБред

рдмрд╛рдЯ рд╕реБрд░реБ рдЧрд░реНрдЫреБ SipProfiles.
рджреБрдмреИ рдкреНрд░реЛрдлрд╛рдЗрд▓рд╣рд░реВ (рдо рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХрд▓ рдЧрд░реНрдиреЗрдЫреБ), рджреБрдмреИ рдЖрдиреНрддрд░рд┐рдХ рд░ рдмрд╛рд╣реНрдп, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдиреНрджрд░реНрднрдорд╛ рдЫрдиреН, рд░ рдпреЛ рдЖрдХрд╕реНрдорд┐рдХ рд╣реЛрдЗрдиред рдирдореНрдмрд░рд╣рд░реВрдХреЛ рджрд░реНрддрд╛ рдЖрдиреНрддрд░рд┐рдХ рдкреНрд░реЛрдлрд╛рдЗрд▓рдорд╛ рд╣реБрдиреНрдЫ, рд░ рд╣рд╛рдореА рдпрд╕рдорд╛ рдзреНрдпрд╛рди рджрд┐рдиреЗрдЫреМрдВред рдЖрдиреНрддрд░рд┐рдХ рдкреНрд░реЛрдлрд╛рдЗрд▓рдорд╛, рдбреЛрдореЗрдирд╣рд░реВ ACL рд▓рд╛рдЧреВ-рдЗрдирдмрд╛рдЙрдиреНрдб-рдПрд╕реАрдПрд▓рдХреЛ рд░реВрдкрдорд╛ рдмрд╛рдзреНрдп рдЫрдиреНред рдпреЛ рдпреЛ рд░реЗрдЦрд╛ рд╣реЛ рдХрд┐ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╕реНрддрд░ рдорд╛ ACL рдХреЛ рд╕рдЮреНрдЪрд╛рд▓рди рдХреЛ рд▓рд╛рдЧреА рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдЫред рдЕрд╣рд┐рд▓реЗ рд╕рдореНрдо, рдпреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╕рдВрдЧ рдЫред

рд╕рдиреНрджрд░реНрдн

рд╕рдиреНрджрд░реНрдн рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рдЕрдиреНрдп рдЪреАрдЬрд╣рд░реВ рдмреАрдЪ, рдХрд▓ рд░рд╛рдЙрдЯрд┐рдЩрдорд╛ред рд╕рдмреИ рдЖрдЧрдорди рдорд╛рд░реНрдЧрд╣рд░реВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдиреНрджрд░реНрднрдорд╛ рдмрд╛рдзреНрдп рдЫрдиреНред

рдмрд╣рд┐рд░реНрдЧрдорди (рд╢рд╣рд░рдорд╛, рд╕реЗрд▓реБрд▓рд░, рд▓рд╛рдореЛ рджреВрд░реА, рдЕрдиреНрддрд░реНрд░рд╛рд╖реНрдЯреНрд░рд┐рдп, рд░ рдЕрдиреНрдп рдХреБрдиреИ рдкрдирд┐) рдорд╛рд░реНрдЧрд╣рд░реВ рдбреЛрдореЗрди рдирд╛рдордХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ (рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛) рд╣реБрдиреН (рдпрд╕рд▓рд╛рдИ domain.local рднрдирд┐рдиреНрдЫ)ред

ACL

рдЕрдм ACLs рд╕рдБрдЧ рд╕рдореНрдЭреМрддрд╛ рдЧрд░реМрдВред рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, рднрд░реНрдЦрд░реИ рд╕реНрдерд╛рдкрд┐рдд FusionPBX рдорд╛ рджреБрдИ ACL рд╣рд░реВ рдЫрдиреН:

рдбреЛрдореЗрди рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдп: рдЕрд╕реНрд╡реАрдХрд╛рд░ - рдпреЛ рдкрд╛рдирд╛ рдЖрдиреНрддрд░рд┐рдХ рдкреНрд░реЛрдлрд╛рдЗрд▓рдорд╛ рдмрд╛рдБрдзрд┐рдПрдХреЛ рдЫ
lan рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдп: рдЕрдиреБрдорддрд┐ рджрд┐рдиреБрд╣реЛрд╕реН

рдбреЛрдореЗрди ACL рд╕реВрдЪреАрдорд╛, рд╣рд╛рдореА рд╕рдЮреНрдЬрд╛рд▓ (рд░рд╛рдореНрд░реЛ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, 192.168.0.0/24) рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрдЫреМрдВ, рд╣рд╛рдореА рдпреЛ рдиреЗрдЯрд╡рд░реНрдХрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдорддрд┐ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫреМрдВ, рд╣рд╛рдореА reloadacl рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред

рдЕрд░реНрдХреЛ, рд╣рд╛рдореА рдпрд╕ рдиреЗрдЯрд╡рд░реНрдХрдмрд╛рдЯ рдлреЛрди рджрд░реНрддрд╛ рдЧрд░реНрдЫреМрдВ, рд░ рд╕рдмреИ рдХреБрд░рд╛ рдареАрдХ рдЫ рд░ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдЕрдиреБрд╕рд╛рд░ рд░ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдкрдорд╛ рджреЗрдЦрд┐рдиреНрдЫред
рд╣рд╛рдореА рдкрд░реАрдХреНрд╖рдг рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВ, рдмрд╛рд╣реНрдп рдирдореНрдмрд░рдорд╛ рдХрд▓ рдЧрд░реНрдЫреМрдВ рд░ ... рд╣рд╛рдореАрд▓реЗ рдбреЛрдирдЯ, рд╡рд╛ рдбреЛрдирдЯ рдкреНрд╡рд╛рд▓ рдкрд╛рдЙрдБрдЫреМрдВред рдЕрдЪрд╛рдирдХ!

рд╣рд╛рдореА рдХрдиреНрд╕реЛрд▓рдорд╛ рд╡рд╛ рд▓рдЧ рджрд░реНрд╢рдХ FusioPBX рдорд╛рд░реНрдлрдд рд▓рдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрди рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВред

рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдЪреБрдиреМрддреА рджреЗрдЦреНрдЫреМрдВ:

switch_channel.c:1104 New Channel sofia/internal/[email protected]

рд╣рд╛рдореАрд▓реЗ рдХрд╛рдо рдЧрд░реЗрдХреЛ ACL рджреЗрдЦреНрдЫреМрдВ:

sofia.c:10208 IP 192.168.0.150 Approved by acl "domains[]". Access Granted.

рд░ рдердк:

mod_dialplan_xml.c:637 Processing 1010 <1010>->98343379xxxx in context public
switch_core_state_machine.c:311 No Route, Aborting 
switch_core_state_machine.c:312 Hangup sofia/internal/[email protected] [CS_ROUTING] [NO_ROUTE_DESTINATION] 

рдмрд╛рдЯреЛ рдЫреИрди! рдпрджреНрдпрдкрд┐ рд░реБрдЯ рд╣рд╛рдореАрд▓реЗ рдЗрдорд╛рдиреНрджрд╛рд░реАрдкреВрд░реНрд╡рдХ рджрд░реНрддрд╛ рдЧрд░реЗрдХрд╛ рдЫреМрдВ ред

рдЬрд╡рд╛рдл рд╕рд╛рдБрдЪреНрдЪреИ рд╕рд░рд▓ рдЫред

рдлреЛрди рдЖрдПрдХреЛ рдЫ ред ACL рдЫреБрдЯреЗрдХреЛ рдЫред рд░ рдЬрдм ACL рдЖрдиреНрддрд░рд┐рдХ рдкреНрд░реЛрдлрд╛рдЗрд▓рдорд╛ рдмрд╛рдБрдзрд┐рдПрдХреЛ рдЫ, рд░ рдпреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдиреНрджрд░реНрднрдорд╛ рдЫ, FreeSWITCH рдЗрдорд╛рдирджрд╛рд░реАрдкреВрд░реНрд╡рдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдиреНрджрд░реНрднрдорд╛ рд░реВрдЯрд┐рдЩрдорд╛ рд╣реЗрд░реНрдЫред рддрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдиреНрджрд░реНрднрдорд╛, рдХреЗрд╡рд▓ рдЖрдЧрдорди рд░реВрдЯрд┐рдЩ, рд░ рдкреНрд░рдгрд╛рд▓реАрд▓реЗ рдЗрдорд╛рдирджрд╛рд░реАрдкреВрд░реНрд╡рдХ рд╣рд╛рдореАрд▓рд╛рдИ рдмрддрд╛рдЙрдБрдЫ рдХрд┐ рддреНрдпрд╣рд╛рдБ рд╢рд╣рд░рдорд╛ рдХреБрдиреИ рдорд╛рд░реНрдЧрд╣рд░реВ рдЫреИрдирдиреНред

рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдмрд╛рдЯ рдмрд╛рд╣рд┐рд░ рдХрдореНрддрд┐рдорд╛ рджреБрдИ рддрд░рд┐рдХрд╛рд╣рд░реВ рдЫрдиреНред

  1. рдпреЛ ACL рд▓рд╛рдИ рдкреНрд░реЛрдлрд╛рдЗрд▓рдорд╛ рдирднрдИ рдЖрдиреНрддрд░рд┐рдХ рдирдореНрдмрд░рдорд╛ рд╕рдВрд▓рдЧреНрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпреЛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗ рд╕рдмреИрднрдиреНрджрд╛ рд╕рд╣реА рддрд░рд┐рдХрд╛ рд╣реБрди рд╕рдХреНрдЫ, рдХрд┐рдирднрдиреЗред рдЕрдЭ рд░рд╛рдореНрд░реЛ рдЯреНрдпреБрдирд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХреНрд╕реНрдЯреЗрдиреНрд╕рдирд╕рдБрдЧ рд╕рдХреЗрд╕рдореНрдо ACL рдмрд╛рдБрдзреНрдиреБ рд░рд╛рдореНрд░реЛ рд╣реБрдиреНрдЫред рддреАред рддрдкрд╛рдИрд▓реЗ рдлреЛрдирдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдареЗрдЧрд╛рдирд╛ / рдиреЗрдЯрд╡рд░реНрдХ рдареЗрдЧрд╛рдирд╛ рддреЛрдХреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЬрд╕рдмрд╛рдЯ рдпрд╕рд▓реЗ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреЗ рдХрд▓ рдЧрд░реНрди рд╕рдХреНрдЫред рдпрд╕ рд╡рд┐рдХрд▓реНрдкрдХреЛ рдмреЗрдлрд╛рдЗрджрд╛ рдпреЛ рд╣реЛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╕реНрддрд╛рд░рд▓реЗ рдпреЛ рдЧрд░реНрдиреБ рдкрд░реНрдЫред
  2. ACL рдлрд┐рдХреНрд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН рддрд╛рдХрд┐ рдпрд╕рд▓реЗ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╕реНрддрд░рдорд╛ рд╕рд╣реА рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫред рдореИрд▓реЗ рдпреЛ рд╡рд┐рдХрд▓реНрдк рд░реЛрдЬреЗрдХреЛ рдЫреБ, рдХрд┐рдирдХрд┐ рдорд▓рд╛рдИ рдкреНрд░рддреНрдпреЗрдХ рдПрдХреНрд╕реНрдЯреЗрдиреНрд╕рдирдорд╛ рдкреНрд░рд┐рд╕реНрдХреНрд░рд╛рдЗрдм рдЧрд░реНрдиреБ рднрдиреНрджрд╛ рдПрдХ рдкрдЯрдХ ACL рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рдердкреНрди рд╕рдЬрд┐рд▓реЛ рд▓рд╛рдЧреНрдереНрдпреЛред рддрд░ рдпреЛ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдореЗрд░реЛ рдХрд╛рдордХреЛ рд▓рд╛рдЧрд┐ рд╣реЛред рдЕрдиреНрдп рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдлрд░рдХ рдирд┐рд░реНрдгрдп рдЧрд░реНрдиреЗ рддрд░реНрдХ рдЖрд╡рд╢реНрдпрдХ рд╣реБрди рд╕рдХреНрдЫред

рддреНрдпрд╕реИрд▓реЗред рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ ACL рдбреЛрдореЗрдирд╣рд░реВ рдареАрдХ рдЧрд░реМрдВ:

рдбреЛрдореЗрди рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдп: рдЕрдиреБрдорддрд┐ рджрд┐рдиреБрд╣реЛрд╕реН

рдбреЛрдореЗрди ACL рд╕реВрдЪреАрдорд╛, рд╣рд╛рдореА рдиреЗрдЯрд╡рд░реНрдХ рджрд░реНрддрд╛ рдЧрд░реНрдЫреМрдВ:

рдЕрд╕реНрд╡реАрдХрд╛рд░ 192.168.0.0/24

рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдкреБрди: рд▓реЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рд╣рд╛рдореА рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрджреИрдЫреМрдВ: рд╣рд╛рдореА рдлреЗрд░рд┐ рдирдореНрдмрд░ 98343379xxxx рдбрд╛рдпрд▓ рдЧрд░реНрдЫреМрдВ рд░ ... рдЪреЗрдХрдкреЛрдЗрдиреНрдЯ рдЖрдЙрдБрджреИрдЫ ... рдирдорд╕реНрдХрд╛рд░ред рд╕рдмреИ рдХрд╛рдо рднрдЗрд░рд╣реЗрдХреЛ рдЫред
FreeSWITCH рдорд╛ рдХреЗ рднрдпреЛ рд╣реЗрд░реМрдВ:
рдХрд▓ рд╕реБрд░реБ рд╣реБрдиреНрдЫ:

switch_channel.c:1104 New Channel sofia/internal/[email protected]

ACL рдЫреБрдЯреЗрди:

[DEBUG] sofia.c:10263 IP 192.168.0.150 Rejected by acl "domains". Falling back to Digest auth.

рд░ рдердк:

mod_dialplan_xml.c:637 Processing 1010 <1010>->98343379xxxx in context domain.local
sofia/internal/[email protected] Regex (PASS) [Sity] destination_number(98343379xxxx) =~ /^9(8343[23]d{6})$/ break=on-false 

рд░реВрдЯрд┐рдЩ рдмрд┐рддрд┐рд╕рдХреЗрдХреЛ рдЫ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЬрдбрд╛рди рд╕реНрдерд╛рдкрдирд╛ рдЖрдЙрдБрдЫ, рдЬреБрди рд╡рд┐рд╖рдпрдХреЛ рджрд╛рдпрд░рд╛рднрдиреНрджрд╛ рдмрд╛рд╣рд┐рд░ рдЫред

рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ ACL рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рдареЗрдЧрд╛рдирд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдЫреМрдВ, рддрд░ рдкрд╣рд┐рд▓реЛ рдкрд░реАрдХреНрд╖рдгрдмрд╛рдЯ рддрд╕реНрд╡рд┐рд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫреМрдВ, рдЕрд░реНрдерд╛рддреНред ACL рд▓реЗ рдХрд▓ рдЫреЛрдбреНрдиреЗрдЫ рд░ рд░рд╛рдЙрдЯрд┐рдЩрд▓реЗ NO_ROUTE_DESTINATION рднрдиреНрдиреЗрдЫред

рд╕рд╛рдпрдж рдо ACL FusionPBX рдорд╛ рдердкреНрди рдЪрд╛рд╣рд╛рдиреНрдЫреБред

рдорд▓рд╛рдИ рдЖрд╢рд╛ рдЫ рдХрд┐ рдпреЛ рдХрд╕реИрд▓рд╛рдИ рдЙрдкрдпреЛрдЧреА рд╣реБрдиреЗрдЫред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди