рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдо рд╕реЗ рдХрдо рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЛрдореЗрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ddns рдФрд░ рдЙрд╕реЗ рдПрдХ рдЬрдЯрд┐рд▓ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рд╡рд┐рдХрд▓реНрдк "рдкрд╛рд╕рд╡рд░реНрдб рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ"ред рдЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдбреАрдПрдирдПрд╕ рдЬрд╝реЛрди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЕрдиреБрдорддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдбреАрдПрдирдПрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ, "рдХреЗрд╡рд▓ рд╕реБрд░рдХреНрд╖рд┐рдд рдЕрдкрдбреЗрдЯ" рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХрд░реНрдмреЗрд░реЙрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
sudo apt-get install krb5-user
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ /etc/krb5.conf:
[libdefaults] default_realm = DOMAIN.LOCAL [realms] DOMAIN.LOCAL = { kdc = 192.168.2.200 kdc = 192.168.2.202 default_domain = domain.local admin_server = 192.168.2.200 } [domain_realm] .domain.local = DOMAIN.LOCAL domain.local = DOMAIN.LOCAL
рдпрджреНрдпрдкрд┐ рдЧреНрд░рд╛рд╣рдХ рдЗрд╕ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛:
[libdefaults] default_realm = DOMAIN.LOCAL
рдХреЗрд░реНрдмрд░реЛрд╕ рдХреЗ рд▓рд┐рдП, рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдЙрддреНрддрд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдШрдбрд╝реА рдХрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рд╣реИред рдЖрдк ntpd рд╕реЗрд╡рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рд╕рд╣реА рд╕рдордп рдмрдирд╛рдП рд░рдЦреЗрдЧрд╛:
sudo apt-get install ntp
Ktutil рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдПрдХ рдХреАрдЯрд╛рдм рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдЬрд┐рд╕рдореЗрдВ ddns рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
sudo ktutil ktutil: addent -password -p ddns@DOMAIN.LOCAL -k 1 -e rc4-hmac ktutil: write_kt krb5.keytab ktutil: quit
рдЕрдм рдЖрдк рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
kinit -k -t krb5.keytab ddns
рдХреЛрдИ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд╣реАрдВ рдирд┐рдХрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рдкреНрд░рд╛рдкреНрдд рдЯрд┐рдХрдЯ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: ddns@DOMAIN.LOCAL Valid starting Expires Service principal 29.04.2014 14:50:39 30.04.2014 00:50:39 krbtgt/DOMAIN.LOCAL@DOMAIN.LOCAL renew until 30.04.2014 14:50:39
рдпрджрд┐ рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ (рдЖрджрд┐ / krb5.keytab) рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХреАрдЯреИрдм рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрдорд╛рдВрдб рдХреЛ рдЫреЛрдЯрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
kinit -k ddns
рдЕрдм рдпрд╣ рдХреЗрд╡рд▓ рдУрдкрдирд╡реАрдПрдирдПрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Openvpn рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
learn-address /etc/openvpn/learn-address.sh
рд╕реАрдЦрд┐рдП
#!/bin/bash dnsserver=192.168.2.200 fwdzone=domain.local revzone=7.168.192.in-addr.arpa ttl=300 op=$1 addr=$2 revaddr=`echo $addr | sed -re 's:([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+):\4.\3.\2.\1.in-addr.arpa:'` cn=$3 fqdn=$cn.$fwdzone dir=/etc/openvpn/dns addfile=$dir/add_$addr delfile=$dir/del_$addr keytab_file=/etc/openvpn/krb5.keytab user=ddns addRecord() { kinit -k -t $keytab_file $user cat > $addfile << EOF gsstsig server $dnsserver zone $fwdzone update delete $fqdn a update add $fqdn $ttl a $addr send zone $revzone update delete $revaddr ptr update add $revaddr $ttl ptr $fqdn send EOF cat > $delfile << EOF gsstsig server $dnsserver zone $fwdzone update delete $fqdn a send zone $revzone update delete $revaddr ptr send EOF nsupdate -v $addfile rm -f $addfile } delRecord() { kinit -k -t $keytab_file $user nsupdate -v $delfile rm -f $delfile } case $op in add|update) addRecord ;; delete) delRecord ;; *) echo "Unable to handle operation $op. Exiting" exit 1 esac
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдореБрдЦреНрдп рдмрд┐рдВрджреБ nsupdate рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ gsstsig рд╡рд┐рдХрд▓реНрдк рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, kinit <user> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЛрдореЗрди рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдПрдХ рдЯрд┐рдХрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред