статья ldap+samba+ddns+dhcp [бета-версия]

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Corvin74
рядовой
Сообщения: 30
Зарегистрирован: 2009-03-04 19:13:15
Откуда: Москва
Контактная информация:

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение Corvin74 » 2009-12-21 16:00:56

Всем привет, опять траблы замучали :( Никак не могу разобратся, вроде гугл обшарил, понимания не добился...
Исходная: домен поднялся, днс работает, машинки в домен входят... Но при попытке добавить пользователя при помощи UserManager получаю радостное сообщение "Присоединенное к системе устройство не работает".
Может кто сталкивался с подобным? А то уже весь мозг сломал :st:
«Только песок не меняется, всё остальное изменчиво.» — Один из джав Анкорхеда

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.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/

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение snorlov » 2009-12-21 16:40:47

Проверяй как прописаны в smb.conf скрипты, ну и смотри лог самбы, хотя честно говоря у меня с ldapscripts тоже ничего не получалось, сейчас я использую smbldap-tools.

mymymy
сержант
Сообщения: 224
Зарегистрирован: 2008-05-16 21:23:38
Откуда: Москва

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение mymymy » 2009-12-22 11:39:24

Есть желание перевести всех пользователей (400 душ) с виндузятины на openldap. Поднял по статье. Плюс squid с авторизацией squid_ldap_auth. С чем столкнулся:

1. С помощью вашевыложенного скрипта добавления\удаления пользователей заводятся пользователи с шифрованием пароля ssha. Сквид почему то хавает авторизацию, если шифровано sha. Если перешифровываю в sha, то работает и сквид и самба. Как заставить или сквид хавать ssha или smbpasswd шифровать в sha ? Требуется максимально упросить процесс администрирования пользователей админами без опыта.
2. Не смог найти информацию, возможно ли сделать прозрачную аутентификацию на прокси. После прозрачной авторизации с помощью ntlm юзвери будут верещать.. 400 голосов разорвут мозг :-o
3. Не понял,какие права должны быть на ../netlogon и содержимое для подхватывания политик на скриптах, в логи сыпется:

Код: Выделить всё

'/usr/local/etc/samba/netlogon' does not exist or permission denied when connecting to [netlogon] Error was Permission denied
4. С помощью ldapadmin не создаются домашние и профильные папки и еще бог весть чего там не создается..

Видел там обещание продолжения статьи по поднятию остальных доменных сервисов. Есть смысл ждать в ближайшее время?

mymymy
сержант
Сообщения: 224
Зарегистрирован: 2008-05-16 21:23:38
Откуда: Москва

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение mymymy » 2009-12-22 15:06:00

вообщем,чтобы не нарушать права на /usr/local/etc/samba/ , перенес netlogon в др. место и дал нужные права, подхватило скрипты.

patcha
рядовой
Сообщения: 33
Зарегистрирован: 2009-11-13 12:46:40

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение patcha » 2009-12-24 10:50:37

Народ, выручайте! никак не могу отстроить резолв доменных машин. 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

Код: Выделить всё

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;
};
Проблем с rndc - нет.
Почему не догу достучаться до ldap, не знаю..
Пробовал и через ldaps - никак, в этом случае вообще ругается на то что не может создать базу в ldap.

У кого был удачный опыт, поделитесь, пожалуйста..

Спасибо за оперативность.

kossak
проходил мимо
Сообщения: 2
Зарегистрирован: 2009-09-01 13:04:20

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение kossak » 2009-12-27 9:43:43

А кто-нибудь пробовал запустить tftp с этими опциями?

# для tftp
#dhcpOption: bootfile-name "pxelinux.0";
#dhcpOption: tftp-server-name "192.168.10.8";

у меня на 7.2 - кинул загрузчик thinstation, загружаюсь на vmware и никак. Если сменить настройки dhcp с ldap на обычный текстовый формат и указать опцию next server - ВСЕ ПУЧКОМ. Выходит что ldap вариант не работоспособный? :x

scompick
проходил мимо

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение scompick » 2010-01-10 15:18:48

Здраствуйте.

Установленно:
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

Весело короче :ROFL: А если серьезно то никто не встречал сие чудо?

Siddha
рядовой
Сообщения: 10
Зарегистрирован: 2009-11-02 23:01:11

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение Siddha » 2010-01-10 18:22:11

Еще помучал скрипт 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 классический - файлами.

scompick
проходил мимо

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение scompick » 2010-01-13 13:37:12

Здраствуйте. Решил проблему выше. Сдал себя комментом к обсуждаемой статье=) Хочу обратится именно к товарищу f0sу. Неоднократно наблюдал ваши сообщения в сети с вопросом примерно такого содержания: "умеет ли bind нативно связываться по ssl без использования stunnel". Вы решили эту проблему? Если да то хоть намекните пожалуйста в каком напровлении копать. Заранее спасибо.

patcha
рядовой
Сообщения: 33
Зарегистрирован: 2009-11-13 12:46:40

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение patcha » 2010-01-19 6:48:10

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

Siddha
рядовой
Сообщения: 10
Зарегистрирован: 2009-11-02 23:01:11

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение Siddha » 2010-01-19 22:05:42

dhcpd.leases приложить не сложно? Тот в котором отражено, что машина получила по маку такой-то IP.

У меня все машины, которым нужен фиксированный 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";
}
Для добавления в 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";
}
Для удаления из LDAP
Флагом для удаления выступает строка
..........................
binding state free;
..........................

patcha
рядовой
Сообщения: 33
Зарегистрирован: 2009-11-13 12:46:40

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение patcha » 2010-01-20 1:48:11

Siddha писал(а):dhcpd.leases приложить не сложно? Тот в котором отражено, что машина получила по маку такой-то IP.

У меня все машины, которым нужен фиксированный 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";
}
Для добавления в 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";
}
Для удаления из LDAP
Флагом для удаления выступает строка
..........................
binding state free;
..........................
Отбой, всё гут.. я в крон ещё запихал скрипт.. к утру обнаружил что всё отлично..
Остался единственный глюк в LDAP, это не резолвятся машиный, которые ща у меня в LDAP'е..

Siddha
рядовой
Сообщения: 10
Зарегистрирован: 2009-11-02 23:01:11

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение Siddha » 2010-01-20 11:36:29

patcha писал(а): Отбой, всё гут.. я в крон ещё запихал скрипт.. к утру обнаружил что всё отлично..
Остался единственный глюк в LDAP, это не резолвятся машиный, которые ща у меня в LDAP'е..
Ldif DNSa выложи.
и в конфиге binda или закомментируй строку

Код: Выделить всё

query-source address *

или тогда уж, как в оригинальном конфиге сказано, сделай в виде

Код: Выделить всё

query-source address * port NNNNN;
Modern versions of BIND use a random UDP port for each outgoing
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.

patcha
рядовой
Сообщения: 33
Зарегистрирован: 2009-11-13 12:46:40

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение patcha » 2010-01-20 14:20:50

Siddha писал(а):
patcha писал(а): Отбой, всё гут.. я в крон ещё запихал скрипт.. к утру обнаружил что всё отлично..
Остался единственный глюк в LDAP, это не резолвятся машиный, которые ща у меня в LDAP'е..
Ldif DNSa выложи.
и в конфиге binda или закомментируй строку

Код: Выделить всё

query-source address *

или тогда уж, как в оригинальном конфиге сказано, сделай в виде

Код: Выделить всё

query-source address * port NNNNN;
Modern versions of BIND use a random UDP port for each outgoing
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.
Коментик квэри и порт выставлял 55555, ничего ((
это вгружал в 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

Siddha
рядовой
Сообщения: 10
Зарегистрирован: 2009-11-02 23:01:11

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение Siddha » 2010-01-20 15:22:55

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
Внимательно смотрим на строки sOARecord:......... и оставляем только один ns1.meat.
это имя мастер сервера ДНС отвечающего за данную зону. Ниже, в записи типа 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 [бета-версия]

Непрочитанное сообщение Turbo » 2010-02-15 10:41:54

все как по статье.


# 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


а есть альтернативный способ завести группу? :st:
Умное выражение лица – это еще не признак ума (Г. Горин)
мой сайт http://www.allwork.kiev.ua/

patcha
рядовой
Сообщения: 33
Зарегистрирован: 2009-11-13 12:46:40

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение patcha » 2010-02-15 11:38:45

Народ, незадача.. никак не могу грёбанные винды к домену цепануть, а именно Vista и 7, с ХР никаких проблем.. кто сталкивался?!
Спасибо за оперативность..

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение fox » 2010-02-15 12:51:58

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


а есть альтернативный способ завести группу? :st:
Смотри здесь:

Код: Выделить всё

nss_ldap.conf
ldapscripts.conf
Гдето здесь у тебя ошибка, проверяй в конфах логины, пароли и ip адреса!
Да пребудет с нами сила!!!
Всех убью, один останусь!

Siddha
рядовой
Сообщения: 10
Зарегистрирован: 2009-11-02 23:01:11

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение Siddha » 2010-02-15 13:12:43

patcha писал(а):Народ, незадача.. никак не могу грёбанные винды к домену цепануть, а именно Vista и 7, с ХР никаких проблем.. кто сталкивался?!
Спасибо за оперативность..
http://wiki.samba.org/index.php/Windows7

У меня получилось.
Удачи

scompick
проходил мимо

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение scompick » 2010-05-03 11:40:15

FOS помоги - ответь плз!!! может http://groups.google.com/group/fido7.ru ... 471bab2c50 или не может!!!!!???? пишу диплом.. думаю организовать через stunnel... но по мне как-то некрасиво будет если есть возможность! :sorry:


scompick
проходил мимо

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение scompick » 2010-05-03 13:09:52

Извините за назойливость но мне завтра здавать=))) :st: Может быть кто-нибудь сможет дать утвердительный ответ и желательно аргументированный по сабжу.

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение fox » 2010-05-03 15:15:37

scompick писал(а):Извините за назойливость но мне завтра здавать=))) :st: Может быть кто-нибудь сможет дать утвердительный ответ и желательно аргументированный по сабжу.
Тебе, что надо, нормально объяснить можешь?
Шифрование? OpenLDAP...
Да пребудет с нами сила!!!
Всех убью, один останусь!

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: статья ldap+samba+ddns+dhcp [бета-версия]

Непрочитанное сообщение fox » 2010-05-03 15:17:21

Да пребудет с нами сила!!!
Всех убью, один останусь!