PAM,NIS,LDAP,Kerberos,DS和Samba 4 AD-DC-SMB網絡

系列總索引: 中小企業計算機網絡:簡介

你好朋友和朋友們!

Con éste artículo digo Adiós a la Comunidad DesdeLinux. Una especial despedida para una Especial Comunidad. Desde ahora estaré en mi proyecto personal el cual puedes conocer en 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 維基百科:

  • 網絡信息系統(Network Information System,縮寫為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作用域主機lo valid_lft永遠有效preferred_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 forever永遠的preferred_lft永遠的inet80 fe20 :: 29c:4ff:fe76c:9d64 / XNUMX作用域鏈接valid_lft永遠

root @ master:〜#貓/etc/resolv.conf 
搜索swl.fan名稱服務器127.0.0.1

安裝bind9,isc-dhcp-server和ntp

綁定9

root @ master:〜#aptitude安裝bind9 bind9文件 NMAP
根@主:〜#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” {type master; 文件“ /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” {類型主控; 文件“ /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” {type master; 文件“ /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:〜#cat 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
Internet系統聯盟DHCP服務器4.3.1版權所有2004-2014 Internet系統聯盟。 版權所有。 有關信息,請訪問 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
root @ master:〜#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”的全新安裝-沒有圖形界面-開始.
root @ mail:〜#hostname -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
#這是每個軟件包的模塊(“主”塊)

root @ mail:〜#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活動目錄

每個實現都有自己的特點,最標準和兼容的是 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 creatorsNames:cn = admin,dc = swl,dc =風扇入口createTimestamp20170531205219:20170531205219.833955ZN入口createTimestamp000000:000 Z#000000#20170531205219#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 XNUMXZ#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 =風扇”

我們檢查添加的條目

根@主:〜#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 home目錄:/ home / legolas dn:uid = gandalf,ou = people,dc = swl,dc = fan objectClass:inetOrgPerson objectClass:posixAccount objectClass:shadowAccount uid:gandalf cn:gandalf namedName: 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 = admin,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 =” /等/等。 /ldapadduser.template“ PASSWORDGEN =” echo%u“

請注意,腳本使用包命令 LDAP-utils的。 跑 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地址,以避免在域名服務estén│不可用時失敗。 ││││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 ││選擇具有root特權的nss查詢將使用哪個帳戶。 ││││注意:為了使此選項起作用,該帳戶需要權限││才能訪問與用戶│“影子”條目以及用戶和組密碼關聯的LDAP屬性。 。 ││││根目錄的LDAP帳戶:││││cn = admin,dc = swl,dc = fan ___________________________________________________││││ │││└────────────────────────────────── ──────────────────────┘┌───────────────── ──┤的配置 libnss-ldap ││輸入libnss-ldap嘗試使用根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發送和接收郵件。 ││帶有“智能主機”的Internet:││郵件是直接使用SMTP或通過運行como│工具(如“ 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│──────────────┐│輸入││Kerberos的SWL.FAN領域中Kerberos服務器的名稱,以空格分隔。  ││││適用於您領域的Kerberos服務器:││││master.swl.fan ___________________________________________________________││││ │││└────────────────────────────────── ──────────────────────┤┘─────────────┤配置認證Kerberos├──────────────┐│輸入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 --help

並精心選擇我們需要的那些。 建議檢查下載的軟件包是否可以安裝在我們使用的Linux發行版上,在本例中為Debian 8.6 Jessie:

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

我們配置,編譯和安裝samba-4.5.1

  • 從先前安裝的要求和8604文件(組成緊湊的samba-4.5.1.tar.gz)開始,它們重約101.7兆字節-包括重約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,然後關閉並再次登錄。

根@主:〜#nano .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]: 聲級級
 服務器角色(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:

根@主:〜#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的要求
根@主:〜#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文件位置

ALL - 減去新創建的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 bin
drwxr-sr-x 5個root員工4096 Jun 19 11:33 分享
drwxr-sr-x 8個root員工4096 Jun 19 12:28 

以最佳的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。 -管理員
root @ master:〜#工具dns添加master 10.168.192.in-addr.arpa 1 PTR sysadmin.swl.fan。 -管理員
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。 -管理員

支票

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
root @ master:〜#主機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:〜#工具用戶創建trancos 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中註冊此連接的地址”。 檢查名稱«»尚未在Samba的內部DNS中註冊。

將計算機加入域並重新啟動域後,讓我們嘗試使用用戶«大步向前«。 我們將檢查一切正常。 還建議檢查Windows客戶端日誌並檢查時間如何正確同步。

具有一定Windows經驗的管理員會發現,他們在客戶端上進行的任何檢查都會產生令人滿意的結果。

總結

Espero que sea útil el artículo a los lectores de la Comunidad DesdeLinux.

再見!


8條評論,留下您的評論

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  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.   菲可 他說:

    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:〜#