рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд╕рд╛рде рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЯреАрдПрд╕реАрдПрд╕реАрдПрд╕ +

рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд▓рд┐рдирдХреНрд╕ рдкрд░ рд╕реЗрд╡рд╛ рдХреЛ рдмрдврд╝рд╛рдирд╛ рдФрд░ рдЗрд╕реЗ 30-60 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред рдореИрдВ рд╡рд┐рд╕реНрддреГрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рддрд░реАрдХреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВред

рд╣рдо рд╕реЗрд╡рд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ OS CentOS рд╣реИред

рдЖрд╡рд╢реНрдпрдХ рд╕реЗрд╡рд╛ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
# yum install gcc # yum install perl-LDAP # yum install bind-utils 

рд╕рднреА рдСрдкрд░реЗрд╢рди "рд░реВрдЯ" рдХреЗ рддрд╣рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
(рдХреНрд░рдорд╢рдГ рд╣реЛрдо рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА / рд░реВрдЯ)

рдЯреИрдХ рдкреНрд▓рд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
 # yum install wget # wget http://www.pro-bono-publico.de/projects/src/DEVEL.tar.bz2 # tar xvfj ./DEVEL.tar.bz2 # cd ./PROJECTS # ./configure # make # make install 

рд▓реЗрдЦрд╛рдВрдХрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬреЛрдбрд╝реЗрдВ
 # mkdir /var/log/tac_plus # mkdir /var/log/tac_plus/access # mkdir /var/log/tac_plus/acct # chmod 760 -R /var/log/tac_plus/ 

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ рдЯреИрдХ рдкреНрд▓рд╕ рдЬреЛрдбрд╝реЗрдВ
 # cp /root/PROJECTS/tac_plus/extra/etc_init.d_tac_plus /etc/init.d/tac_plus # chmod 755 /etc/init.d/tac_plus # chkconfig --add tac_plus # chkconfig --level 2345 tac_plus on 

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ рд╕рдорд╛рд╡реЗрд╢ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
 # chkconfig --list | grep tac_plus 

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
 # cp /root/PROJECTS/tac_plus/extra/tac_plus.cfg-ads /usr/local/etc/tac_plus.cfg # chmod 660 /usr/local/etc/tac_plus.cfg 

!!! рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж, рд╕реЗрд╡рд╛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╕реЗрд╡рд╛ tac_plus рдкреБрдирд░рд╛рд░рдВрдн)
рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрджрд╛рд╣рд░рдг (рдЖрдкрдХреЛ рдЯрд┐рдкреНрдкрдгреА рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж tac_plus.cfg рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)

 #!/usr/local/sbin/tac_plus id = spawnd { listen = { port = 49 } #,   TACACS spawn = { instances min = 1 instances max = 10 } background = yes } id = tac_plus { #   access log = ">/var/log/tac_plus/access/%Y%m%d.log" accounting log = ">/var/log/tac_plus/acct/%Y%m%d.log" #     Active Directory mavis module = external { setenv LDAP_SERVER_TYPE = "microsoft" setenv LDAP_HOSTS = "ldaps://domain.name:636" #     DNS- (   nslookup).     IP  setenv LDAP_SCOPE = sub setenv LDAP_BASE = "dc=domain,dc=name" #    setenv LDAP_FILTER = "(&(objectclass=user)(sAMAccountName=%s))" setenv LDAP_USER = "aduser@domain.name" #      AD setenv LDAP_PASSWD = "passw0rd" #   #setenv AD_GROUP_PREFIX = tacacs #setenv REQUIRE_TACACS_GROUP_PREFIX = 1 #setenv USE_TLS = 0 setenv FLAG_USE_MEMBEROF = 1 exec = /usr/local/lib/mavis/mavis_tacplus_ldap.pl } login backend = mavis user backend = mavis #pap backend = mavis host = world { address = ::/0 welcome banner = "" #Crypt password generate by "openssl passwd -1 clear_text_password" enable 15 = crypt $1$eqIkg6p0$jzhK5. key = "TACACSPASSWORD" #    TACACS- } #      group = ADMIN { message = "[Admin privileges]" default service = permit service = shell { default command = permit default attribute = permit set priv-lvl = 15 } } #            group = VOIP { message = "[VoIP-admin privileges]" default service = permit service = shell { default command = permit default attribute = permit set priv-lvl = 15 cmd = interface { permit "Lo*" permit "Se*" deny .* } cmd = aaa { deny .* } cmd = username { deny .* } cmd = line { deny .* } cmd = delete { deny .* } #cmd = reload { deny .* } cmd = boot { deny .* } cmd = enable { deny .* } cmd = archive { deny .* } cmd = router { deny .* } cmd = ip { permit "address *" deny .* } cmd = tacacs-server { deny .* } cmd = radius-server { deny .* } cmd = privilege { deny .* } cmd = erase { deny .* } cmd = write { permit "memory" deny .* } cmd = format { deny .* } } } } 

рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ (рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рддреЛ рдХреБрдЫ рднреА рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛)
 # /usr/local/sbin/tac_plus -P /usr/local/etc/tac_plus.cfg 

AD рдореЗрдВ рд╕рдореВрд╣ рдмрдирд╛рдПрдВ
рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рдЖрдкрдХреЛ 2 рд╕рдореВрд╣ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░): tacacsadmin рдФрд░ tacacsvoipред
Tac Plus, рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ AD рдореЗрдВ рд╕рдореВрд╣ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдореВрд╣ рдХреЗ рдЕрдиреБрдкрд╛рдд рдХреЗ рд╕рд╛рде рдЙрдкрд╕рд░реНрдЧ "tacacs" рдХреЛ рдХрд╛рдЯ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╢реЗрд╖ рд╡рд░реНрдгреЛрдВ рдХреЛ рдЕрдкрд░рдХреЗрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, tacacsadmin ADMIN рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдФрд░ tacacsvoip VOIP рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ (рдЖрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдХрд░ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ: AD_GROUP_PREFIX рдФрд░ REQUIRE_TACOSS_GROUP_PREFIX)ред
рд╕рдореВрд╣реЛрдВ рдХреЛ рдПрдХ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдмрдбрд╝реЗ рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ!
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрдирд╛рдП рдЧрдП рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

TACACS рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рд░реЛрдХрдирд╛
 # service tac_plus start # service tac_plus stop # service tac_plus restart 

рд╕рд┐рд╕реНрдХреЛ рдЙрдкрдХрд░рдг рдкрд░ рдПрдПрдП рд╕реЗрд╡рд╛ рд╡рд┐рдиреНрдпрд╛рд╕
 tacacs server TACSRV1 !IP- tacacs- address ipv4 172.16.2.2 !    ,       key TACACSPASSWORD timeout 2 ! aaa new-model aaa group server tacacs+ TACSERVICE server name TACSRV1 aaa authentication login default group TACSERVICE local aaa authentication login CONSOLE local aaa authentication enable default group TACSERVICE enable aaa authorization config-commands aaa authorization exec default group TACSERVICE local aaa authorization exec CONSOLE local aaa authorization commands 15 default group TACSERVICE local aaa accounting commands 15 default start-stop group TACSERVICE ! line con 0 login authentication CONSOLE line vty 0 15 

рдбрд┐рдмрдЧ рддрдХрдиреАрдХ
1. LDAP рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ (рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдкрд░реНрд▓-рдПрд▓рдбреАрдПрдкреА рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВред
 # env LDAP_HOSTS="172.16.1.1" LDAP_SERVER_TYPE="microsoft" /usr/local/lib/mavis/mavis_tacplus_ldap.pl 2.   TACACS - LDAP.     RESULT - ACK.      ,     AD. <source lang="bash"> # /usr/local/bin/mavistest /usr/local/etc/tac_plus.cfg tac_plus TACPLUS <login> <password> 

3. рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕реЗрд╡рд╛ tcp 49 рдкрд░ рдЪрд▓ рд░рд╣реА рд╣реИ рдФрд░ рд╕реБрди рд░рд╣реА рд╣реИ
 # netstat -nlp | grep tac_plus 

4. рд╕реЗрд╡рд╛ рдХреЙрд▓ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП
 # tcpdump -nn port 49 

5. рдбрд┐рдмрдЧ рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдЕрдиреБрд░реЛрдз
 # /usr/local/sbin/tac_plus -d 4088 -fp /var/run/tac_plus.pid /usr/local/etc/tac_plus.cfg 

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рд╕рдорд░реНрдерди рд▓рд┐рдВрдХ рдХреЗ рд╕реНрд░реЛрдд:
http://packetroute.wordpress.com/2012/12/12/tacacs-ad-centos-free/
http://www.pro-bono-publico.de/projects/howto-tac_plus-ads.html
http://habrahabr.ru/post/194750/

Source: https://habr.com/ru/post/In217669/


All Articles