статья ldap+samba+ddns+dhcp [бета-версия]
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- рядовой
- Сообщения: 30
- Зарегистрирован: 2009-03-04 19:13:15
- Откуда: Москва
- Контактная информация:
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Всем привет, опять траблы замучали Никак не могу разобратся, вроде гугл обшарил, понимания не добился...
Исходная: домен поднялся, днс работает, машинки в домен входят... Но при попытке добавить пользователя при помощи UserManager получаю радостное сообщение "Присоединенное к системе устройство не работает".
Может кто сталкивался с подобным? А то уже весь мозг сломал
Исходная: домен поднялся, днс работает, машинки в домен входят... Но при попытке добавить пользователя при помощи UserManager получаю радостное сообщение "Присоединенное к системе устройство не работает".
Может кто сталкивался с подобным? А то уже весь мозг сломал
«Только песок не меняется, всё остальное изменчиво.» — Один из джав Анкорхеда
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- подполковник
- Сообщения: 3927
- Зарегистрирован: 2008-09-04 11:51:25
- Откуда: Санкт-Петербург
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Проверяй как прописаны в smb.conf скрипты, ну и смотри лог самбы, хотя честно говоря у меня с ldapscripts тоже ничего не получалось, сейчас я использую smbldap-tools.
-
- сержант
- Сообщения: 224
- Зарегистрирован: 2008-05-16 21:23:38
- Откуда: Москва
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Есть желание перевести всех пользователей (400 душ) с виндузятины на openldap. Поднял по статье. Плюс squid с авторизацией squid_ldap_auth. С чем столкнулся:
1. С помощью вашевыложенного скрипта добавления\удаления пользователей заводятся пользователи с шифрованием пароля ssha. Сквид почему то хавает авторизацию, если шифровано sha. Если перешифровываю в sha, то работает и сквид и самба. Как заставить или сквид хавать ssha или smbpasswd шифровать в sha ? Требуется максимально упросить процесс администрирования пользователей админами без опыта.
2. Не смог найти информацию, возможно ли сделать прозрачную аутентификацию на прокси. После прозрачной авторизации с помощью ntlm юзвери будут верещать.. 400 голосов разорвут мозг
3. Не понял,какие права должны быть на ../netlogon и содержимое для подхватывания политик на скриптах, в логи сыпется:
4. С помощью ldapadmin не создаются домашние и профильные папки и еще бог весть чего там не создается..
Видел там обещание продолжения статьи по поднятию остальных доменных сервисов. Есть смысл ждать в ближайшее время?
1. С помощью вашевыложенного скрипта добавления\удаления пользователей заводятся пользователи с шифрованием пароля ssha. Сквид почему то хавает авторизацию, если шифровано sha. Если перешифровываю в sha, то работает и сквид и самба. Как заставить или сквид хавать ssha или smbpasswd шифровать в sha ? Требуется максимально упросить процесс администрирования пользователей админами без опыта.
2. Не смог найти информацию, возможно ли сделать прозрачную аутентификацию на прокси. После прозрачной авторизации с помощью ntlm юзвери будут верещать.. 400 голосов разорвут мозг
3. Не понял,какие права должны быть на ../netlogon и содержимое для подхватывания политик на скриптах, в логи сыпется:
Код: Выделить всё
'/usr/local/etc/samba/netlogon' does not exist or permission denied when connecting to [netlogon] Error was Permission denied
Видел там обещание продолжения статьи по поднятию остальных доменных сервисов. Есть смысл ждать в ближайшее время?
-
- сержант
- Сообщения: 224
- Зарегистрирован: 2008-05-16 21:23:38
- Откуда: Москва
Re: статья ldap+samba+ddns+dhcp [бета-версия]
вообщем,чтобы не нарушать права на /usr/local/etc/samba/ , перенес netlogon в др. место и дал нужные права, подхватило скрипты.
-
- рядовой
- Сообщения: 33
- Зарегистрирован: 2009-11-13 12:46:40
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Народ, выручайте! никак не могу отстроить резолв доменных машин. Bind резолвит инетовски е адреса без проблем, но только не те машины, которые прописаны у меня в ldap
Связка: ldap24+bind9-sdb-ldap-9.4.3.1+bind9-sdb-ldap-9.4.3.1+bind9-sdb-ldap-9.4.3.1
named.conf
Проблем с rndc - нет.
Почему не догу достучаться до ldap, не знаю..
Пробовал и через ldaps - никак, в этом случае вообще ругается на то что не может создать базу в ldap.
У кого был удачный опыт, поделитесь, пожалуйста..
Спасибо за оперативность.
Связка: ldap24+bind9-sdb-ldap-9.4.3.1+bind9-sdb-ldap-9.4.3.1+bind9-sdb-ldap-9.4.3.1
named.conf
Код: Выделить всё
acl lan { 10.0.22.0/24; };
acl transfers { 127.0.0.1; };
acl trusted { 10.0.22.0/24; };
acl vpn { 10.0.0.0/24; };
key "rndc-key" {
algorithm hmac-md5;
secret "7ygJcl/F1TxU3wXF+iTnYQ==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
options {
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
version "Windows 95";
listen-on { 127.0.0.1; 10.0.22.2; };
forward only;
forwarders { 212.122.1.2; 212.107.200.68; };
allow-query { lan; trusted; vpn; };
allow-recursion { trusted; lan; vpn; };
query-source address *;
};
zone "." {
type hint;
file "named.root";
};
zone "meat" IN {
type master;
database "ldap ldap://10.0.2.2/zoneName=meat,ou=DNS,dc=meat????!bindname=cn=ldapadmin%2cdc=meat,!x-bindpw=J,fkltnm 178600";
allow-query { lan; };
notify no;
};
zone "22.0.10.in-addr.arpa" IN {
type master;
database "ldap ldap://10.0.22.2/zoneName=22.0.10.in-addr.arpa,ou=DNS,dc=meat????!bindname=cn=lapadmin%2cdc=meat,!x-bindpw=J,fkltnm 178600";
allow-query { lan; };
notify no;
};
zone "0.0.127.in-addr.arpa" IN {
type master;
database "ldap ldap://10.0.22.2/zoneName=0.0.127.in-addr.arpa,ou=DNS,dc=meat????!bindname=cn=ldapadmin%2cdc=meat,!x-bindpw=J,fkltnm 178600";
allow-query { lan; };
notify no;
};
Почему не догу достучаться до ldap, не знаю..
Пробовал и через ldaps - никак, в этом случае вообще ругается на то что не может создать базу в ldap.
У кого был удачный опыт, поделитесь, пожалуйста..
Спасибо за оперативность.
-
- проходил мимо
- Сообщения: 2
- Зарегистрирован: 2009-09-01 13:04:20
Re: статья ldap+samba+ddns+dhcp [бета-версия]
А кто-нибудь пробовал запустить tftp с этими опциями?
# для tftp
#dhcpOption: bootfile-name "pxelinux.0";
#dhcpOption: tftp-server-name "192.168.10.8";
у меня на 7.2 - кинул загрузчик thinstation, загружаюсь на vmware и никак. Если сменить настройки dhcp с ldap на обычный текстовый формат и указать опцию next server - ВСЕ ПУЧКОМ. Выходит что ldap вариант не работоспособный?
# для tftp
#dhcpOption: bootfile-name "pxelinux.0";
#dhcpOption: tftp-server-name "192.168.10.8";
у меня на 7.2 - кинул загрузчик thinstation, загружаюсь на vmware и никак. Если сменить настройки dhcp с ldap на обычный текстовый формат и указать опцию next server - ВСЕ ПУЧКОМ. Выходит что ldap вариант не работоспособный?
-
- проходил мимо
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Здраствуйте.
Установленно:
openldap-server-2.3.43
bind9-sdb-ldap-9.4.3.1
В named.conf:
database "ldap ldap://127.0.0.1/zoneName=itc,ou=dns,dc=itc,dc=net 178600";
В логах:
Jan 7 13:45:36 BSDpdc named[28520]: unsupported database type 'ldap'
Jan 7 13:45:36 BSDpdc named[28520]: zone 1.168.192.IN-ADDR.ARPA/IN: loading zone: creating database: not found
Jan 7 13:45:36 BSDpdc named[28520]: unsupported database type 'ldap'
Jan 7 13:45:36 BSDpdc named[28520]: zone itc/IN: loading zone: creating database: not found
Весело короче А если серьезно то никто не встречал сие чудо?
Установленно:
openldap-server-2.3.43
bind9-sdb-ldap-9.4.3.1
В named.conf:
database "ldap ldap://127.0.0.1/zoneName=itc,ou=dns,dc=itc,dc=net 178600";
В логах:
Jan 7 13:45:36 BSDpdc named[28520]: unsupported database type 'ldap'
Jan 7 13:45:36 BSDpdc named[28520]: zone 1.168.192.IN-ADDR.ARPA/IN: loading zone: creating database: not found
Jan 7 13:45:36 BSDpdc named[28520]: unsupported database type 'ldap'
Jan 7 13:45:36 BSDpdc named[28520]: zone itc/IN: loading zone: creating database: not found
Весело короче А если серьезно то никто не встречал сие чудо?
-
- рядовой
- Сообщения: 10
- Зарегистрирован: 2009-11-02 23:01:11
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Еще помучал скрипт dhcp2ldap.pl после тестирования на реальной и виртуальной сетке. В виртуальной сети DHCP настроен на малое время аренды адресов и частыми запросами на возобновление оных. В результате получилось такое:
Если кто-то дополнительно потестит - будет славно.
PS Сам я от связки DDNS-LDAP отказался.
В результате остановился на варианте DHCP-LDAP и DDNS классический - файлами.
Код: Выделить всё
#!/usr/bin/perl
####################################################################
# Edit These for Your Domain #
####################################################################
$LEASES = "/var/db/dhcpd/dhcpd.leases";
$DOMAIN = "domain.local";
$REVERSE = "0.168.192.in-addr.arpa";
$FORWARD_BASE = "zoneName=domain.local,ou=DNS,dc=domain,dc=local";
$REVERSE_BASE = "zoneName=0.168.192.in-addr.arpa,ou=DNS,dc=domain,dc=local";
$USER = 'cn=manager,dc=domain,dc=local';
$PASSWORD = "shajtanparol";
$LDAP_HOST = '127.0.0.1';
$UPDATE_TIME = 30; # In Seconds
$AUTO_VERIFY = 0; # Set this to positive if you would like dhcp2ldap
# to periodically re-read the entire leases file
# even if the time stamp hasn't changed
#
# It will perform the auto-verify after
# ($AUTO_VERIFY * $UPDATE_TIME) seconds
#
# This is probably a good idea unless your parse times
# are incredibly high
####################################################################
# Do Not Edit Below This Line #
####################################################################
use IO::Socket;
use Net::LDAP;
print "Initializing LDAP Connection...";
$ldap = Net::LDAP->new($LDAP_HOST) or die "$@";
$ldap->bind($USER, password => $PASSWORD) or die "$!\n";
print "Done\n";
$params = shift;
if($params eq "-d"){
daemonize();
}
if($params eq "-h"){
usage();
exit;
}
while(1){
if(changed($LEASES)){
parse($LEASES);
do_stuff();
}
sleep $UPDATE_TIME;
}
sub changed{
my $file = shift;
my $curstat = (stat($file))[9];
if($AUTO_VERIFY){
$check_count++;
}
if($oldstat != $curstat || (($check_count == $AUTO_VERIFY) && $AUTO_VERIFY)){
$oldstat = $curstat;
$check_count = 0;
print "Timestamp change or AUTO_VERIFY triggered...\n";
return 1;
}
else{
return 0;
}
}
sub daemonize{
chdir '/';
umask 0;
open STDIN, '/dev/null';
open STDOUT, '/dev/null';
open STDERR, '/dev/null';
if(fork()){
exit;
}
else{
setsid;
return;
}
}
sub parse {
my $ip,$hostname,@freeip=(),@date,$tstamp;
open IN, shift or die "Could not open leases file: $!\n";
while($_ = <IN>){
if(/^#/){
next;
}
chomp $_;
if(/lease/){
/\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}/;
$ip = $&;
while(!(/\}/)){
$_ = <IN>;
if (/\s+ends\s\d+\s/){
/\d+\/\d+\/\d+\s\d+\:\d+\:\d+/;
$_ = $&;
$tstamp=$&;
}
if (/\s+binding\s*state\s*free;/){
$freeip{$ip} = $tstamp;
}
if(/client-hostname/){
/\".*\"/;
$_ = $&;
/\w+\S*\w+/;
$_ = $&;
$hostname = lc;
$hosts{$hostname}{'ip'} = $ip;
$hosts{$hostname}{'datetime'} = $tstamp;
}
}
}
}
close IN;
}
sub do_stuff {
my $readd, $ip, $noadd=0, $ts_ip, $hostname;
foreach my $host (keys(%hosts)) {
$hostname = $host;
$ip = $hosts{$host}{'ip'};
$ts_ip = $hosts{$host}{'datetime'};
$lookup = "";
eval{$lookup = inet_ntoa((gethostbyname($hostname.".".$DOMAIN))[4]); };
($first,$second,$third,$fourth) = split(/\./,$ip);
($first_l,$second_l,$third_l,$fourth_l) = split(/\./,$lookup);
while(($frip,$ts_frip) = each(%freeip)){
if ($ip eq $frip){
if (($ip eq $lookup)&&($ts_frip gt $ts_ip)){
print "Removing old records for $hostname...\n";
$result = $ldap->delete("relativeDomainName=".$hostname.",".$FORWARD_BASE);
$result->code && warn "failed to remove entry: ", $result->error ;
$result = $ldap->delete("relativeDomainName=".$fourth_l.",".$REVERSE_BASE);
$result->code && warn "failed to remove entry: ", $result->error ;
}
if (!$lookup){
if ($ts_frip gt $ts_ip){
$noadd = 1;
}
if ($ts_frip le $ts_ip){
$noadd = 0;
}
}
}
}
if($noadd){
next;
}
if(!$lookup){
add();
$readd = 0;
next;
}
if($lookup eq $ip){
next;
}
if($lookup ne $ip){
print "Removing inaccurate records for $hostname...\n\n";
$result = $ldap->delete("relativeDomainName=".$hostname.",".$FORWARD_BASE);
$result->code && warn "failed to remove entry: ", $result->error ;
$result = $ldap->delete("relativeDomainName=".$fourth_l.",".$REVERSE_BASE);
$result->code && warn "failed to remove entry: ", $result->error ;
$readd = 1;
}
if($readd){
add();
$readd = 0;
}
sub add {
print "Adding entry for $host at $ip...\n";
$result = $ldap->add ("relativeDomainName=".$hostname.",".$FORWARD_BASE,
attr => [
'relativeDomainName'=> $host,
'objectClass'=> ['top','dNSZone'],
'dNSTTL' => '7200',
'zoneName' => $DOMAIN,
'aRecord' => $ip
]
);
$result->code && warn "failed to add entry: ", $result->error ;
$result = $ldap->add ( "relativeDomainName=".$fourth."," . $REVERSE_BASE,
attr => [
'relativeDomainName'=> "$fourth",
'objectClass'=> ['top','dNSZone'],
'dNSTTL' => '7200',
'zoneName' => $REVERSE,
'pTRRecord' => $hostname
]
);
$result->code && warn "failed to add entry: ", $result->error ;
}
}
}
sub usage{
print <<EOF;
dhcp2ldapd v1.1: Dynamic DNS Updates for the Bind9 LDAP backend
Copyright 2005 Travis Groth <travis\@netfoo.org> under the GNU GPL
Usage:
dhcp2ldapd [-d | -h]
-d runs dhcp2ldap in daemon mode
-h displays this help message
Please edit the config variables before running!
EOF
}
#############################################################################
#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#############################################################################
PS Сам я от связки DDNS-LDAP отказался.
В результате остановился на варианте DHCP-LDAP и DDNS классический - файлами.
-
- проходил мимо
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Здраствуйте. Решил проблему выше. Сдал себя комментом к обсуждаемой статье=) Хочу обратится именно к товарищу f0sу. Неоднократно наблюдал ваши сообщения в сети с вопросом примерно такого содержания: "умеет ли bind нативно связываться по ssl без использования stunnel". Вы решили эту проблему? Если да то хоть намекните пожалуйста в каком напровлении копать. Заранее спасибо.
-
- рядовой
- Сообщения: 33
- Зарегистрирован: 2009-11-13 12:46:40
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Замечен глюк..Siddha писал(а):Еще помучал скрипт dhcp2ldap.pl после тестирования на реальной и виртуальной сетке. В виртуальной сети DHCP настроен на малое время аренды адресов и частыми запросами на возобновление оных. В результате получилось такое:Если кто-то дополнительно потестит - будет славно.Код: Выделить всё
#!/usr/bin/perl #################################################################### # Edit These for Your Domain # #################################################################### $LEASES = "/var/db/dhcpd/dhcpd.leases"; $DOMAIN = "domain.local"; $REVERSE = "0.168.192.in-addr.arpa"; $FORWARD_BASE = "zoneName=domain.local,ou=DNS,dc=domain,dc=local"; $REVERSE_BASE = "zoneName=0.168.192.in-addr.arpa,ou=DNS,dc=domain,dc=local"; $USER = 'cn=manager,dc=domain,dc=local'; $PASSWORD = "shajtanparol"; $LDAP_HOST = '127.0.0.1'; $UPDATE_TIME = 30; # In Seconds $AUTO_VERIFY = 0; # Set this to positive if you would like dhcp2ldap # to periodically re-read the entire leases file # even if the time stamp hasn't changed # # It will perform the auto-verify after # ($AUTO_VERIFY * $UPDATE_TIME) seconds # # This is probably a good idea unless your parse times # are incredibly high #################################################################### # Do Not Edit Below This Line # #################################################################### use IO::Socket; use Net::LDAP; print "Initializing LDAP Connection..."; $ldap = Net::LDAP->new($LDAP_HOST) or die "$@"; $ldap->bind($USER, password => $PASSWORD) or die "$!\n"; print "Done\n"; $params = shift; if($params eq "-d"){ daemonize(); } if($params eq "-h"){ usage(); exit; } while(1){ if(changed($LEASES)){ parse($LEASES); do_stuff(); } sleep $UPDATE_TIME; } sub changed{ my $file = shift; my $curstat = (stat($file))[9]; if($AUTO_VERIFY){ $check_count++; } if($oldstat != $curstat || (($check_count == $AUTO_VERIFY) && $AUTO_VERIFY)){ $oldstat = $curstat; $check_count = 0; print "Timestamp change or AUTO_VERIFY triggered...\n"; return 1; } else{ return 0; } } sub daemonize{ chdir '/'; umask 0; open STDIN, '/dev/null'; open STDOUT, '/dev/null'; open STDERR, '/dev/null'; if(fork()){ exit; } else{ setsid; return; } } sub parse { my $ip,$hostname,@freeip=(),@date,$tstamp; open IN, shift or die "Could not open leases file: $!\n"; while($_ = <IN>){ if(/^#/){ next; } chomp $_; if(/lease/){ /\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}/; $ip = $&; while(!(/\}/)){ $_ = <IN>; if (/\s+ends\s\d+\s/){ /\d+\/\d+\/\d+\s\d+\:\d+\:\d+/; $_ = $&; $tstamp=$&; } if (/\s+binding\s*state\s*free;/){ $freeip{$ip} = $tstamp; } if(/client-hostname/){ /\".*\"/; $_ = $&; /\w+\S*\w+/; $_ = $&; $hostname = lc; $hosts{$hostname}{'ip'} = $ip; $hosts{$hostname}{'datetime'} = $tstamp; } } } } close IN; } sub do_stuff { my $readd, $ip, $noadd=0, $ts_ip, $hostname; foreach my $host (keys(%hosts)) { $hostname = $host; $ip = $hosts{$host}{'ip'}; $ts_ip = $hosts{$host}{'datetime'}; $lookup = ""; eval{$lookup = inet_ntoa((gethostbyname($hostname.".".$DOMAIN))[4]); }; ($first,$second,$third,$fourth) = split(/\./,$ip); ($first_l,$second_l,$third_l,$fourth_l) = split(/\./,$lookup); while(($frip,$ts_frip) = each(%freeip)){ if ($ip eq $frip){ if (($ip eq $lookup)&&($ts_frip gt $ts_ip)){ print "Removing old records for $hostname...\n"; $result = $ldap->delete("relativeDomainName=".$hostname.",".$FORWARD_BASE); $result->code && warn "failed to remove entry: ", $result->error ; $result = $ldap->delete("relativeDomainName=".$fourth_l.",".$REVERSE_BASE); $result->code && warn "failed to remove entry: ", $result->error ; } if (!$lookup){ if ($ts_frip gt $ts_ip){ $noadd = 1; } if ($ts_frip le $ts_ip){ $noadd = 0; } } } } if($noadd){ next; } if(!$lookup){ add(); $readd = 0; next; } if($lookup eq $ip){ next; } if($lookup ne $ip){ print "Removing inaccurate records for $hostname...\n\n"; $result = $ldap->delete("relativeDomainName=".$hostname.",".$FORWARD_BASE); $result->code && warn "failed to remove entry: ", $result->error ; $result = $ldap->delete("relativeDomainName=".$fourth_l.",".$REVERSE_BASE); $result->code && warn "failed to remove entry: ", $result->error ; $readd = 1; } if($readd){ add(); $readd = 0; } sub add { print "Adding entry for $host at $ip...\n"; $result = $ldap->add ("relativeDomainName=".$hostname.",".$FORWARD_BASE, attr => [ 'relativeDomainName'=> $host, 'objectClass'=> ['top','dNSZone'], 'dNSTTL' => '7200', 'zoneName' => $DOMAIN, 'aRecord' => $ip ] ); $result->code && warn "failed to add entry: ", $result->error ; $result = $ldap->add ( "relativeDomainName=".$fourth."," . $REVERSE_BASE, attr => [ 'relativeDomainName'=> "$fourth", 'objectClass'=> ['top','dNSZone'], 'dNSTTL' => '7200', 'zoneName' => $REVERSE, 'pTRRecord' => $hostname ] ); $result->code && warn "failed to add entry: ", $result->error ; } } } sub usage{ print <<EOF; dhcp2ldapd v1.1: Dynamic DNS Updates for the Bind9 LDAP backend Copyright 2005 Travis Groth <travis\@netfoo.org> under the GNU GPL Usage: dhcp2ldapd [-d | -h] -d runs dhcp2ldap in daemon mode -h displays this help message Please edit the config variables before running! EOF } ############################################################################# #This program is free software; you can redistribute it and/or modify #it under the terms of the GNU General Public License as published by #the Free Software Foundation; either version 2 of the License, or #(at your option) any later version. # #This program is distributed in the hope that it will be useful, #but WITHOUT ANY WARRANTY; without even the implied warranty of #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #GNU General Public License for more details. # #You should have received a copy of the GNU General Public License #along with this program; if not, write to the Free Software #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #############################################################################
PS Сам я от связки DDNS-LDAP отказался.
В результате остановился на варианте DHCP-LDAP и DDNS классический - файлами.
Машмна по маку получила ИП 10.0.22.15 (так оно и есть)
в DNS прилетела запись с ип для этой машины 10.0.22.96
-
- рядовой
- Сообщения: 10
- Зарегистрирован: 2009-11-02 23:01:11
Re: статья ldap+samba+ddns+dhcp [бета-версия]
dhcpd.leases приложить не сложно? Тот в котором отражено, что машина получила по маку такой-то IP.
У меня все машины, которым нужен фиксированный IP, получают его не по DHCP. Адреса прописаны руками на интерфейсах и находятся вне динамического пула адресов DHCP сервера и в dhcpd.leases не отражаются.
Логика же скрипта такова:
Парсится dhcpd.leases блоками такого типа
Для добавления в LDAP
И такого типа
Для удаления из LDAP
Флагом для удаления выступает строка
..........................
binding state free;
..........................
У меня все машины, которым нужен фиксированный IP, получают его не по DHCP. Адреса прописаны руками на интерфейсах и находятся вне динамического пула адресов DHCP сервера и в dhcpd.leases не отражаются.
Логика же скрипта такова:
Парсится dhcpd.leases блоками такого типа
Код: Выделить всё
lease 192.168.3.190 {
starts 1 2010/01/18 16:17:03;
ends 1 2010/01/18 17:17:03;
binding state active;
next binding state free;
hardware ethernet 00:05:5d:19:a5:17;
uid "\001\000\005]\031\245\027";
client-hostname "marinadesign";
}
И такого типа
Код: Выделить всё
lease 192.168.3.190 {
starts 1 2010/01/18 17:17:03;
ends 1 2010/01/18 18:17:03;
binding state free;
hardware ethernet 00:05:5d:19:a5:17;
uid "\001\000\005]\031\245\027";
client-hostname "marinadesign";
}
Флагом для удаления выступает строка
..........................
binding state free;
..........................
-
- рядовой
- Сообщения: 33
- Зарегистрирован: 2009-11-13 12:46:40
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Отбой, всё гут.. я в крон ещё запихал скрипт.. к утру обнаружил что всё отлично..Siddha писал(а):dhcpd.leases приложить не сложно? Тот в котором отражено, что машина получила по маку такой-то IP.
У меня все машины, которым нужен фиксированный IP, получают его не по DHCP. Адреса прописаны руками на интерфейсах и находятся вне динамического пула адресов DHCP сервера и в dhcpd.leases не отражаются.
Логика же скрипта такова:
Парсится dhcpd.leases блоками такого типаДля добавления в LDAPКод: Выделить всё
lease 192.168.3.190 { starts 1 2010/01/18 16:17:03; ends 1 2010/01/18 17:17:03; binding state active; next binding state free; hardware ethernet 00:05:5d:19:a5:17; uid "\001\000\005]\031\245\027"; client-hostname "marinadesign"; }
И такого типаДля удаления из LDAPКод: Выделить всё
lease 192.168.3.190 { starts 1 2010/01/18 17:17:03; ends 1 2010/01/18 18:17:03; binding state free; hardware ethernet 00:05:5d:19:a5:17; uid "\001\000\005]\031\245\027"; client-hostname "marinadesign"; }
Флагом для удаления выступает строка
..........................
binding state free;
..........................
Остался единственный глюк в LDAP, это не резолвятся машиный, которые ща у меня в LDAP'е..
-
- рядовой
- Сообщения: 10
- Зарегистрирован: 2009-11-02 23:01:11
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Ldif DNSa выложи.patcha писал(а): Отбой, всё гут.. я в крон ещё запихал скрипт.. к утру обнаружил что всё отлично..
Остался единственный глюк в LDAP, это не резолвятся машиный, которые ща у меня в LDAP'е..
и в конфиге binda или закомментируй строку
Код: Выделить всё
query-source address *
или тогда уж, как в оригинальном конфиге сказано, сделай в виде
Код: Выделить всё
query-source address * port NNNNN;
query by default in order to dramatically reduce the possibility
of cache poisoning. All users are strongly encouraged to utilize
this feature, and to configure their firewalls to accommodate it.
AS A LAST RESORT in order to get around a restrictive firewall
policy you can try enabling the option below. Use of this option
will significantly reduce your ability to withstand cache poisoning
attacks, and should be avoided if at all possible.
Replace NNNNN in the example with a number between 49160 and 65530.
-
- рядовой
- Сообщения: 33
- Зарегистрирован: 2009-11-13 12:46:40
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Коментик квэри и порт выставлял 55555, ничего ((Siddha писал(а):Ldif DNSa выложи.patcha писал(а): Отбой, всё гут.. я в крон ещё запихал скрипт.. к утру обнаружил что всё отлично..
Остался единственный глюк в LDAP, это не резолвятся машиный, которые ща у меня в LDAP'е..
и в конфиге binda или закомментируй строкуКод: Выделить всё
query-source address *
или тогда уж, как в оригинальном конфиге сказано, сделай в видеModern versions of BIND use a random UDP port for each outgoingКод: Выделить всё
query-source address * port NNNNN;
query by default in order to dramatically reduce the possibility
of cache poisoning. All users are strongly encouraged to utilize
this feature, and to configure their firewalls to accommodate it.
AS A LAST RESORT in order to get around a restrictive firewall
policy you can try enabling the option below. Use of this option
will significantly reduce your ability to withstand cache poisoning
attacks, and should be avoided if at all possible.
Replace NNNNN in the example with a number between 49160 and 65530.
это вгружал в LDAP:
Код: Выделить всё
dn: ou=DNS,dc=meat
objectClass: top
objectClass: organizationalUnit
ou: DNS
description: Domain Zones
dn: zoneName=meat,ou=DNS,dc=meat
objectClass: top
objectClass: dNSZone
zoneName: meat
relativeDomainName: meat
dn: relativeDomainName=@,zoneName=meat,ou=DNS,dc=meat
objectClass: top
objectClass: dNSZone
zoneName: meat
relativeDomainName: @
nSRecord: ns1.meat.
sOARecord: ns1.meat. root.meat. 1 8H 2H 1W 1D
dn: relativeDomainName=ns1,zoneName=meat,ou=DNS,dc=meat
objectClass: top
objectClass: dNSZone
zoneName: meat
relativeDomainName: ns1
dNSClass: IN
aRecord: 10.0.22.2
dn: relativeDomainName=ns2,zoneName=meat,ou=DNS,dc=meat
objectClass: top
objectClass: dNSZone
zoneName: meat
relativeDomainName: ns2
dNSClass: IN
aRecord: 10.0.22.3
dn: relativeDomainName=gateway,zoneName=meat,ou=DNS,dc=meat
objectClass: top
objectClass: dNSZone
zoneName: meat
relativeDomainName: gateway
dNSClass: IN
aRecord: 10.0.22.200
dn: relativeDomainName=fileserver,zoneName=meat,ou=DNS,dc=meat
objectClass: top
objectClass: dNSZone
zoneName: meat
relativeDomainName: fileserver
dNSClass: IN
aRecord: 10.0.22.100
dn: zoneName=22.0.10.in-addr.arpa,ou=DNS,dc=meat
objectClass: top
objectClass: dNSZone
zoneName: 22.0.10.in-addr.arpa
relativeDomainName: 22.0.10.in-addr.arpa
dn: relativeDomainName=@,zoneName=22.0.10.in-addr.arpa,ou=DNS,dc=meat
objectClass: top
objectClass: dNSZone
relativeDomainName: @
nSRecord: ns1.meat.
sOARecord: ns1.meat. ns2.meat. root.meat. 1 8H 2H 1W 1D
zoneName: 22.0.10.in-addr.arpa
dn: relativeDomainName=2,zoneName=22.0.10.in-addr.arpa,ou=DNS,dc=meat
objectClass: top
objectClass: dNSZone
relativeDomainName: 2
pTRRecord: ns1.meat.
zoneName: 22.0.10.in-addr.arpa
dn: relativeDomainName=3,zoneName=22.0.10.in-addr.arpa,ou=DNS,dc=meat
objectClass: top
objectClass: dNSZone
relativeDomainName: 3
pTRRecord: ns2.meat.
zoneName: 22.0.10.in-addr.arpa
dn: relativeDomainName=200,zoneName=22.0.10.in-addr.arpa,ou=DNS,dc=meat
objectClass: top
objectClass: dNSZone
relativeDomainName: 200
pTRRecord: gateway.meat.
zoneName: 22.0.10.in-addr.arpa
dn: relativeDomainName=100,zoneName=22.0.10.in-addr.arpa,ou=DNS,dc=meat
objectClass: top
objectClass: dNSZone
relativeDomainName: 100
pTRRecord: fileserver.meat.
zoneName: 22.0.10.in-addr.arpa
dn: relativeDomainName=localhost,zoneName=meat,ou=DNS,dc=meat
objectClass: top
objectClass: dNSZone
zoneName: meat
relativeDomainName: localhost
dNSClass: IN
aRecord: 127.0.0.1
dn: zoneName=0.0.127.in-addr.arpa,ou=DNS,dc=meat
objectClass: top
objectClass: dNSZone
relativeDomainName: 0.0.127.in-addr.arpa
zoneName: 0.0.127.in-addr.arpa
dn: relativeDomainName=@,zoneName=0.0.127.in-addr.arpa,ou=DNS,dc=meat
objectClass: top
objectClass: dNSZone
relativeDomainName: @
zoneName: 0.0.127.in-addr.arpa
nSRecord: ns1.meat.
sOARecord: ns1.meat. ns2.meat. root.meat. 1 3H 1H 12W 1H
dn: relativeDomainName=1,zoneName=0.0.127.in-addr.arpa,ou=DNS,dc=meat
objectClass: top
objectClass: dNSZone
relativeDomainName: 1
pTRRecord: localhost.meat.
zoneName: 0.0.127.in-addr.arpa
-
- рядовой
- Сообщения: 10
- Зарегистрирован: 2009-11-02 23:01:11
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Внимательно смотрим на строки sOARecord:......... и оставляем только один ns1.meat.patcha писал(а):Код: Выделить всё
dn: relativeDomainName=@,zoneName=meat,ou=DNS,dc=meat objectClass: top objectClass: dNSZone zoneName: meat relativeDomainName: @ nSRecord: ns1.meat. sOARecord: ns1.meat. root.meat. 1 8H 2H 1W 1D dn: relativeDomainName=@,zoneName=22.0.10.in-addr.arpa,ou=DNS,dc=meat objectClass: top objectClass: dNSZone relativeDomainName: @ nSRecord: ns1.meat. sOARecord: ns1.meat. ns2.meat. root.meat. 1 8H 2H 1W 1D zoneName: 22.0.10.in-addr.arpa dn: relativeDomainName=@,zoneName=0.0.127.in-addr.arpa,ou=DNS,dc=meat objectClass: top objectClass: dNSZone relativeDomainName: @ zoneName: 0.0.127.in-addr.arpa nSRecord: ns1.meat. sOARecord: ns1.meat. ns2.meat. root.meat. 1 3H 1H 12W 1H
это имя мастер сервера ДНС отвечающего за данную зону. Ниже, в записи типа NS снова будет назван этот сервер, но записей типа NS может быть много, так как у зоны может быть много авторитетных серверов. При этом один из них master, а остальные slave. В данном поле записи SOA указано какой из этих серверов будет сервером master.
http://8bit.homeunix.org/bsda/ch06s05.html#3.6.5-zones
- Turbo
- сержант
- Сообщения: 166
- Зарегистрирован: 2007-08-11 12:17:38
- Откуда: Киев
- Контактная информация:
Re: статья ldap+samba+ddns+dhcp [бета-версия]
все как по статье.
# ldapaddgroup admins
Error adding group admins to LDAP
log
>> 02/15/10 - 09:31 : Command : /usr/local/sbin/ldapaddgroup admins
ldap_bind: Invalid credentials (49)
ldap_bind: Invalid credentials (49)
Error adding group admins to LDAP
а есть альтернативный способ завести группу?
# ldapaddgroup admins
Error adding group admins to LDAP
log
>> 02/15/10 - 09:31 : Command : /usr/local/sbin/ldapaddgroup admins
ldap_bind: Invalid credentials (49)
ldap_bind: Invalid credentials (49)
Error adding group admins to LDAP
а есть альтернативный способ завести группу?
Умное выражение лица – это еще не признак ума (Г. Горин)
мой сайт http://www.allwork.kiev.ua/
мой сайт http://www.allwork.kiev.ua/
-
- рядовой
- Сообщения: 33
- Зарегистрирован: 2009-11-13 12:46:40
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Народ, незадача.. никак не могу грёбанные винды к домену цепануть, а именно Vista и 7, с ХР никаких проблем.. кто сталкивался?!
Спасибо за оперативность..
Спасибо за оперативность..
- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Смотри здесь:Turbo писал(а):все как по статье.
# ldapaddgroup admins
Error adding group admins to LDAP
log
>> 02/15/10 - 09:31 : Command : /usr/local/sbin/ldapaddgroup admins
ldap_bind: Invalid credentials (49)
ldap_bind: Invalid credentials (49)
Error adding group admins to LDAP
а есть альтернативный способ завести группу?
Код: Выделить всё
nss_ldap.conf
ldapscripts.conf
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
-
- рядовой
- Сообщения: 10
- Зарегистрирован: 2009-11-02 23:01:11
Re: статья ldap+samba+ddns+dhcp [бета-версия]
http://wiki.samba.org/index.php/Windows7patcha писал(а):Народ, незадача.. никак не могу грёбанные винды к домену цепануть, а именно Vista и 7, с ХР никаких проблем.. кто сталкивался?!
Спасибо за оперативность..
У меня получилось.
Удачи
-
- проходил мимо
Re: статья ldap+samba+ddns+dhcp [бета-версия]
FOS помоги - ответь плз!!! может http://groups.google.com/group/fido7.ru ... 471bab2c50 или не может!!!!!???? пишу диплом.. думаю организовать через stunnel... но по мне как-то некрасиво будет если есть возможность!
-
- проходил мимо
Re: статья ldap+samba+ddns+dhcp [бета-версия]
lissyara а у тебе есть идеи???!!!
-
- проходил мимо
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Извините за назойливость но мне завтра здавать=))) Может быть кто-нибудь сможет дать утвердительный ответ и желательно аргументированный по сабжу.
- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Тебе, что надо, нормально объяснить можешь?scompick писал(а):Извините за назойливость но мне завтра здавать=))) Может быть кто-нибудь сможет дать утвердительный ответ и желательно аргументированный по сабжу.
Шифрование? OpenLDAP...
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
Re: статья ldap+samba+ddns+dhcp [бета-версия]
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
-
- проходил мимо