PAM,NIS,LDAP,Kerberos,DS和Samba 4 AD-DC-SMB网络

系列总索引: 中小企业计算机网络:简介

你好朋友和朋友们!

通过这篇文章,我向社区说再见 DesdeLinux。对特殊社区的特殊告别。从现在开始,我将进入我的个人项目,您可以在以下位置查看 http://www.gigainside.com.

该帖子的主要目的是提供“查看大图»关于我们可以使用的免费软件身份验证服务。 至少那是我们的意图。 因此,尽管我们知道这违反了撰写文章的一般规则,但仍然会很长。 我们希望系统管理员对此表示赞赏。

我们想指出的是,许多现代认证系统的通用协议是 LDAP的,并且认真研究它并不是闲着,我们会从官方网站上找到学习材料 http://www.openldap.org/.

我们不会在前几篇文章中介绍的方面,或在Wikipedia或Internet上的其他站点或文章中可以轻松访问其描述的方面,给出详细的定义或链接,以免丢失我们想要的消息的客观性给。 我们还将使用英文和西班牙文名称的有效组合,因为我们认为大多数系统都是以英文名称诞生的,对于Sysadmin,以原始语言进行同化非常有益。.

  • PAM: 可插拔身份验证模块。
  • NIS:Network_Information_Service。
  • LDAP:轻型目录访问协议.
  • Kerberos的:安全协议,用于集中验证网络上的用户,计算机和服务,并根据Kerberos数据库中的现有条目验证其凭据。
  • DS:目录服务器或目录服务
  • 直流-直流:Active Directory-域控制器

PAM

我们为这种本地身份验证专门提供了一个小系列,您将在日常实践中看到它在例如将工作站加入域控制器或Active Directory的情况下被广泛使用。 映射存储在外部LDAP数据库中的用户,就好像它们是本地用户一样; 映射存储在Active Directory的域控制器中的用户,就好像它们是本地用户一样,依此类推。

NIS

De 维基百科上的数据:

  • 网络信息系统(其缩写为NIS,在西班牙语中表示网络信息系统,简称NIS)是Sun Microsystems开发的客户端-服务器目录服务协议的名称,用于在分布式系统中发送配置数据,例如计算机之间的用户名和主机名在网络上。NIS基于ONC RPC,由服务器,客户端库和各种管理工具组成。

    NIS最初称为黄页或YP,至今仍用于引用它。 不幸的是,该名称是英国电信的商标,要求Sun删除该名称。 但是,YP仍是大多数与NIS相关的命令(例如ypserv和ypbind)的名称中的前缀。

    DNS提供的信息范围有限,最重要的是节点名称和IP地址之间的对应关系。 对于其他类型的信息,则没有此类专门服务。 另一方面,如果仅管理没有Internet连接的小型LAN,则似乎不值得设置DNS。 这就是Sun开发网络信息系统(NIS)的原因。 NIS提供了通用的数据库访问功能,可用于将例如passwd和groups文件中包含的信息分发到网络上的所有节点。 这使网络看起来像一个单一系统,所有节点上都有相同的帐户。 同样,NIS可用于将/ etc / hosts中包含的节点名称信息分发到网络上的所有计算机。

    如今,几乎所有Unix发行版都提供NIS,甚至还有免费的实现。 BSD Net-2发布了一个源于Sun捐赠的公共领域参考实现的文件。 此版本的客户端部分的库代码已经存在于GNU / Linux libc中很长时间了,并且SwenThümmler将管理程序移植到了GNU / Linux。 但是,在参考实现中缺少NIS服务器。

    Peter Eriksson开发了一个名为NYS的新实现。 它同时支持基本NIS和Sun NIS +的增强版[1]。 NYS不仅提供许多NIS工具和服务器,还添加了一套全新的库函数,如果要使用它们,您需要将它们编译到libc中。 这包括用于节点名称解析的新配置方案,该配置方案替代了“ host.conf”文件使用的当前方案。

    GNU libc在GNU / Linux社区中称为libc6,其中包括Thorsten Kukuk开发的传统NIS支持的更新版本。 它支持NYS提供的所有库功能,并且还使用高级NYS配置方案。 仍然需要工具和服务器,但是使用GNU libc可以省去修补和重新编译库的麻烦

    .

计算机和域名,网络接口和解析器

  • 我们从Debian 8“ Jessie”的全新安装-没有图形界面-开始. 域swl.fan的意思是“自由软件爱好者”。 还有什么比这更好的名字?.
root @ master:〜#主机名root @ master:〜#主机名-f
大师范

root @ master:〜#ip addr 1:lo: mtu 65536 qdisc无队列状态UNKNOWN组默认链接/环回00:00:00:00:00:00 00 brd 00:00:00:00:00:127.0.0.1 inet 8/6作用域主机lovalid_lft永久首选_lft永久inet1 :: 128/2作用域主机永远有效_lft永远首选_lft 0:eth1500: mtu 1000 qdisc pfifo_fast状态UP组默认qlen 00链接/以太0:29c:4:76c:9:d192.168.10.5 brd ff:ff:ff:ff:ff:ff:ff inet 24/192.168.10.255 brd 0作用域全局eth6 valid_lft永远inet80 fe20 :: 29c:4ff:fe76c:9d64 / XNUMX作用域链接valid_lft永远forever preferred_lft永远

root @ master:〜#猫/etc/resolv.conf 
搜索swl.fan名称服务器127.0.0.1

安装bind9,isc-dhcp-server和ntp

绑定9

root @ master:〜#aptitude安装bind9 bind9文件 NMAP
root @ master:〜#systemctl状态bind9

root @ master:〜#纳米/etc/bind/named.conf
包括“ /etc/bind/named.conf.options”; 包括“ /etc/bind/named.conf.local”; 包括“ /etc/bind/named.conf.default-zones”;

root @ master:〜#cp /etc/bind/named.conf.options \ /etc/bind/named.conf.options.original

root @ master:〜#纳米/etc/bind/named.conf.options
选项{目录“ / var / cache / bind”; //如果您和要与之通信的名称服务器之间存在防火墙,//您可能需要修复防火墙以允许多个端口进行通信。 看到 http://www.kb.cert.org/vuls/id/800113

        //如果您的ISP为稳定的名称服务器提供了一个或多个IP地址,则您可能希望将它们用作转发器。 //取消注释以下块,并插入替换全0占位符的地址。 //转发器{// 0.0.0.0; //}; // ================================================ = // ================= $ //如果BIND记录有关根密钥已过期的错误消息,//您将需要更新密钥。 看到 https://www.isc.org/bind-keys
        // =============================================== = // =================== $ //我们不希望DNSSEC
        dnssec启用否;
        // dnssec-validation auto; auth-nxdomain否; #符合RFC1035 v6上的{any; }; //用于从localhost和sysadmin进行检查//通过dig swl.fan axfr // //到目前为止,我们没有从属DNS ...
        allow-transfer {localhost; 192.168.10.1; };
}; 根@主:〜#named-checkconf

root @ master:〜#纳米/etc/bind/zones.rfcFreeBSD
//共享地址空间(RFC 6598)
zone "64.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "65.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "66.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "67.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "68.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "69.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "70.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "71.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "72.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "73.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "74.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "75.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "76.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "77.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "78.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "79.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "80.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "81.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "82.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "83.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "84.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "85.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "86.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "87.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "88.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "89.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "90.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "91.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "92.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "93.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "94.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "95.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "96.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "97.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "98.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "99.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "100.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "101.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "102.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "103.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "104.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "105.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "106.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "107.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "108.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "109.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "110.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "111.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "112.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "113.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "114.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "115.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "116.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "117.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "118.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "119.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "120.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "121.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "122.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "123.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "124.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "125.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "126.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "127.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };

//本地链接/ APIPA(RFC 3927、5735和6303)
区域“ 254.169.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; };

// IETF协议分配(RFC 5735和5736)
区域“ 0.0.192.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; };

// TEST-NET- [1-3]用于文档(RFC 5735、5737和6303)
区域“ 2.0.192.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 100.51.198.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 113.0.203.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; };

//文档的IPv6示例范围(RFC 3849和6303)
区域“ 8.bd0.1.0.0.2.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; };

//用于文档和测试的域名(BCP 32)
区域“ test” {type master; 文件“ /etc/bind/db.empty”; }; 区域“示例” {type master; 文件“ /etc/bind/db.empty”; }; 区域“无效” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ example.com” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ example.net” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ example.org” {type master; 文件“ /etc/bind/db.empty”; };

//路由器基准测试(RFC 2544和5735)
区域“ 18.198.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 19.198.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; };

//保留IANA-旧的E类空间(RFC 5735)
区域“ 240.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 241.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 242.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 243.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 244.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 245.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 246.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 247.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 248.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 249.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 250.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 251.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 252.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 253.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 254.in-addr.arpa” {type master; 文件“ /etc/bind/db.empty”; };

//未分配的IPv6地址(RFC 4291)
区域“ 1.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 3.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 4.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 5.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 6.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 7.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 8.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 9.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ a.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ b.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ c.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ d.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ e.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 0.f.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 1.f.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 2.f.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 3.f.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 4.f.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 5.f.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 6.f.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 7.f.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 8.f.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 9.f.ip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ afip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ bfip6.arpa” {类型主控; 文件“ /etc/bind/db.empty”; }; 区域“ 0.efip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 1.efip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 2.efip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 3.efip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 4.efip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 5.efip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 6.efip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 7.efip6.arpa” {type master; 文件“ /etc/bind/db.empty”; };

// IPv6 ULA(RFC 4193和6303)
区域“ cfip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ dfip6.arpa” {type master; 文件“ /etc/bind/db.empty”; };

// IPv6本地链接(RFC 4291和6303)
区域“ 8.efip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ 9.efip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ aefip6.arpa” {类型主控; 文件“ /etc/bind/db.empty”; }; 区域“ befip6.arpa” {类型主控; 文件“ /etc/bind/db.empty”; };

//不推荐使用IPv6的站点本地地址(RFC 3879和6303)
区域“ cefip6.arpa” {type master; 文件“ /etc/bind/db.empty”; }; 区域“ defip6.arpa” {类型主控; 文件“ /etc/bind/db.empty”; }; 区域“ eefip6.arpa” {类型主控; 文件“ /etc/bind/db.empty”; }; 区域“ fefip6.arpa” {type master; 文件“ /etc/bind/db.empty”; };

//不推荐使用IP6.INT(RFC 4159)
区域“ ip6.int” {type master; 文件“ /etc/bind/db.empty”; };

root @ master:〜#纳米/etc/bind/named.conf.local
// //在这里进行任何本地配置// //如果您的组织中未使用1918区域,请考虑在此处添加1918区域,包括“ /etc/bind/zones.rfcXNUMX”;
包括“ /etc/bind/zones.rfcFreeBSD”;

// DNS记录区域的名称,类型,位置和更新权限的声明//两个区域都是MASTER区域“ swl.fan” 文件“ /var/lib/bind/db.swl.fan”; }; 区域“ 10.168.192.in-addr.arpa” {type master; 文件“ /var/lib/bind/db.10.168.192.in-addr.arpa”; };

根@主:〜#named-checkconf

root @ master:〜#纳米/var/lib/bind/db.swl.fan
$ TTL 3H @ IN SOA master.swl.fan。 root.master.swl.fan。 (1;序列1D;刷新1H;重试1W;到期3H); 最小或负的生存时间; @ IN NS master.swl.fan。 @ IN MX 10 mail.swl.fan。 @ IN A 192.168.10.5 @ IN TXT“对于自由软件的爱好者”; sysadmin IN 192.168.10.1文件服务器IN 192.168.10.4主服务器IN 192.168.10.5 proxyweb IN 192.168.10.6博客IN 192.168.10.7 ftpserver IN 192.168.10.8邮件IN 192.168.10.9

root @ master:〜#纳米/var/lib/bind/db.10.168.192.in-addr.arpa
$ TTL 3H @ IN SOA master.swl.fan。 root.master.swl.fan。 (1;序列1D;刷新1H;重试1W;到期3H); 最小或负的生存时间; @ IN NS master.swl.fan。 ; 1 IN PTR sysadmin.swl.fan。 4 IN PTR fileserver.swl.fan。 5 IN PTR master.swl.fan。 6 IN PTR proxyweb.swl.fan。 7 IN PTR blog.swl.fan。 8 IN PTR ftpserver.swl.fan。 9 IN PTR mail.swl.fan。

根@主:〜#named-checkzone swl.fan /var/lib/bind/db.swl.fan
区域swl.fan/IN:已加载序列号1 OK
root @ master:〜#命名检查区10.168.192.in-addr.arpa /var/lib/bind/db.10.168.192.in-addr.arpa
区域10.168.192.in-addr.arpa/IN:加载序列号1 OK

根@主:〜#named-checkconf -zp
根@主:〜#systemctl重新启动bind9.service
root @ master:〜#systemctl状态bind9.service

Bind9检查

根@大师:〜#挖swl.fan axfr
root @ master:〜#挖10.168.192.in-addr.arpa axfr
根@大师:〜#挖SOA swl.fan
根@大师:〜#挖NS NS swl.fan
root @ master:〜#挖入MX swl.fan
root @ master:〜#proxyweb主机root @ master:〜#nping --tcp -p 53 -c 3 localhost
root @ master:〜#nping --udp -p 53 -c 3本地主机
root @ master:〜#nping --tcp -p 53 -c 3 master.swl.fan
root @ master:〜#nping --udp -p 53 -c 3 master.swl.fan
开始Nping 0.6.47( http://nmap.org/nping )在2017-05-27 09:32 EDT发送(0.0037s)UDP 192.168.10.5:53> 192.168.10.245:53 ttl = 64 id = 20743 iplen = 28发送(1.0044s)UDP 192.168.10.5:53> 192.168.10.245 .53:64 ttl = 20743 id = 28 iplen = 2.0060 SENT(192.168.10.5s)UDP 53:192.168.10.245> 53:64 ttl = 20743 id = 28 iplen = 3 Max rtt:N / A | 最小rtt:不适用| 平均rtt:不适用已发送的原始数据包:84(0B)| Rcvd:0(3B)| 丢失:100.00(1%)Nping完成:3.01个IP地址在XNUMX秒内被ping 

isc-dhcp服务器

根@主:〜#aptitude安装isc-dhcp-server
根@主:〜#nano / etc / default / isc-dhcp-server
#DHCP服务器(dhcpd)应该在哪些接口上处理DHCP请求? #用空格分隔多个接口,例如“ eth0 eth1”。
接口=“ eth0”

root @ master:〜#dnssec-keygen -a HMAC-MD5 -b 128 -r / dev / urandom -n用户dhcp-key
root @ master:〜#猫Kdhcp-key +157 + 51777.private 
私钥格式:v1.3算法:157(HMAC_MD5)密钥:Ba9GVadq4vOCixjPN94dCQ ==位:AAA =创建:20170527133656发布:20170527133656激活:20170527133656

根@主:〜#nano dhcp.key
密钥dhcp-key {
        算法hmac-md5;
        机密Ba9GVadq4vOCixjPN94dCQ ==“;
}; root @ master:〜#安装-o root -g bind -m 0640 dhcp.key /etc/bind/dhcp.key root @ master:〜#install -o root -g root -m 0640 dhcp.key / etc / dhcp /dhcp.key root @ master:〜#纳米/etc/bind/named.conf.local
包括“ /etc/bind/dhcp.key”;

区域“ swl.fan” {类型主; 文件“ /var/lib/bind/db.swl.fan”;
        allow-update {key dhcp-key; };
}; 区域“ 10.168.192.in-addr.arpa” {type master; 文件“ /var/lib/bind/db.10.168.192.in-addr.arpa”;
        allow-update {key dhcp-key; };
};

根@主:〜#named-checkconf

root @ master:〜#mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original
root @ master:〜#纳米/etc/dhcp/dhcpd.conf
ddns-update-style临时; ddns-更新; ddns域名“ swl.fan”。 ddns-rev域名“ in-addr.arpa”。 忽略客户端更新; 更新优化错误; #在Debian权威上可能是必需的; ip转发的选项; 选项域名“ swl.fan”; 包括“ /etc/dhcp/dhcp.key”; 区域swl.fan。 {primary 127.0.0.1; 密钥dhcp-key; }区域10.168.192.in-addr.arpa。 {primary 127.0.0.1; 密钥dhcp-key; }共享网络redlocal {子网192.168.10.0网络掩码255.255.255.0 {选项路由器192.168.10.1; 选项子网掩码255.255.255.0; 选项广播地址192.168.10.255; 选项域名服务器192.168.10.5; 选项netbios-name-servers 192.168.10.5; 选项ntp-servers 192.168.10.5; 选项时间服务器192.168.10.5; 范围192.168.10.30 192.168.10.250; }}

根@主:〜#dhcpd -t
互联网系统联盟DHCP服务器4.3.1版权所有2004-2014互联网系统联盟。 版权所有。 有关信息,请访问 https://www.isc.org/software/dhcp/
配置文件:/etc/dhcp/dhcpd.conf数据库文件:/var/lib/dh​​cp/dhcpd.leases PID文件:/var/run/dhcpd.pid

根@主:〜#systemctl重新启动bind9.service 
root @ master:〜#systemctl状态bind9.service 

root @ master:〜#systemctl启动isc-dhcp-server.service
root @ master:〜#systemctl状态为isc-dhcp-server.service

NTP

root @ master:〜#aptitude安装ntp ntpdate
root @ master:〜#cp /etc/ntp.conf /etc/ntp.conf.original
root @ master:〜#纳米/etc/ntp.conf
漂移文件/var/lib/ntp/ntp.drift统计信息loopstats peerstats clockstats filegen loopstats文件loopstats类型day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable server 192.168.10.1 limit -4默认值kod notrap nomodify nopeer noquery limit -6默认kodnotrap nomodify nopeer noquery限制127.0.0.1限制:: 1广播192.168.10.255

根@主:〜#systemctl重新启动ntp.service 
root @ master:〜#systemctl状态ntp.service
根@主:〜#ntpdate -u sysadmin.swl.fan
27月10日04:01:18769 ntpdate [192.168.10.1]:调整时间服务器0.369354偏移时间XNUMX秒

全局检查ntp,bind9和isc-dhcp-server

从Linux,BSD,Mac OS或Windows客户端检查时间是否正确同步。 它获取一个动态IP地址,并通过直接和反向DNS查询来解析该主机的名称。 更改客户名称并重做所有支票。 在确定到目前为止已安装的服务运行正常之前,请不要继续。 对于某些事情,我们在其中撰写了有关DNS和DHCP的所有文章。 中小企业计算机网络.

NIS服务器安装

根@主人:〜#aptitude show nis
冲突:netstd(<= 1.26)描述:网络信息服务(NIS)的客户端和守护程序此软件包提供了用于设置和维护NIS域的工具。 NIS(最初称为黄页(YP))通常用于使网络中的多台计算机共享相同的帐户信息,例如密码文件。

root @ master:〜#aptitude安装nis
封装配置┌──────────────────┤Nis配置├──────────────── ────────┐│为此系统选择NIS“域名”。 如果希望│││这台机器仅作为客户端,则应输入要加入的││NIS域的名称。 │││││或者,如果此计算机要作为NIS服务器,则可以││输入新的NIS“域名”或现有NIS│域的名称。 ││││NIS域:││││swl.fan __________________________________________________________________││││ │││└────────────────────────────────── ──────────────────┘  

这将延迟您的时间,因为服务配置本身并不存在。 请等待该过程完成。

root @ master:〜#纳米/ etc /默认/ nis
#我们是NIS服务器吗?如果是,是什么类型(值:false,slave,master)?
NISSERVER =主服务器

root @ master:〜#nano /etc/ypserv.securenets#securenets此文件为NIS客户端(和从属服务器-ypxfrd也使用此#文件)定义对NIS服务器的访问权限。 该文件包含网络掩码/网络对。 #客户端IP地址至少需要与其中一个匹配。 ##可以使用单词“ host”代替#255.255.255.255的网络掩码。 #文件中仅允许使用IP地址,不允许主机名。 ##始终允许对localhost 255.0.0.0 127.0.0.0的访问权限#此行向所有人开放访问权限。 请调整! #0.0.0.0 0.0.0.0
255.255.255.0 192.168.10.0

root @ master:〜#nano / var / yp / Makefile#我们应该将passwd文件与影子文件合并吗? #MERGE_PASSWD = true | false
MERGE_PASSWD = true

#我们是否应该将组文件与gshadow文件合并? #MERGE_GROUP = true | false
MERGE_GROUP = true

我们建立NIS数据库

根@主:〜#/ usr / lib / yp / ypinit -m
至此,我们必须构建将运行NIS服务器的主机列表。 master.swl.fan在NIS服务器主机列表中。 请继续添加其他主机的名称,每行一个。 完成列表后,输入a 。 下一个要添加的主机:master.swl.fan下一个要添加的主机:当前NIS服务器列表如下所示:master.swl.fan这是正确的吗? [y / n:y]我们需要几分钟来构建数据库... [1]:将目录'/var/yp/swl.fan'master.swl.fan设置为NIS主服务器。 现在,您可以在所有从属服务器上运行ypinit -s master.swl.fan。

root @ master:〜#systemctl重新启动nis
根@主:〜#systemctl status nis

我们添加本地用户

根@主:〜#adduser bilbo
添加用户`bilbo'...添加新组`bilbo'(1001)...添加新用户`bilbo'(1001)和组`bilbo'...创建主目录`/ home / bilbo' ...从`/ etc / skel'复制文件...输入新的UNIX密码:重新输入新的UNIX密码:passwd:密码已正确更新更改bilbo的用户​​信息输入新值,或按Enter使用默认全名[]:Bilbo Bagins房间号[]:工作电话[]:家庭电话[]:其他[]:信息正确吗? [是/否]

root @ master:〜#adduser大步前进root @ master:〜#adduser legolas

等等。

根// @大师:〜#手指豆豆
登录名:legolas名称:Legolas Archer目录:/ home / legolas Shell:/ bin / bash从未登录。 没有邮件。 没有计划。

我们更新NIS数据库

root @ master:/ var / yp #make
make [1]:进入目录'/var/yp/swl.fan'正在更新passwd.byname ...正在更新passwd.byuid ...正在更新group.byname ...正在更新group.bygid ...正在更新netid.byname。 ..正在更新shadow.byname ...被忽略->与passwd make合并[1]:离开目录'/var/yp/swl.fan'

我们将NIS选项添加到isc-dhcp-server

root @ master:〜#纳米/etc/dhcp/dhcpd.conf
ddns-update-style临时; ddns-更新; ddns域名“ swl.fan”。 ddns-rev域名“ in-addr.arpa”。 忽略客户端更新; 更新优化错误; 权威性; ip转发的选项; 选项域名“ swl.fan”; 包括“ /etc/dhcp/dhcp.key”; 区域swl.fan。 {primary 127.0.0.1; 密钥dhcp-key; }区域10.168.192.in-addr.arpa。 {primary 127.0.0.1; 密钥dhcp-key; }共享网络redlocal {子网192.168.10.0网络掩码255.255.255.0 {选项路由器192.168.10.1; 选项子网掩码255.255.255.0; 选项广播地址192.168.10.255; 选项域名服务器192.168.10.5; 选项netbios-name-servers 192.168.10.5; 选项ntp-servers 192.168.10.5; 选项时间服务器192.168.10.5;
                选项nis域“ swl.fan”;
                选项nis-servers 192.168.10.5;
                范围192.168.10.30 192.168.10.250; }}

根@主:〜#dhcpd -t
根@主:〜#systemctl重新启动isc-dhcp-server.service

NIS客户端安装

  • 我们从Debian 8“ Jessie”的全新安装-没有图形界面-开始.
根@邮件:〜#主机名-f
邮箱.swl.fan

根@邮件:〜#ip addr
2:eth0: mtu 1500 qdisc pfifo_fast状态UP组默认qlen 1000链接/以太00:0c:29:25:1f:54 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.9/24 brd 192.168.10.255作用域全局eth0

根@邮件:〜# aptitude 安装 nis
根@邮件:〜# nano /etc/yp.conf##yp.conf ypbind进程的配置文件。 如果#在本地网上广播(默认设置)找不到#NIS服务器,则可以在此处手动定义它们。 ##有关此文件的语法,请参见ypbind的手册页。 ##重要:对于“ ypserver”,请使用IP地址,或确保#主机位于/ etc / hosts中。 该文件仅被解释#次,并且如果无法访问DNS却无法解析ypserver#,并且ypbind将永远不会绑定到服务器。 #ypserver ypserver.network.com ypserver master.swl.fan域swl.fan

根@邮件:〜#纳米/etc/nsswitch.conf
#/etc/nsswitch.conf##GNU名称服务开关功能的示例配置。 #如果您安装了`glibc-doc-reference'和`info'软件包,请尝试:#`info libc“ Name Service Switch”'有关此文件的信息。 passwd:compat nis组:compat nis阴影:compat nis gshadow:文件主机:文件dns nis网络:文件协议:db文件服务:db文件ethers:db文件rpc:db文件netgroup:nis

根@邮件:〜#纳米/etc/pam.d/common-session
#pam-auth-update(8)以获得详细信息。
会话可选pam_mkhomedir.so skel = / etc / skel umask = 077
#这是每个软件包的模块(“主”块)

根@邮件:〜#systemctl status nis
根@邮件:〜#systemctl重新启动nis

我们关闭该会话,然后重新启动它,但使用NIS数据库中注册的用户 大师范.

根@邮件:〜#退出
注销邮件连接已关闭。

嗡嗡声@ sysadmin:〜$ ssh legolas @邮件
legolas @ mail的密码:创建目录“ / home / legolas”。 Debian GNU / Linux系统附带的程序是免费软件; / usr / share / doc / * / copyrights中的各个文件中描述了每个程序的确切分发条款。 在适用法律允许的范围内,Debian GNU / Linux绝对不提供担保。
莱戈拉斯@ mail:〜$ pwd
/主页/ legolas
legolas @邮件:〜$ 

我们更改legolas用户的密码并检查

Legolas @邮件:〜$ yppasswd 
在master.swl.fan上更改Legolas的NIS帐户信息。 请输入旧密码:legolas在master.swl.fan上为legolas更改NIS密码。 请输入新密码:archer密码必须同时包含大小写字母或非字母。 请输入新密码:Arquero2017请重新输入新密码:Arquero2017 NIS密码已在master.swl.fan上更改。

Legolas @ Mail:〜$退出
注销邮件连接已关闭。

嗡嗡声@ sysadmin:〜$ ssh legolas @邮件
legolas @ mail的密码:Arquero2017

Debian GNU / Linux系统附带的程序是免费软件; / usr / share / doc / * / copyrights中的各个文件中描述了每个程序的确切分发条款。 在适用法律允许的范围内,Debian GNU / Linux绝对不提供担保。 上次登录时间:27年12月51日星期六50:2017:XNUMX来自sysadmin.swl.fan
legolas @邮件:〜$

在服务器和客户端级别实施的NIS服务可以正常工作。

LDAP的

来自维基百科:

  • LDAP是“轻型目录访问协议”(在西班牙的“轻型/简化目录访问协议”中)的首字母缩写,是指允许访问有序和分布式目录服务以在环境网络中搜索各种信息的应用程序级协议。 LDAP也被视为可以查询的数据库(尽管其存储系统可能有所不同)。目录是一组对象,这些对象具有以逻辑和分层方式组织的属性。 最常见的示例是电话簿,其中包含一系列按字母顺序排列的名称(人或组织),每个名称都有一个地址和一个电话号码。 为了更好地理解,它是一本书或文件夹,上面写有人们的姓名,电话号码和地址,并按字母顺序排列。

    LDAP目录树有时会反映各种政治,地理或组织边界,具体取决于所选择的模型。 当前的LDAP部署倾向于使用域名系统(DNS)名称来构建更高层次的层次结构。 向下滚动目录时,可能会出现代表人员,组织单位,打印机,文档,人员组的条目,或表示树中给定条目的任何事物(或多个条目)。

    通常,它存储身份验证信息(用户和密码)并用于身份验证,尽管可以存储其他信息(用户联系数据,各种网络资源的位置,权限,证书等)。 总之,LDAP是对网络上的一组信息的统一访问协议。

    当前版本是LDAPv3,它在RFC RFC 2251和RFC 2256(LDAP基本文档),RFC 2829(LDAP的认证方法),RFC 2830(TLS的扩展名)和RFC 3377(技术规范)中定义。

    .

很久了,LDAP协议(及其与OpenLDAP兼容或不兼容的数据库)是当今大多数身份验证系统中使用最多的协议。 作为上述语句的示例,我们在下面提供一些系统名称-Free或Private-,这些系统使用LDAP数据库作为后端来存储其所有对象:

  • OpenLDAP的
  • Apache目录服务器
  • 红帽目录服务器-389 DS
  • Novell目录服务-eDirectory
  • SUN 微系统开放 DS
  • 红帽身份管理器
  • 自由IPA
  • Samba NT4经典域控制器。
    我们想澄清一下,该系统是Team Samba的开发,Samba 3.xxx + OpenLDAP作为 后端。 微软从未实现过类似的东西。 从NT 4域控制器跳转到其活动目录
  • Samba 4 Active Directory-域控制器
  • ClearOS
  • 曾蒂亚尔
  • UCS Uninvention企业服务器
  • Microsoft Active Directory

每个实现都有自己的特点,最标准和最兼容的是 OpenLDAP的.

Active Directory,无论是来自Microsoft的原始目录还是来自Samba 4的目录,都由以下几个主要组件组成:

我们一定不能混淆 目录服务 o目录服务 活动目录 o Active Directory。 前者可能会或可能不会主持Kerberos身份验证,但它们不提供Windows域提供的Microsoft网络服务,也没有Windows域控制器。

目录服务或目录服务可用于在具有UNIX / Linux和Windows客户端的混合网络中对用户进行身份验证。 对于后者,必须在每个客户端上安装一个充当目录服务和Windows客户端本身之间的中介的程序,例如Free Software。 .

使用OpenLDAP的目录服务

  • 我们从Debian 8“ Jessie”的全新安装-没有图形界面-开始,具有用于NIS安装的相同“主”计算机名称,以及其网络接口和/etc/resolv.conf文件的配置。 在此新服务器上,我们安装了ntp,bind9和isc-dhcp-server,而不会忘记对先前三个服务的正确操作进行全局检查.
root @ master:〜#aptitude安装slapd ldap-utils

套餐配置

──────────────┤ 拍打式配置 │──输入LDAP││目录的管理员条目的密码。 ││││管理员密码:││││******** _________________________________________________________││││ │││└────────────────────────────────── ──────────────────┘

我们检查初始配置

根@主人:〜#slapcat
dn:dc = swl,dc =风扇
objectClass:顶级objectClass:dcObject objectClass:组织o:swl.fan dc:swl structureObjectClass:组织入口UUID:c8510708-da8e-1036-8fe1-71d022a16904 creatorsName:cn = admin,dc = swl,dc =风扇入口createTimestamp20170531205219:20170531205219.833955ZN入口createTimestamp000000 :000ZN000000条目Z#20170531205219#XNUMX#XNUMX修饰符名称:cn = admin,dc = swl,dc =风扇修改时间戳:XNUMXZ

dn:cn =管理员,dc = swl,dc =风扇
对象类:simpleSecurityObject对象类:organizationalRole CN:管理员说明:LDAP管理员的userPassword :: e1NTSEF9emJNSFU1R3l2OWVEN0pmTmlYOVhKSUF4ekY1bU9YQXc = structuralObjectClass:organizationalRole entryUUID:c851178e- da8fe1036e entrySw8d-da2fe71 entrySw022c16904e-da20170531205219fe20170531205219.834422e-000000 entrySw000e-da000000fe20170531205219e = entrySXNUMX entrySwXNUMXe-daXNUMXfeXNUMXeXNUMXpmTmlYOVhKSUXNUMX entrySXNUMXe-XNUMXe进入= cXNUMXe XNUMX Z#XNUMX#XNUMX#XNUMX修饰符名称:cn = admin,dc = swl,dc =风扇修改时间戳:XNUMXZ

我们修改文件/etc/ldap/ldap.conf

root @ master:〜#纳米/etc/ldap/ldap.conf
BASE dc = swl,dc =风扇URI    ldap://本地主机

组织单位和一般组“用户”

我们添加了最低限度的组织单位,以及Posix组“用户”,我们将按照所有具有组«用户«。 我们以“用户”的名称来命名,以免与组«发生冲突。用户系统”。

根@主:〜#nano base.ldif
dn:ou =人员,dc = swl,dc =粉丝对象类:OrganizationalUnit ou:人员dn:ou =团体,dc = swl,dc =粉丝对象类:organizationalUnit ou:团体dn:cn =用户,ou =团体,dc = swl,dc =风扇objectClass:posixGroup cn:users gidNumber:10000

root @ master:〜#ldapadd -x -D cn = admin,dc = swl,dc =风扇-W -f base.ldif
输入LDAP密码:添加新条目“ ou =人员,dc = swl,dc =风扇”添加新条目“ ou =组,dc = swl,dc =风扇”

我们检查添加的条目

root @ master:〜#ldapsearch -x ou = people
#people,swl.fan dn:ou = people,dc = swl,dc = fan objectClass:OrganizationalUnit ou:people

root @ master:〜#ldapsearch -x ou =组
#组,swl.fan dn:ou =组,dc = swl,dc =风扇对象类:OrganizationalUnit ou:组

root @ master:〜#ldapsearch -x cn =用户
#用户,组,swl.fan dn:cn =用户,ou =组,dc = swl,dc =风扇对象类:posixGroup cn:users gidNumber:10000

我们添加了几个用户

我们必须在LDAP中声明的密码必须通过以下命令获得 slappasswd,它返回SSHA加密的密码。

用户密码:

根@大师:〜#slappasswd 
新密码:重新输入新密码: 
{SSHA}Fn8Juihsr137u8KnxGTNPmnV8ai//0lp

用户legolas的密码

根@大师:〜#slappasswd 
新密码:重新输入新密码: 
{SSHA}rC50/W3kBmmDd+8+0Lz70vkGEu34tXmD

用户gandalf的密码

根@大师:〜#slappasswd 
新密码:重新输入新密码: 
{SSHA} oIVFelqv8WIxJ40r12lnh3bp + SXGbV + u

根@主:〜#nano users.ldif
dn:uid =步幅,ou =人,dc = swl,dc =风扇objectClass:inetOrgPerson objectClass:posixAccount objectClass:shadowAccount uid:strides cn:strides GivenName:Strides sn:El Rey userPassword: {SSHA}Fn8Juihsr137u8KnxGTNPmnV8ai//0lp
uidNumber:10000 gidNumber:10000邮件: striders@swl.fan
gecos:Strider El Rey loginShell:/ bin / bash home目录:/ home / strider dn:uid = legolas,ou = people,dc = swl,dc = fan objectClass:inetOrgPerson objectClass:posixAccount objectClass:shadowAccount uid:legolas cn:legolas namedName :Legolas sn:弓箭手userPassword: {SSHA}rC50/W3kBmmDd+8+0Lz70vkGEu34tXmD
uidNumber:10001 gidNumber:10000邮件: 莱戈拉斯@swl.fan
gecos:Legolas Archer loginShell:/ bin / bash homeDirectory:/ home / legolas dn:uid = gandalf,ou = people,dc = swl,dc = fan objectClass:inetOrgPerson objectClass:posixAccount objectClass:shadowAccount uid:gandalf cn:gandalf named: Gandalf sn:向导userPassword: {SSHA} oIVFelqv8WIxJ40r12lnh3bp + SXGbV + u
uidNumber:10002 gidNumber:10000邮件: 甘道夫@swl.fan
gecos:Gandalf向导登录Shell:/ bin / bash home目录:/ home / gandalf

root @ master:〜#ldapadd -x -D cn =管理员,dc = swl,dc =风扇-W -f users.ldif
输入LDAP密码:添加新条目“ uid = strides,ou = people,dc = swl,dc = fan”添加新条目“ uid = legolas,ou = people,dc = swl,dc = fan”添加新条目“ uid = gandalf,ou =人员,dc = swl,dc =风扇“

我们检查添加的条目

root @ master:〜#ldapsearch -x cn =步幅
root @ master:〜#ldapsearch -x uid =步幅

我们使用控制台实用程序管理slpad数据库

我们选择包裹 ldap脚本 这样的任务。 安装和配置过程如下:

root @ master:〜#aptitude安装ldapscripts
 
根@主:〜#mv /etc/ldapscripts/ldapscripts.conf \
/etc/ldapscripts/ldapscripts.conf.original
 
root @ master:〜#纳米/etc/ldapscripts/ldapscripts.conf
SERVER = localhost BINDDN ='cn = admin,dc = swl,dc = fan'BINDPWDFILE =“ / etc / ldapscripts / ldapscripts.passwd” SUFFIX ='dc = swl,dc = fan'GSUFFIX ='ou =组'USUFFIX = 'ou = people'#MSUFFIX ='ou = Computers'GIDSTART = 10001 UIDSTART = 10003#MIDSTART = 10000#OpenLDAP客户端命令LDAPSEARCHBIN =“ / usr / bin / ldapsearch” LDAPADDBIN =“ / usr / bin / ldapadd” LDAPDELETEBIN =“ / usr / bin / ldapdelete“ LDAPMODIFYBIN =” / usr / bin / ldapmodify“ LDAPMODRDNBIN =” / usr / bin / ldapmodrdn“ LDAPPASSWDBIN =” / usr / bin / ldappasswd“ GCLASS =” posixGroup“#UTEMPLATE =” / etc / etc 。/ldapadduser.template“ PASSWORDGEN =” echo%u“

请注意,脚本使用包命令 ldap 实用程序。 跑 dpkg -L ldap-utils | grep / bin 知道他们是什么。

root @ master:〜#sh -c“ echo -n'admin-password'> \
/etc/ldapscripts/ldapscripts.passwd“
 
root @ master:〜#chmod 400 /etc/ldapscripts/ldapscripts.passwd
 
root @ master:〜#cp /usr/share/doc/ldapscripts/examples/ldapadduser.template.sample \
/etc/ldapscripts/ldapdduser.template
 
root @ master:〜#纳米/etc/ldapscripts/ldapadduser.template
dn:uid = , , objectClass:inetOrgPerson objectClass:posixAccount objectClass:shadowAccount uid: cn: 给定的名称: sn: 显示名称: uidNumber: gidNumber:10000 homeDirectory: loginShell: 邮件: @ swl.fan壁虎: 描述:用户帐户
 
root @ master:〜#纳米/etc/ldapscripts/ldapscripts.conf
##我们删除注释UTEMPLATE =“ / etc / ldapscripts / ldapadduser.template”

我们添加用户“ bilbo”,并使其成为“用户”组的成员

root @ master:〜#ldapadduser bilbo用户
[dn:uid = bilbo,ou =人员,dc = swl,dc =风扇]输入“ givenName”的值:Bilbo [dn:uid = bilbo,ou =人员,dc = swl,dc =风扇]输入“ sn“:Bagins [dn:uid = bilbo,ou =人员,dc = swl,dc =风扇]输入“ displayName”的值:Bilbo Bagins已成功将用户bilbo添加到LDAP中已成功设置用户bilbo的密码

根@主:〜#ldapsearch -x uid = bilbo
#bilbo,people,swl.fan dn:uid = bilbo,ou = people,dc = swl,dc = fan objectClass:inetOrgPerson objectClass:posixAccount objectClass:shadowAccount uid:bilbo cn:bilbo namedName:Bilbo sn:Bagins displayName:Bilbo Bagins uidNumber:10003 gidNumber:10000 homeDirectory:/ home / bilbo loginShell:/ bin / bash邮件: 比尔博@swl.fan
gecos:bilbo说明:用户帐户

要查看bilbo用户密码的哈希值,必须通过身份验证执行查询:

root @ master:〜#ldapsearch -x -D cn = admin,dc = swl,dc =风扇-W uid = bilbo

要删除bilbo用户,我们执行:

root @ master:〜#ldapdelete -x -D cn = admin,dc = swl,dc = fan -W uid = bilbo,ou = people,dc = swl,dc = fan
输入LDAP密码:

根@主:〜#ldapsearch -x uid = bilbo

我们通过网络界面管理拍打数据库

我们具有功能齐全的目录服务,我们希望更轻松地对其进行管理。 有许多为此任务设计的程序,例如 phpldapadmin, ldap帐户经理等,可直接从存储库中获得。 我们还可以通过以下方式管理目录服务 Apache 目录工作室,我们必须从Internet下载。

有关更多信息,请访问 https://blog.desdelinux.net/ldap-introduccion/,以及以下6篇文章。

LDAP客户端

阶段:

说我们有团队 邮箱.swl.fan 作为我们在本文中看到的实现的邮件服务器 Postfix + Dovecot + Squirrelmail和本地用户尽管它是在CentOS上开发的,但可以很好地用作Debian和许多其他Linux发行版的指南。 除了已经声明的本地用户外,我们还希望存储在OpenLDAP数据库中的用户已存在于 大师范。 为了实现上述目标,我们必须«画出»以LDAP用户作为服务器上的本地用户 邮箱.swl.fan。 该解决方案对于基于PAM身份验证的任何服务也有效。 一般程序 Debian,如下所示:

根@邮件:〜#aptitude安装libnss-ldap libpam-ldap ldap-utils

  of────────────────┤ libnss-ldap │──输入LDAP服务器的URI(“统一资源标识符”或││统一资源标识符)。 此字符串类似于││«ldap://: /»。 您也可以││使用«ldaps://» 或“ ldapi://”。 端口号是可选的。 ││││推荐使用IP地址,以免在域名服务││不可用时失败。 ││││LDAP服务器URI:││││ ldap://master.swl.fan__________________________________________________ ││││ │││└────────────────────────────────── ──────────────────────┘┌─────────────────── of配置 libnss-ldap ├────────────────┐│输入LDAP搜索库的专有名称(DN)。 ││为此,许多站点都使用域名组件。 例如,域“ example.net”将使用││“ dc = example,dc = net”作为搜索库的可分辨名称。 ││││搜索库的专有名称(DN):││││dc = swl,dc =风扇____________________________________________________________││││ │││└────────────────────────────────── ──────────────────────┘┌───────────────── ──┤的配置 libnss-ldap ││输入ldapns应使用的LDAP协议版本。 ││推荐使用可用的最高版本号。 ││││要使用的LDAP版本:││││                                     3                                     ││2││││││ │││└────────────────────────────────── ──────────────────────┘┌─────────────── ──┤的配置 libnss-ldap ││选择具有根特权的nss查询将使用哪个帐户。 ││││注:为了使此选项起作用,该帐户需要权限││才能访问与用户││“影子”条目关联的LDAP属性以及用户和││组的密码。 ││││根目录的LDAP帐户:││││cn = admin,dc = swl,dc = fan ___________________________________________________││││ │││└────────────────────────────────── ──────────────────────┘┌───────────────── ──┤的配置 libnss-ldap ││输入当libnss-ldap尝试使用root的LDAP帐户││认证到LDAP目录时使用的密码。 │││││密码将保存在一个单独的文件││(“ /etc/libnss-ldap.secret”)中,只有root可以访问。 │││││如果输入空密码,则旧密码将被重用。 ││││根LDAP帐户的密码:││││******** ________________________________________________________________││││ │││└────────────────────────────────── ────────────────────┘┘──────────────── ─┤配置 libnss-ldap │││││││││││││││││您必须修改文件“ /etc/nsswitch.conf”如果您希望libnss-ldap软件包能够正常工作,请使用LDAP数据源。 ││您可以使用“ /usr/share/doc/libnss-ldap/examples/nsswitch.ldap”中的样本文件││作为nsswitch配置的示例,或者││可以将其复制到当前配置中。 ││││注意,在删除此软件包之前,最好从nsswitch.conf文件中删除│ldap条目,以便基本服务│继续起作用。 ││││ │││└────────────────────────────────── ──────────────────────┘┌───────────────── ──┤的配置 libpam LDAP ││││此选项允许使用PAM的密码工具更改本地密码。 ││││LDAP管理员帐户的密码将存储在单独的││文件中,该文件只能由管理员读取。 │││││如果通过NFS安装“ / etc”,则应禁用此选项。 │││││是否要允许LDAP管理员帐户充当││本地管理员? ││││                                            │││└────────────────────────────────── ──────────────────────┘┌───────────────── ──┤的配置 libpam LDAP ││││选择LDAP服务器在获取entradas│条目之前是否强制标识。 │││││几乎不需要此设置。 │││││是否需要用户才能访问LDAP数据库? ││││                                               │││└────────────────────────────────── ──────────────────────┘┌───────────────── ──┤的配置 libpam LDAP ├────────────────┐│输入LDAP管理员帐户的名称。 ││││该帐户将自动用于数据库管理││,因此您必须具有适当的管理特权。 ││││LDAP管理员帐户:││││cn = admin,dc = swl,dc =风扇___________________________________________________││││ │││└────────────────────────────────── ──────────────────────┘┌─────────────── ──┤的配置 libpam LDAP ├────────────────┐│输入管理员帐户的密码。 │││││密码将保存在文件“ /etc/pam_ldap.secret”中。 ││管理员将是唯一可以读取此文件的管理员,并将允许││libpam-ldap自动控制││数据库中的连接管理。 ││││如果将此字段保留为空白,将再次使用以前保存的密码││。 ││││LDAP管理员密码:││││******** _________________________________________________________________││││ │││└────────────────────────────────── ──────────────────┘  

根@邮件:〜#纳米/etc/nsswitch.conf
#/etc/nsswitch.conf##GNU名称服务开关功能的示例配置。 #如果您安装了`glibc-doc-reference'和`info'软件包,请尝试:#`info libc“ Name Service Switch”'有关此文件的信息。 passwd:兼容 LDAP
组:兼容 LDAP
阴影:兼容 LDAP
gshadow:文件主机:文件dns网络:文件协议:db文件服务:db文件ethers:db文件rpc:db文件netgroup:nis

让我们编辑文件 /etc/pam.d/通用密码,我们转到第26行并消除值«使用授权“:

根@邮件:〜#纳米/etc/pam.d/common-password
##/etc/pam.d/common-password-所有服务通用的密码相关模块##该文件包含在其他特定于服务的PAM配置文件中,##并且应包含将服务定义为以下模块的列表: #用于更改用户密码。 默认值为pam_unix。 #pam_unix选项的说明:##“ sha512”选项启用盐腌的SHA512密码。 如果没有此选项,则#默认为Unix crypt。 早期版本使用选项“ md5”。 ##“ obscure”选项替换了#login.defs中的旧`OBSCURE_CHECKS_ENAB'选项。 ##有关其他选项,请参见pam_unix联机帮助页。 #从pam 1.0.1-6开始,默认情况下此文件由pam-auth-update管理。 #要利用此优势,建议您在默认块之前或之后配置任何#本地模块,并使用#pam-auth-update管理其他模块的选择。 有关详细信息,请参见#pam-auth-update(8)。 #这是每个软件包的模块(“主”块)密码[成功= 2,默认=忽略] pam_unix.so晦涩的sha512
密码[成功= 1 user_unknown =忽略默认值= die] pam_ldap.so try_first_pass
#如果没有模块成功,则返回密码,必须输入密码pam_deny.so#如果还没有模块,则使用正的返回值来填充堆栈; #这避免了我们仅仅因为没有东西设置成功代码而返回错误#因为上面的模块每个都将跳转所需的密码pam_permit.so##这里是更多的每包模块(“附加”块)#pam-的结尾验证更新配置

万一我们需要 LDAP中存储的用户的本地登录名,我们希望自动创建他们的文件夹 主页,我们必须编辑文件 /etc/pam.d/共同会话 并将以下行添加到文件末尾:

会话可选pam_mkhomedir.so skel = / etc / skel umask = 077

在先前开发的OpenLDAP Directory Service示例中,唯一创建的本地用户是user 嗡嗡声,而在LDAP中,我们创建用户 大步向前, LEGOLAS, 甘道夫,而 。 如果到目前为止所做的配置是正确的,那么我们应该能够列出本地用户以及那些映射为本地但存储在远程LDAP服务器中的用户:

根@邮件:〜#getent passwd 
buzz:x:1001:1001:Buzz Debian First OS ,,,:/ home / buzz:/ bin / bash
步幅:x:10000:10000:步幅El Rey:/主页/步幅:/ bin / bash
legolas:x:10001:10000:Legolas Archer:/ home / legolas:/ bin / bash
gandalf:x:10002:10000:Gandalf向导:/ home / gandalf:/ bin / bash
bilbo:x:10003:10000:bilbo:/ home / bilbo:/ bin / bash

更改系统身份验证后,如果我们没有关键服务,则重新启动服务器是有效的:

根@邮件:〜#重新启动

稍后我们在服务器上启动本地会话 邮箱.swl.fan 使用存储在LDAP数据库中的用户凭证 大师范。 我们也可以尝试通过SSH登录。

嗡嗡声@ sysadmin:〜$ ssh gandalf @ mail
gandalf @ mail的密码:创建目录“ / home / gandalf”。 Debian GNU / Linux系统附带的程序是免费软件; / usr / share / doc / * / copyrights中的各个文件中描述了每个程序的确切分发条款。 在适用法律允许的范围内,Debian GNU / Linux绝对不提供担保。
甘道夫@ mail:〜$ su
密码:

root @ mail:/ home / gandalf #getent组
嗡嗡声:x:1001:用户:*:10000:

root @ mail:/ home / gandalf#退出
出口

甘道夫@ mail:〜$ ls -l / home /
总共8个drwxr-xr-x 2 嗡嗡声     4096年17月12日25:2嗡嗡声drwx ------ XNUMX gandalf用户 4096年17月13日05:XNUMX甘道夫

在服务器和客户端级别实现的目录服务正常运行。

Kerberos的

来自维基百科:

  • Kerberos是计算机网络身份验证协议,由 麻省理工学院简介 这样一来,不安全网络上的两台计算机就可以彼此安全地证明其身份。 它的设计者首先关注于客户端-服务器模型,并且提供了相互身份验证:客户端和服务器都可以验证彼此的身份。 身份验证消息受到保护以防止 窃听 y 重播攻击.

    Kerberos基于对称密钥加密,并且需要受信任的第三方。 此外,该协议还有一些扩展,可以使用非对称密钥加密。

    Kerberos基于 Needham-Schroeder协议。 它使用一个受信任的第三方,称为“密钥分发中心”(KDC),它由两个单独的逻辑部分组成:“身份验证服务器”(AS或身份验证服务器)和“票证发行服务器”(TGS或票证授予服务器)。 Kerberos在“票证”的基础上工作,“票证”用于证明用户的身份。

    Kerberos维护密钥数据库。 网络上的每个实体(无论是客户端还是服务器)都共享一个仅对其自身和Kerberos已知的密钥。 了解此密钥有助于证明实体的身份。 对于两个实体之间的通信,Kerberos会生成一个会话密钥,它们可以用来保护自己的问题.

Kerberos的缺点

De 发生了:

虽然 Kerberos的 消除了常见的安全威胁,由于多种原因可能很难实施:

  • 从标准密码数据库迁移用户密码 UNIX,例如/ etc / passwd或/ etc / shadow,到Kerberos密码数据库,可能很乏味,没有快速的机制可以完成此任务。
  • Kerberos假定每个用户都是受信任的,但在不受信任的网络上使用的是不受信任的计算机。 其主要目的是防止未加密的密码通过网络发送。 但是,如果除适当用户之外的任何其他用户都可以访问票务机(KDC)进行身份验证,则Kerberos将面临风险。
  • 为了使应用程序使用Kerberos,必须修改代码以对Kerberos库进行适当的调用。 以这种方式修改的应用程序被认为是kerberized。 对于某些应用程序,由于应用程序或其设计的大小,这可能是过度的编程工作。 对于其他不兼容的应用程序,必须更改网络服务器及其客户端的通信方式。 同样,这可能需要大量的编程。 通常,不支持Kerberos的封闭源应用程序通常是最成问题的。
  • 最后,如果您决定在网络上使用Kerberos,则必须意识到这是一个全有或全无的选择。 如果决定在网络上使用Kerberos,则必须记住,如果将任何密码传递给不使用Kerberos进行身份验证的服务,则可能会导致数据包被拦截。 因此,使用Kerberos将不会给您的网络带来任何好处。 为了使用Kerberos保护您的网络,您应该只使用所有发送未加密密码的客户端/服务器应用程序的kerberized版本,或者不使用网络上的任何这些应用程序.

手动实现并将OpenLDAP配置为Kerberos后端并非易事。 但是,稍后我们将看到Samba 4 Active Directory-域控制器以透明的方式集成了Sysadmin,DNS服务器,Microsoft网络及其域控制器,LDAP服务器,作为几乎所有对象的后端,并且基于Kerberos的身份验证服务,它是Microsoft样式的Active Directory的基本组件。

迄今为止,我们还没有必要实施“ Kerberized Network”。 这就是为什么我们没有写关于如何实现Kerberos的原因。

Samba 4 Active Directory-域控制器

重要事项:

没有比该站点更好的文档了 维基.samba.org。 值得您耐心等待的Sysadmin应该以英语访问该网站,并浏览由Samba团队本人撰写的专门针对Samba 4的大量页面。 我认为Internet上没有文档可以替代它。 顺便说一下,观察每页底部反映的访问次数。 例如,访问您的主页或«主页» 276,183 美国东部标准时间20年2017月10日上午10:6至今。 此外,该文档保持最新状态,因为该页面于XNUMX月XNUMX日进行了修改.

来自维基百科:

Samba是针对类似UNIX的系统的Microsoft Windows文件共享协议(以前称为SMB,最近重命名为CIFS)的免费实现。 这样,具有GNU / Linux,Mac OS X或Unix的计算机通常看起来像服务器或充当Windows网络中的客户端。 Samba还允许验证用户作为主域控制器(PDC),域成员,甚至是基于Windows的网络的Active Directory域。 除了能够提供打印队列,共享目录并向您自己的用户档案进行身份验证之外。

在可以运行Samba的类Unix系统中,有GNU / Linux发行版,Solaris和不同版本的BSD变体。 我们可以找到苹果的Mac OS X Server.

Samba 4 AD-DC及其内部DNS

  • 我们从Debian 8“ Jessie”的全新安装-没有图形界面-开始.

初步检查

root @ master:〜#主机名root @ master:〜#主机名--fqdn
大师范
root @ master:〜#ip地址
1:什么: mtu 65536 qdisc无队列状态UNKNOWN组默认链接/环回00:00:00:00:00:00 00 brd 00:00:00:00:00:127.0.0.1 inet 8/6作用域主机lo valid_lft永远永久preferred_lft永久inet1 :: 128/2作用域主机永远有效_lft永远首选_lft 0:eth1500: mtu 1000 qdisc pfifo_fast状态未知组默认qlen 00链接/以太0:29c:80:3:3b:XNUMXf brd ff:ff:ff:ff:ff:ff:ff
    inet 192.168.10.5/24 brd 192.168.10.255作用域全局eth0
       valid_lft forever preferred_lft forever inet6 fe80 :: 20c:29ff:fe80:3b3f / 64作用域链接valid_lft forever preferred_lft forever
root @ master:〜#猫/etc/resolv.conf
搜索swl.fan名称服务器127.0.0.1
  • 我们用它来声明分支 仅此,对于我们的目的来说已经绰绰有余.
root @ master:〜#猫/etc/apt/sources.list
DEB http://192.168.10.1/repos/jessie-8.6/debian/ 杰西 DEB http://192.168.10.1/repos/jessie-8.6/debian/security/ 杰西/更新 

通过Exim和实用程序进行Postfix

根@大师:〜#aptitude install postfix htop mc deborphan

  fix──────────────────┤Postfix Configuration├───────────── ────┐│选择最适合您││需求的邮件服务器配置类型。 ││││否配置:││保持当前配置不变。 ││互联网站点:││直接使用SMTP发送和接收邮件。 ││带有“ smarthost”的Internet:││邮件是直接使用SMTP或通过运行│诸如“ fetchmail”之类的工具来接收的。 使用││“智能主机”发送外发邮件。 ││仅本地邮件:││唯一传递的邮件是针对本地用户的。 否││有网络。 ││││邮件的常规类型配置:││││没有配置││互联网站点││带有“ smarthost”的互联网││卫星系统││                         仅本地邮件                                ││││││                                     │││└────────────────────────────────── ────────────────────┘┘──────────────── ──────┤Postfix配置├──────────────┐│“邮件系统名称”是以下域的名称: ││用于“限定”没有域名的_ALL_电子邮件地址。 这包括来往“根”的邮件:请不要使│您的计算机从以下位置发送电子邮件 根@example.org 到││小于 根@example.org 问。 ││││其他程序将使用此名称。 它必须是唯一的││合格域名(FQDN)。 ││││因此,如果本地计算机上的电子邮件地址是││ something@example.org,此选项的正确值将是example.org。 ││││邮件系统名称:││││master.swl.fan ___________________________________________________________││││ │││└────────────────────────────────── ──────────────────┘  

我们打扫

根@大师:〜#清除能力〜c
根@主:〜#aptitude install -f
根// @高手:〜#天资干净
根@主人:〜#aptitude autoclean

我们安装了编译Samba 4和 其他必要的套餐

root @ master:〜#aptitude install acl attr autoconf野牛\
构建基本的debhelper dnsutils docbook-xml docbook-xsl flex gdb \
krb5-用户 libacl1-dev libaio-dev libattr1-dev libblkid-dev libbsd-dev \
libcap-dev libcups2-dev libgnutls28-dev libjson-perl \
libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl\
libpopt-dev libreadline-dev perl perl-modules pkg-config \
python-all-dev python-dev python-dnspython python-crypto\
xsltproc zlib1g -dev libgpgme11 -dev python -gpgme python -m2crypto \
libgnutls28-dbg gnutls-dev ldap-utils krb5-配置

 ┤──────────────┤配置Kerberos认证├─────────────┐│当用户尝试使用Kerberos并指定名称││时主体或用户,而又不确定主体│属于哪个管理Kerberos域,系统将采用默认领域││。  默认领域也可以用作在本地计算机上运行的Kerberos服务的│领域。  ││通常,默认领域是本地DNS││域的大写名称。  ││││Kerberos版本5默认领域:││││SWL.FAN __________________________________________________________________││││ │││└────────────────────────────────── ──────────────────────┤┤ ││输入Kerberos的SWL.FAN领域中的Kerberos服务器的名称,以空格分隔。  ││││用于您领域的Kerberos服务器:││││master.swl.fan ___________________________________________________________││││ │││└────────────────────────────────── ──────────────────────┤┤ ├──────────────┐│输入Kerberos SWL.FAN领域的管理服务器名称(密码更改)││。   

上面的过程花了一些时间,因为我们还没有安装任何DNS服务。 但是,您通过文件设置正确选择了域 / etc / hosts文件. 记住在文件中 / etc / resolv.conf中 我们已将IP 127.0.0.1声明为域名服务器.

现在我们配置/ etc / ldap / ldap / conf文件

root @ master:〜#纳米/etc/ldap/ldap.conf
BASE dc = swl,dc =风扇URI ldap://master.swl.fan

对于使用命令的查询 搜索引擎 由root用户制成的类型 ldapsearch -x -W cn = xxxx,我们必须创建文件 /root/.ldapsearch 具有以下内容:

root @ master:〜#纳米.ldaprc
BINDDN CN =管理员,CN =用户,DC = swl,DC =风扇

文件系统必须支持ACL-访问控制列表

根@主:〜#纳米/ etc / fstab
#/ etc / fstab:静态文件系统信息。 ##使用'blkid'打印#设备的通用唯一标识符; 可以与UUID =一起使用,这是命名设备#的更可靠的方法,即使添加和删除磁盘也可以使用。 请参阅fstab(5)。 ## #/在安装期间位于/ dev / sda1上UUID = 33acb024-291b-4767-b6f4-cf207a71060c / ext4 user_xattr,acl,屏障= 1,noatime,错误= remount-ro 0 1
#安装期间交换已在/ dev / sda5上UUID = cb73228a-615d-4804-9877-3ec225e3ae32无swap sw 0 0 / dev / sr0 /媒体/ cdrom0 udf,iso9660用户,noauto 0 0

根@主:〜#mount -a

root @ master:〜#触摸testing_acl.txt
根@主:〜#setfattr -n user.test -v测试testing_acl.txt
根@主:〜#setfattr -n security.test -v test2 testing_acl.txt
根@主:〜#getfattr -d testing_acl.txt
#文件:testing_acl.txt user.test =“测试”

根@主:〜#getfattr -n security.test -d testing_acl.txt
#文件:testing_acl.txt security.test =“ test2”

根@主:〜#setfacl -mg:adm:rwx testing_acl.txt

root @ master:〜#getfacl testing_acl.txt
#文件:testing_acl.txt#所有者:root#组:root用户:: rw- group :: r--组:adm:rwx掩码:: rwx其他:: r--

我们获得了Samba 4源代码,对其进行编译并安装

强烈建议下载版本源文件 稳定 来自网站 https://www.samba.org/。 在我们的示例中,我们下载了版本 桑巴-4.5.1.tar.gz 朝向文件夹 /选择.

根@主:〜#cd / opt
root @ master:/ opt#wget https://download.samba.org/pub/samba/stable/samba-4.5.1.tar.gz
根@主:/ opt#tar xvfz samba-4.5.1.tar.gz
根@主:/ opt#cd samba-4.5.1 /

配置选项

如果要自定义配置选项,请执行:

根@主:/opt/samba-4.5.1# ./configure-帮助

并精心选择我们需要的那些。 建议检查下载的软件包是否可以安装在我们使用的Linux发行版上,在本例中为Debian 8.6 Jessie:

根@主:/opt/samba-4.5.1# /配置 检查

我们配置,编译和安装samba-4.5.1

  • 根据先前安装的要求和重约8604兆字节的4.5.1文件(组成紧凑的samba-101.7.tar.gz)-包括重约3兆字节的source4和source61.1文件夹,我们将获得一个替代文件。 Microsoft样式的Active Directory,其质量和稳定性超过任何生产环境所能接受的。 在交付免费软件Samba 4时,我们必须强调Team Samba的工作。.

以下命令是从其源代码编译和安装软件包的经典命令。 我们必须耐心等待整个过程。 这是获得有效和正确结果的唯一方法。

根@主:/opt/samba-4.5.1# ./配置--with-systemd --禁用杯
根@主:/opt/samba-4.5.1# 使
根@主:/opt/samba-4.5.1# 使安装

在命令过程中 使,我们可以看到已经编译了Samba 3和Samba 4源代码,这就是Team Samba肯定其版本4是版本3的自然更新的原因,对于基于Samba 3 + OpenLDAP的域控制器和文件服务器或旧版本的Samba 4。

供应Samba

我们将使用DNS作为 桑巴_内部。 在 https://wiki.samba.org/index.php?title=Samba_Internal_DNS_Back_End 我们会找到更多信息。 当他们要求我们提供管理员用户的密码时,我们必须键入以下至少一个长度的8个字符,并同时输入字母(大写和小写)以及数字。

在继续进行配置并简化工作之前,我们添加了 文件中的Samba可执行文件 的.bashrc,然后关闭并再次登录。

root @ master:〜#纳米.bashrc
#〜/ .bashrc:对于非登录外壳,由bash(1)执行。 #注意:PS1和umask已在/ etc / profile中设置。 除非您希望root使用不同的默认值,否则您不需要#这样做。 #PS1 ='$ {debian_chroot:+($ debian_chroot)} \ h:\ w \ $'#umask 022#如果希望对'ls'进行着色,则可以取消注释以下几行:#export LS_OPTIONS ='-color =自动'#eval“`dircolors`”#别名ls ='ls $ LS_OPTIONS'#别名ll ='ls $ LS_OPTIONS -l'#别名l ='ls $ LS_OPTIONS -lA'##更多的别名以避免出错:#别名rm ='rm -i'#别名cp ='cp -i'#别名mv ='mv -i'
声明-x PATH =“ / usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:\ / sbin:/ bin:/ usr / local / samba / sbin:/ usr / local / samba / bin“

root @ master:〜#退出注销与master的连接已关闭。 至强@ sysadmin:〜$ ssh root @ master

root @ master:〜#samba工具域设置--use-rfc2307 --interactive
领域[SWL.FAN]: 风扇
 域[SWL]: SWL
 服务器角色(dc,成员,独立)[dc]: dc
 DNS后端(SAMBA_INTERNAL,BIND9_FLATFILE,BIND9_DLZ,无)[SAMBA_INTERNAL]: 桑巴_内部
 DNS转发器IP地址(写为“ none”以禁用转发)[192.168.10.5]: 8.8.8.8
管理员密码: 涂密码2017
重新输入密码: 涂密码2017
查找IPv4地址查找IPv6地址不会分配任何IPv6地址设置share.ldb设置secrets.ldb设置注册表设置权限数据库设置idmap db设置SAM db设置sam.ldb分区和设置up sam.ldb rootDSE预加载Samba 4和AD模式添加域DN:DC = swl,DC =风扇添加配置容器设置sam.ldb模式设置sam.ldb配置数据设置显示说明符修改显示说明符添加用户容器修改用户容器添加计算机容器修改计算机容器设置sam.ldb数据设置众所周知的安全主体设置sam.ldb用户和组设置自我加入添加DNS帐户创建CN = MicrosoftDNS,CN =系统,DC = swl,DC = fan创建DomainDnsZones和ForestDnsZones分区填充DomainDnsZones和ForestDnsZones分区将sam.ldb rootDSE标记设置为已同步修复设置GUID已在/usr/local/samba/private/krb4.conf中生成了适用于Samba 5的Kerberos配置。设置伪造的yp服务器设置安装上述文件后,您的Samba4服务器将可以使用服务器角色:活动目录域控制器主机名:主NetBIOS域:SWL DNS域:swl.fan DOMAIN SID:S-1-5-21-32182636-2892912266-1582980556

我们不要忘记复制Kerberos配置文件,如输出所示。 供应:

root @ master:〜#cp /usr/local/samba/private/krb5.conf /etc/krb5.conf

不输入命令 桑巴工具 用您的全名,我们用短名称创建一个符号链接 工具:

root @ master:〜#ln -s / usr / local / samba / bin / samba-tool / usr / local / samba / bin / tool

我们安装NTP

Active Directory中最基本的部分是网络时间服务,因为身份验证是通过Kerberos及其票证执行的,所以时间与Samba 4 AD-DC的同步至关重要。

root @ master:〜#aptitude安装ntp
root @ master:〜#mv /etc/ntp.conf /etc/ntp.conf.original

root @ master:〜#纳米/etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift ntpsigndsocket / usr / local / samba / var / lib / ntp_signd statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegenstats file clockstats clock types day enable server 192.168.10.1限制-4默认kodnotrap nomodify nopeer noquery限制-6默认kod notrap nomodify nopeer noquery限制默认mssntp限制127.0.0.1限制:: 1广播192.168.10.255

root @ master:〜#服务ntp重新启动
root @ master:〜#服务ntp状态

root @ master:〜#tail -f / var / log / syslog

如果在检查时 系统日志 使用上面的命令或使用 日志ctl -f 我们收到消息:

19月12日13:21:1498主ntpd_intres [XNUMX]:父母在我们完成之前死亡,退出了

我们必须重新启动服务,然后重试。 现在我们创建文件夹 ntp_signd:

root @ master:〜#ls -ld / usr / local / samba / var / lib / ntp_signd
ls:无法访问/ usr / local / samba / var / lib / ntp_signd:文件或目录不存在

root @ master:〜#mkdir / usr / local / samba / var / lib / ntp_signd
root @ master:〜#chown root:ntp / usr / local / samba / var / lib / ntp_signd /
root @ master:〜#chmod 750 / usr / local / samba / var / lib / ntp_signd / root @ master:〜#chmod gs,g + x / usr / local / samba / var / lib / ntp_signd /

#根据samba.wiki.org的要求
root @ master:〜#ls -ld / usr / local / samba / var / lib / ntp_signd
drwxr-x- 2根ntp 4096 Jun 19 12:21 / usr / local / samba / var / lib / ntp_signd

我们使用systemd配置Samba启动

root @ master:〜#纳米/lib/systemd/system/samba-ad-dc.service
[服务]类型=分叉PIDFile = /usr/local/samba/var/run/samba.pid LimitNOFILE = 16384#EnvironmentFile =-/etc/conf.d/samba ExecStart = / usr / local / samba / sbin / samba / samba ExecReload = / usr / bin / kill -HUP $ MAINPID [Install] WantedBy = multi-user.target

根@主:〜#systemctl启用samba-ad-dc
root @ master:〜#重新启动

root @ master:〜#systemctl状态samba-ad-dc
根@主:〜#systemctl状态ntp

Samba 4 AD-DC文件位置

所有减去新创建的samba-ad-dc.service-文件位于:

根@主:〜#ls -l / usr / local / samba /
总共32个drwxr-sr-x 2个root员工4096 Jun 19 11:55 箱子
drwxr-sr-x 2个root员工4096 Jun 19 11:50 
drwxr-sr-x 7个root员工4096 Jun 19 11:30 包括
drwxr-sr-x 15个root员工4096 Jun 19 11:33 LIB
drwxr-sr-x 7个root员工4096 Jun 19 12:40 私立
drwxr-sr-x 2个root员工4096 Jun 19 11:33 sbin目录
drwxr-sr-x 5个root员工4096 Jun 19 11:33 分享
drwxr-sr-x 8个root员工4096 Jun 19 12:28 VAR

以最佳的UNIX风格。 始终建议浏览不同的文件夹并检查其内容。

/usr/local/samba/etc/smb.conf文件

root @ master:〜#纳米/usr/local/samba/etc/smb.conf 
#全局参数[global] netbios名称= MASTER域= SWL.FAN工作组= SWL dns转发器= 8.8.8.8服务器服务= s3fs,rpc,nbt,wrepl,ldap,cldap,kdc,drepl,winbindd,ntp_signd,kcc,dnsupdate ,dns服务器角色=活动目录域控制器允许dns更新=仅安全idmap_ldb:使用rfc2307 =是idmap配置*:后端= tdb idmap配置*:范围= 1000000-1999999 ldap服务器需要强身份验证=无printcap名称= / dev / null [netlogon]路径= /usr/local/samba/var/locks/sysvol/swl.fan/scripts只读=否[sysvol]路径= / usr / local / samba / var / locks / sysvol只读=否

根@大师:〜#testparm
从/usr/local/samba/etc/smb.conf加载smb配置文件。处理部分“ [netlogon]”处理部分“ [sysvol]”加载的服务文件确定。 服务器角色:ROLE_ACTIVE_DIRECTORY_DC按Enter键查看您的服务定义的转储#全局参数[global]域= SWL.FAN工作组= SWL dns转发器= 192.168.10.1 ldap服务器需要强身份验证=无passdb后端= samba_dsdb服务器角色=活动目录域控制器rpc_server:tcpip =无rpc_daemon:spoolssd =嵌入式rpc_server:spoolss =嵌入式rpc_server:winreg =嵌入式rpc_server:ntsvcs =嵌入式rpc_server:eventlog =嵌入式rpc_server:srvsvc =嵌入式rvcct_server =使用外部外部管道=真实的idmap配置*:范围= 1000000-1999999 idmap_ldb:使用rfc2307 =是idmap配置*:后端= tdb地图档案=否地图只读=没有存储dos属性=是vfs对象= dfs_samba4 acl_xattr [netlogon]路径= / usr / local / samba / var /锁/ sysvol / swl.fan /脚本只读=否[sysvol]路径= / usr / local / samba / var /锁/ sysvol只读=否

最少检查

root @ master:〜#工具域级别显示
域“ DC = swl,DC =风扇”的域和目录林功能级别目录林功能级别:(Windows)2008 R2域功能级别:(Windows)2008 R2 DC的最低功能级别:(Windows)2008 R2

根@主:〜#ldapsearch -x -W

root @ master:〜#工具dbcheck
检查262个对象检查262个对象(0个错误)

root @ master:〜#kinit管理员
密码 管理员@ SWL.FAN: 
root @ master:〜#klist -f
票证缓存: 文件:/ tmp / krb5cc_0
主要默认值: 管理员@ SWL.FAN

有效启动有效期到期服务主体19/06/17 12:53:24 19/06/17 22:53:24  krbtgt/SWL.FAN@SWL.FAN
    续约至20/06/17下午12:53:18,标志:RIA

根@大师:〜#kdestroy
root @ master:〜#klist -f
klist:未找到凭证高速缓存文件“ / tmp / krb5cc_0”

root @ master:〜#smbclient -L本地主机-U%
域= [SWL] OS = [Windows 6.1]服务器= [Samba 4.5.1]共享名类型注释--------- ---- ---------- netlogon磁盘sysvol磁盘IPC $ IPC IPC服务(Samba 4.5.1)域= [SWL] OS = [Windows 6.1]服务器= [Samba 4.5.1]服务器注释--------- ------- Workgroup Master ---- ----- -------

root @ master:〜#smbclient //本地主机/ netlogon -UAdministrator -c'ls'
输入管理员的密码:域= [SWL] OS = [Windows 6.1]服务器= [Samba 4.5.1]。 D 0 Mon Jun 19 11:50:52 2017 .. D 0 Mon Jun 19 11:51:07 2017 19091584大小为1024的块。16198044块可用

root @ master:〜#工具dns serverinfo master -U管理员

root @ master:〜#主机-t SRV _ldap._tcp.swl.fan
_ldap._tcp.swl.fan具有SRV记录0 100 389 master.swl.fan。

root @ master:〜#主机-t SRV _kerberos._udp.swl.fan
_kerberos._udp.swl.fan的SRV记录为0 100 88 master.swl.fan。

root @ master:〜#host -t A master.swl.fan
master.swl.fan地址为192.168.10.5

root @ master:〜#host -t SOA swl.fan
swl.fan具有SOA记录master.swl.fan。 hostmaster.swl.fan。 1 900 600

root @ master:〜#主机-t NS swl.fan
swl.fan名称服务器master.swl.fan。

root @ master:〜#host -t MX swl.fan
swl.fan没有MX记录

根@主:〜#samba_dnsupdate --verbose

root @ master:〜#工具用户列表
管理员krbtgt来宾

root @ master:〜#工具组列表
#输出是一堆组。 ;-)

我们管理新安装的Samba 4 AD-DC

如果我们要修改管理员密码的有效期限(以天为单位); 密码的复杂性; 密码的最小长度; 密码的最小和最大持续时间(以天为单位); 并更改在 供应,我们必须使用以下命令执行以下命令 根据您的需求调整的价值观:

root @ master:〜#工具
用法:samba工具主要的samba管理工具。 选项:-h,--help显示此帮助消息并退出版本选项:-V,--version显示版本号可用子命令:dbcheck-检查本地AD数据库是否有错误。 委托-委托管理。 dns-域名服务(DNS)管理。 域-域管理。 drs-目录复制服务(DRS)管理。 dsacl-DS ACL操作。 fsmo-灵活的单主机操作(FSMO)角色管理。 gpo-组策略对象(GPO)管理。 组-组管理。 ldapcmp-比较两个ldap数据库。 ntacl-NT ACL操作。 进程-列出进程(以帮助在没有setproctitle的系统上进行调试)。 rodc-只读域控制器(RODC)管理。 网站-网站管理。 spn-服务主体名称(SPN)管理。 testparm-语法检查配置文件。 时间-检索服务器上的时间。 用户-用户管理。 有关特定子命令的更多帮助,请键入:samba-tool (-h |-帮助)

root @ master:〜#工具用户setexpiry管理员--noexpiry
root @ master:〜#工具域密码设置设置--min-pwd-length = 7
root @ master:〜#工具域密码设置设置--min-pwd-age = 0
root @ master:〜#工具域密码设置设置--max-pwd-age = 60
root @ master:〜#工具用户setpassword --filter = samaccountname =管理员--newpassword = Passw0rD

我们添加一些DNS记录

根@主:〜#工具dns
用法:samba-tool dns 域名服务(DNS)管理。 选项:-h,--help显示此帮助消息并退出可用的子命令:add-添加DNS记录删除-删除DNS记录查询-查询名称。 roothints-查询根目录提示。 serverinfo-查询服务器信息。 更新-更新DNS记录区域创建-创建区域。 zonedelete-删除区域。 zoneinfo-查询区域信息。 zonelist-查询区域。 有关特定子命令的更多帮助,请键入:samba-tool dns (-h |-帮助)

邮件服务器

root @ master:〜#工具dns添加master swl.fan邮件192.168.10.9 -U管理员
root @ master:〜#工具dns添加master swl.fan swl.fan MX“ mail.swl.fan 10” -U管理员

其他服务器的固定IP

root @ master:〜#工具dns添加master swl.fan sysadmin A 192.168.10.1 -U管理员
root @ master:〜#工具dns添加master swl.fan文件服务器A 192.168.10.10 -U管理员
root @ master:〜#工具dns添加master swl.fan代理A 192.168.10.11 -U管理员
root @ master:〜#工具dns添加master swl.fan聊天A 192.168.10.12 -U管理员

反向区

root @ master:〜#工具dns zonecreate master 10.168.192.in-addr.arpa -U管理员
[SWL \管理员]的密码:成功创建区域10.168.192.in-addr.arpa

root @ master:〜#工具dns添加master 10.168.192.in-addr.arpa 5 PTR master.swl.fan。 -管理员
root @ master:〜#工具dns添加master 10.168.192.in-addr.arpa 9 PTR mail.swl.fan。 -U管理员
root @ master:〜#工具dns添加master 10.168.192.in-addr.arpa 1 PTR sysadmin.swl.fan。 -U管理员
root @ master:〜#工具dns添加master 10.168.192.in-addr.arpa 10 PTR fileserver.swl.fan。 -管理员
root @ master:〜#工具dns添加master 10.168.192.in-addr.arpa 11 PTR proxy.swl.fan。 -管理员
root @ master:〜#工具dns添加master 10.168.192.in-addr.arpa 12 PTR chat.swl.fan。 -U管理员

支票

root @ master:〜#工具dns查询master swl.fan邮件ALL -U管理员
[SWL \管理员]的密码:名称=,记录= 1,子代= 0 A:192.168.10.9(标志= f0,序列= 2,ttl = 900)

root @ master:〜#主机master
master.swl.fan地址为192.168.10.5
根@主:〜#主机sysadmin
sysadmin.swl.fan的地址为192.168.10.1
root @ master:〜#主机邮件
mail.swl.fan的地址为192.168.10.9
根@大师:〜#主持人聊天
chat.swl.fan的地址为192.168.10.12
root @ master:〜#代理主机
proxy.swl.fan的地址为192.168.10.11
root @ master:〜#主机文件服务器
fileserver.swl.fan的地址为192.168.10.10
root @ master:〜#主机192.168.10.1
1.10.168.192.in-addr.arpa域名指针sysadmin.swl.fan。
root @ master:〜#主机192.168.10.5
5.10.168.192.in-addr.arpa域名指针master.swl.fan。
root @ master:〜#主机192.168.10.9
9.10.168.192.in-addr.arpa域名指针mail.swl.fan。
root @ master:〜#主机192.168.10.10
10.10.168.192.in-addr.arpa域名指针fileserver.swl.fan。
root @ master:〜#主机192.168.10.11
11.10.168.192.in-addr.arpa域名指针proxy.swl.fan。
root @ master:〜#主机192.168.10.12
12.10.168.192.in-addr.arpa域名指针chat.swl.fan。

为了好奇

root @ master:〜#ldbsearch -H /usr/local/samba/private/sam.ldb.d/ \
DC = DOMAINDNSZONES,DC = SWL,DC = FAN.ldb | grep dn:

我们添加用户

root @ master:〜#工具用户
用法:samba工具用户用户管理。 选项:-h,--help显示此帮助消息并退出可用的子命令:add-创建一个新用户。 创建-创建一个新用户。 删除-删除用户。 disable-禁用用户。 enable-启用用户。 getpassword-获取用户/计算机帐户的密码字段。 list-列出所有用户。 密码-更改用户帐户的密码(身份验证中提供的密码)。 setexpiry-设置用户帐户的到期时间。 setpassword-设置或重置用户帐户的密码。 syncpasswords-同步用户帐户的密码。 有关特定子命令的更多帮助,请键入:samba-tool user (-h |-帮助)

root @ master:〜#工具用户创建跨步Trancos01
用户“ trancos”创建成功
root @ master:〜#工具用户创建gandalf Gandalf01
用户“ gandalf”已成功创建
root @ master:〜#工具用户创建legolas Legolas01
用户“ legolas”创建成功
root @ master:〜#工具用户列表
管理员gandalf legolas大步向前krbtgt来宾

通过图形界面或Web客户端进行管理

访问wiki.samba.org以获取有关如何安装 微软RSAT o远程服务器管理工​​具。 如果不需要Microsoft Active Directory提供的经典策略,则可以安装该软件包 ldap帐户经理 它提供了一个通过Web浏览器进行管理的简单界面。

Windows Server操作系统中包含Microsoft远程服务器管理工​​具(RSAT)程序包。

我们将域加入到名为“七个”的Windows 7客户端中

由于我们的网络中没有DHCP服务器,因此我们必须做的第一件事是使用固定IP配置客户端的网卡,声明主DNS将是该IP的IP。 桑巴-ad-dc,然后检查是否已激活选项“在DNS中注册此连接的地址”。 检查名称«XNUMX所»尚未在Samba内部DNS中注册。

将计算机加入域并重新启动域后,让我们尝试使用用户«大步向前«。 我们将检查一切正常。 还建议检查Windows客户端日志并检查时间如何正确同步。

具有一定Windows经验的管理员会发现,他们在客户端上进行的任何检查都会产生令人满意的结果。

总结

我希望这篇文章对社区读者有用。 DesdeLinux.

再见!


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   贡萨洛·马丁内斯

    篇幅冗长但详尽的文章,非常详尽地介绍了如何进行所有操作。

    我强调NIS,事实是,尽管我知道它的存在,但我从未真正知道它是如何工作的,因为老实说,它总是给我一种印象,它几乎在LDAP和Samba 4之后就死了。

    PS:恭喜您完成了新的个人项目! 可惜您不会在这里继续写作,但至少有一个可以跟随您的地方。

  2.   HO2Gi

    一如既往的庞大教程,是我最喜欢的Greetings Fico。
    恭喜这个项目。

  3.   国际劳工组织

    NIS部分很棒,我对Gonzalo Martinez表示同情,我对此一无所知,但不知道如何实现它以及在什么情况下使用它。
    一次感谢您撰写大量理论和实践文章。
    最终,您的新项目“ gigainside”取得了新的成功。

  4.   费德里科

    非常感谢大家的评论!
    问候

  5.   麝香

    您显示的smb.conf与LDAP没有任何链接,是故意这样做还是我留下了什么?

  6.   FICO

    mussol:这是一个Samba 4 Active Directory域控制器,已经具有其内置的LDAP服务器。

  7.   文森特

    您能否评论一下如何将Mac(苹果)与Samba 4 AD-DC结合在一起?
    谢谢。

  8.   杰拉米雷斯

    你好吗;

    感谢您的手册,非常好。 我对出现在我身上的消息有疑问。

    root @ AD:〜#nping –tcp -p 53 -c 3 ad.rjsolucionessac.com
    无法解析给定的主机名/ IP:ad.rjsolucionessac.com。 请注意,您不能使用“ / mask”和“ 1-4,7,100-”样式的IP范围
    找不到有效的目标。 请确保指定的主机是标准格式的IP地址或可以通过DNS解析的主机名
    根@ AD:〜#