dnsmasq

If you've been struggling with Samba3 domain controllers and NT4 style domains working with Windows7 (or Vista) you are not alone. Various work arounds and hacks exist for the 3.3, 3.4, 3.5 and 3.6 series of Samba to make this go. Our experience (50+ installs) has been intermittent success, with seemingly random failures (Trust relationships, &c).

Move forward to Samba4

Pre-requsites

For Samba4 to operate properly you'll need to have a properly running DHCP/DNS (dnsmasq) and as well as NTP (openntpd). The DHCP/DNS services don't necessarily have to run on the Samba server but the NTP should be running on the domain controller.

Installing Samba4

It's crazy easy on Gentoo/Praxis - still easy on Ubuntu. Use the latest git master for the best success.

Gentoo Based

~ # echo "=net-fs/samba-4.0.0_alpha11" >> /etc/portage/package.unmask
~ # export USE="readline smbclient sqlite threads"
~ # ACCEPT_KEYWORDS="~amd64" emerge -av =net-fs/samba-4.0.0_alpha11
[ebuild R ] sys-libs/talloc-2.0.7 USE="-compat python*" 0 kB
[ebuild N ] sys-libs/tevent-0.9.16 484 kB
[ebuild U #] net-fs/samba-4.0.0_alpha11 [3.5.15] USE="(-acl%*) (-addns%) (-ads%) (-aio%*) (-avahi%) -caps client (-cluster%) (-cups%) -debug (-doc%) -dso% (-examples%) (-fam%) -gnutls% (-ldap%*) (-ldb%) netapi (-pam%*) python%* (-quota%) (-readline%*) server (-smbclient%*) (-smbsharemodes%) (-smbtav2%) -sqlite% (-swat%) (-syslog%*) -threads% tools%* (-winbind%)" 13,592 kB

Ubuntu Based

~ # apt-get install build-essential libacl1-dev python-dev libldap2-dev pkg-config gdb libgnutls-dev libblkid-dev libreadline-dev libattr1-dev
~ # git clone git://git.samba.org/samba.git /usr/src/samba4/
~ # cd /usr/src/samba4
~ # ./configure --enable-debug
~ # make
~ # make install
~ # export PATH="/usr/local/samba/sbin:/usr/local/samba/bin:$PATH"

Provision Samba4

Run the simple provision command to create a new Active Directory style domain.

~ # provision \
--realm=domain.lan --domain=nt4dom \
--server-role=dc \
--dns-backend=NONE \ SAMBA_INTERNAL
--adminpass='Cl3verG1rl'

If you get a message like this:

ProvisioningError: Your filesystem or build does not support posix ACLs, which s3fs requires. Try the mounting the filesystem with the 'acl' option.

You'll need to fix those to proceed, either with --use-ntvfs or mounting your FS with ACLs in place.

    --use-ntvfs

Really you should fix your file system.

DNS Updates for dnsmasq §

Most of the documentation points to using Bind9 as the DNS system for your Active Directory. I hate bind, so it's dnsmasq to the rescue.

AD depends on a number of special SRV and A/CNAME records to function nicely. So, in addition to the traditional host records from DHCP, or /etc/hostswe need to add this stuff to the configuration.

The variables here represent values for your environment, adjust as necessary. This is available as a script from edoceo.com/pub/samba4-dnsmasq-update.sh.

PDC="pdc"
IP4="10.65.0.3" DOMAIN="edoceo.lan"
NT4DOM="edoceo" ADHOST="${PDC}.${DOMAIN}"
ADGUID="00ed0ce0-1234-4321-4444-d5a81a980958"
ADSITE="default-first-site-name" address=/${ADGUID}._msdcs.${DOMAIN}/$IP4
# address=/${ADGUID}._msdcs.${DOMAIN}/$IP6
address=/gc._msdcs.${DOMAIN}/$IP4
# address=/gc._msdcs.${DOMAIN}/$IP6
address=/kerberos.${DOMAIN}/$IP4
# address=/kerberos.${DOMAIN}/$IP6 # Maybe Remove the Above for ADGUID? # Global Catalog
srv-host=_gc._tcp.${DOMAIN},${ADHOST},3268
srv-host=_gc._tcp.${ADSITE}._sites.${DOMAIN},${ADHOST},3268 # Kerberos
# This is queried for, but I don't know which port to reply with
# srv-host=_kerberos._http.${DOMAIN},${ADHOST},80
srv-host=_kerberos._tcp.${DOMAIN},${ADHOST},88
srv-host=_kerberos._tcp.dc._msdcs.${DOMAIN},${ADHOST},88
srv-host=_kerberos._tcp.${ADSITE}._sites.${DOMAIN},${ADHOST},88
srv-host=_kerberos._tcp.${ADSITE}._sites.dc._msdcs.${DOMAIN},${ADHOST},88
srv-host=_kerberos._udp.${DOMAIN},${ADHOST},88 # kpasswd
srv-host=_kpasswd._tcp.${DOMAIN},${ADHOST},464
srv-host=_kpasswd._udp.${DOMAIN},${ADHOST},464 # LDAP Server
srv-host=_ldap._tcp.5e6c4f0e-995e-4ccb-ae97-9629e2be9130.domains._msdcs.${DOMAIN},${ADHOST},389
srv-host=_ldap._tcp.${ADSITE}._sites.dc._msdcs.${DOMAIN},${ADHOST},389
srv-host=_ldap._tcp.${ADSITE}._sites.${PDC}.${DOMAIN},${ADHOST},389
srv-host=_ldap._tcp.${ADSITE}._sites.${DOMAIN},${ADHOST},389
srv-host=_ldap._tcp.dc._msdcs.${DOMAIN},${ADHOST},389
srv-host=_ldap._tcp.${ADSITE}._sites.dc._msdcs.${DOMAIN},${ADHOST},389
srv-host=_ldap._tcp.${ADSITE}._sites.gc._msdcs.${DOMAIN},${ADHOST},389
srv-host=_ldap._tcp.${ADSITE}._sites.${DOMAIN},${ADHOST},389
srv-host=_ldap._tcp.gc._msdcs.${DOMAIN},${ADHOST},389
srv-host=_ldap._tcp.${PDC}._msdcs.${DOMAIN},${ADHOST},389
srv-host=_ldap._tcp.${PDC}.${DOMAIN},${ADHOST},389
srv-host=_ldap._tcp.${DOMAIN},${ADHOST},389

Start and Test Samba

Now start samba and then run a few tests against the server to see if it's OK.

~ # samba
~ # smbclient -L localhost -U%
~ # smbclient //localhost/netlogon -U 'administrator'

Testing from Windows

ipconfig /release
ipconfig /renew
ipconfig /all
net view /domain:$DOMAIN
net view \\$ADHOST
nbtstat -A $ADHOST_IP4

You should also download the Windows Server 2003 Service Pack 2 Administration Tools Pack. This gives you some tools such as dsa.msc.

wget http://download.microsoft.com/download/f/5/4/f541633c-6e89-4407-a69e-673dc7f2b485/WindowsServer2003-KB340178-SP2-x86-ENU.msi

Join Domain Clients

Windows XP, Vista, 7 and 8

Samba4 works with all these systems, Professional edition, and all join right up to the domain w/o needing any registry hacks or other tricks.

Join Samba3

Samba3 has no problem joining the Samba4 domain as a member server.

~ # net rpc join -U administrator member
Enter administrator's password:
Joined domain EDOCEO.

Caveats

Be wary of information in /etc/nsswitch.conf, /etc/krb5.conf....

No More Network Browsing §

In Windows based AD you can still browse a network, Samba3 had this but Samba4 does not. So, you will not see your domain, or browse machines in the domain.

Samba4 and Homes §

The [homes] share and the browseable directive don't work as expected.

Cannot contact any KDC for requested realm: unable to reach any KDC in realm $DOMAIN

This is a DNS related issue, it's likely the above SRV records are not present, fix your DNS.

ntptr_init_context: failed to find NTPTR providor='simple_ldb'

I don't know yet, doesn't seem to be fatal.

nbtd netlogon handler failed from 10.65.0.122:138 to REMOTE<1c> - NT_STATUS_BAD_NETWORK_NAME

This is save to ignore, provided that the IP address and the name (REMOTE) are referencing an old, previous or same-subnet domain. This is just a warning about a recieved netbios name that is being ignored cause it's not part of our AD.

See Also

How To: Samba4 AD PDC + Windows XP, Vista and 7的更多相关文章

  1. 渗透杂记-2013-07-13 Windows XP SP2-SP3 / Windows Vista SP0 / IE 7

    Welcome to the Metasploit Web Console! | | _) | __ `__ \ _ \ __| _` | __| __ \ | _ \ | __| | | | __/ ...

  2. Linux Versus Windows, Ubuntu/Mint V XP/Vista/7

    原文:http://petermoulding.com/linux_versus_windows_ubuntu_mint_v_xp_vista_7 Linux Versus Windows, Ubun ...

  3. IETester for IE11, IE10, IE9, IE8, IE7 IE 6 and IE5.5 on Windows 8 desktop, Windows 7, Vista and XP

    简介: IETester是一个免费的(用于个人和专业用途)WebBrowser,允许您在Windows 8桌面,Windows 7,Vista和XP上拥有IE11,IE10,IE9,IE8,IE7 I ...

  4. 【转】如何使用VS 2013发布一个可以在Windows XP中独立运行的可执行文件

    问题描述: 用VS2013写好一个程序,在本机上运行一切正常.但是如果直接把exe文件放到另一台机器上用,则会出现: Windows XP:不是一个正常的win32程序 Window 7:缺少msvc ...

  5. 解决libcurl7.50.3在windows XP SP3 VC++ 6.0下编译报错 unresolved external symbol __imp__IdnToAscii@20 unresolved external symbol __imp__IdnToUnicode@20

    错误重现: --------------------Configuration: curl - Win32 LIB Debug DLL Windows SSPI DLL WinIDN--------- ...

  6. 成功在神舟K650c-i7 d2(i7-4700MQ、HM87)上装好了Windows XP

    成功在神舟K650c-i7 d2(i7-4700MQ.HM87)上装好了Windows XP 本来已经在K650c上装好了Windows7.Windows8双系统,奈何某些旧软件只能在Windows ...

  7. 3DSlicer源代码编译过程vs2008+windows xp [转]

    一 下载QT源代码编译 1.  简述   在 Windows2000/xp/vista 下,安装 VS2008, QT 4.7.2 :并在 VS2008上建立 QT 的集成开发环境,利用 VS2008 ...

  8. PC-飞起来!我的Windows XP——五步快速优化Windows XP

    虽然Microsoft的 Vista已经发售了快一年,但国内大部分系统用户仍使用着目前堪称完美的Windows XP.与以往的Windows操作系统一样,新安装的Windows XP可能还不在最佳状态 ...

  9. WinSetupFromUSB – Install Windows XP from USB Flash Drive

    http://myeeeguides.wordpress.com/2008/11/15/winsetupfromusb-install-windows-xp-from-usb-flash-drive/ ...

随机推荐

  1. .Net中使用com组件后发生System.ArithmeticException异常的解决办法(Message=算术运算中发生溢出或下溢。)

    最近在开发一个.Net程序,其中涉及到对com组件的调用,或者第三方DLL调用, 在调用完以后如果使用一些小的测试程序继续运行,一切正常,但是在使用带有GUI的form程序,或者WPF程序中,继续执行 ...

  2. Fiddler-1 安装

    1 进入Fiddler官网:http://www.telerik.com/fiddler 点击[Free download]:填写一些信息后就可以下载. 2 双击安装包--下一步dinghanhua下 ...

  3. php判断手机还是pc

    <?php function isMobile(){ $useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AG ...

  4. MySQL数据库4 - 查看数据表

    一. 查看表的基本结构 语法:DESCRIBE/DESC TABLE_NAME 查询结果含义: Field: 字段名 Type: 字段类型 Null: 是否可以为空 Key: 是否编制索引 defau ...

  5. Linux下PHP的完全卸载

    如果想把PHP彻底的卸载干净,直接用yum的remove命令是不行的,而需要查看有多少rpm包,然后按照依赖顺序逐一卸载,在网上查了好多,都是通过  "rpm -qa | grep php& ...

  6. TCP/UDP网络性能测试工具 - Netperf (zz) ..网络测试工具

    在构建或管理一个网络系统时,我们更多的是关心网络的可用性,即网络是否连通,而对于其整体的性能往往考虑不多. 除了netperf以外.       还有很多其它的网络性能测试工具.       如db, ...

  7. ASIHTTPRequest中数据压缩问题与gzip

    出现了类似问题,先mark,以后修改 最近使用asi发现,部分网络回调数据不能正常的json解析,将responseHeaders头打印出来,才发现公司服务器部分数据添加了gzip压缩传输. 最近简单 ...

  8. SQL注入的分类

    基于从服务器接收到的响应    基于错误的SQL注入    联合查询的类型    堆查询注射    SQL盲注        基于布尔SQL盲注        基于时间的SQL盲注        基于 ...

  9. 学习笔记:CSS3的filter属性

    CSS3的filter属性 (版权归原作者所有) http://www.jianshu.com/p/ca7a2bdcc1e7/comments/4956985 filter: blur(5px); f ...

  10. 移动销售端app的需求分析

    随着网络时代的发展,人们对于网络的依赖越来越大,网上购物便成了一个很大的消费者市场.. 如何分析一个综合的移动销售端app的需求我认为首先要确定用户,从用户的角度一个一个功能过,评估每一个功能的需求, ...