Trong hướng dẫn trước, tôi đã chỉ cho bạn cách cấu hình Samba trên Centos 7 bằng cách biên dịch Samba từ nguồn vì gói do RedHat cung cấp không hỗ trợ Active Directory. Tôi nhận thấy có một kho lưu trữ có tên là Wing cung cấp samba4 rpm với hỗ trợ AD. Trong hướng dẫn này, tôi sẽ sử dụng kho lưu trữ này để cài đặt Samba. Tôi cũng sẽ chỉ cách tạo chia sẻ samba.
Trong hướng dẫn này, tôi sẽ sử dụng máy chủ CentOS 7 với cài đặt tối thiểu làm cơ sở với SELinux được bật.
Tạo một mục nhập trong tệp máy chủ với địa chỉ IP của máy chủ theo sau là tên máy chủ đầy đủ (fqdn) và sau đó là phần cục bộ của hostname.
Cài đặt kho lưu trữ Epel CentOS.
Cài đặt các gói cơ bản.
Bây giờ hãy cài đặt kho wing.
Xóa các tệp này.
Đảm bảo các cổng được mở trong tường lửa.
Gói không cung cấp tập lệnh init, chúng tôi sẽ thêm nó ngay bây giờ.
Tất cả các bước khác đều tương tự như bài viết trước của tôi
để cấu hình máy chủ Windows và Linux, vui lòng tham khảo
Cài đặt bộ điều khiển miền Samba4 từ nguồn
Bây giờ hãy khởi động lại dịch vụ Samba.
Chỉ những người dùng và nhóm được cấp đặc quyền SeDiskOperatorPrivilege mới có thể định cấu hình quyền chia sẻ.
Trước khi tạo chia sẻ, chúng ta cần đảm bảo máy chủ samba4 xác thực với chính nó.
Chúng ta không thể thực hiện phương pháp thông thường vì nó không hiệu quả vì gói hiện tại từ wing sẽ xung đột với các gói do RedHat cung cấp, chúng ta không thể sử dụng sssd ở đây. Chúng ta sẽ sử dụng winbind để thực hiện việc này.
Vui lòng sử dụng phương pháp bên dưới. Yêu cầu này để tạo chia sẻ samba với các quyền cụ thể
Cài đặt gói bên dưới.
Chạy lệnh.
vui lòng chọn winbind, làm theo các bước tiếp theo.
Bạn sẽ không thể nhập mật khẩu, chỉ cần nhấn ok.
Sau đó, chú thích các dòng trong /etc/samba/smb.conf và khởi động lại dịch vụ samba.
Cấu hình của bạn sẽ trông như thế này:
Kiểm tra xem chúng ta có thể điền thông tin người dùng và nhóm không:
Sửa đổi các dòng trong nsswitch.conf:
Bây giờ hãy kiểm tra xem chúng ta có thể lấy được tên người dùng bằng lệnh id hay không:
Chia sẻ có thể truy cập bởi testuser sẽ được gọi là testshare.
Chia sẻ có thể truy cập bởi tất cả người dùng sẽ được gọi là commonshare.
Bây giờ hãy thêm các mục vào smb.conf
Khởi động lại dịch vụ samba.
Truy cập chia sẻ samba với tư cách là người dùng thử nghiệm.
Tại đây, bạn sẽ thấy cả testshare và commonshare đều hiển thị.
Đã thử tạo tệp và thư mục trong testshare.
Bây giờ tôi đang đăng nhập với tư cách là người dùng khác, chỉ có commonshare hiển thị:
Tạo tệp trong commonshare.
Đây là cách chúng tôi tạo chia sẻ trong Samba 4.
Trong hướng dẫn này, tôi sẽ sử dụng máy chủ CentOS 7 với cài đặt tối thiểu làm cơ sở với SELinux được bật.
Chuẩn bị máy chủ CentOS 7
Kiểm tra trạng thái SELinux.
Mã:
[root@samba4 ~]# sestatusTrạng thái SELinux: đã bậtSELinuxfs mount: /sys/fs/selinuxThư mục gốc SELinux: /etc/selinuxTên chính sách đã tải: đã nhắm mục tiêuChế độ hiện tại: đang thực thiChế độ từ tệp cấu hình: đang thực thiTrạng thái MLS của chính sách: đã bậtTrạng thái deny_unknown của chính sách: đã cho phépPhiên bản chính sách hạt nhân tối đa: 28[root@samba4 ~]#
Mã:
[root@samba4 ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.1.190 samba4.sunil.cc samba4[root@samba4 ~]#
Mã:
[root@samba4 ~]# yum install epel-release -y
Mã:
[root@samba4 ~]# yum install vim wget authconfig krb5-workstation -y
Mã:
[root@samba4 ~]# cd /etc/yum.repos.d/[root@samba4 yum.repos.d]# wget http://wing-net.ddo.jp/wing/7/EL7.wing.repo[root@samba4 yum.repos.d]# sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/EL7.wing.repo[root@samba4 yum.repos.d]# yum clean allCác plugin đã tải: fastestmirrorĐang dọn kho: base extras updates wing wing-sourceĐang dọn dẹp mọi thứĐang dọn dẹp danh sách fastest mirrors[root@samba4 yum.repos.d]#
Cài đặt Samba 4 trên CentOS 7
Cài đặt các gói Samba4 từ kho lưu trữ wing bằng yum.
Mã:
[root@samba4 yum.repos.d]# yum install -y samba45 samba45-winbind-clients samba45-winbind samba45-client\samba45-dc samba45-pidl samba45-python samba45-winbind-krb5-locator perl-Parse-Yapp\perl-Test-Base python2-crypto samba45-common-tools
Mã:
[root@samba4 ~]# rm -rf /etc/krb5.conf[root@samba4 ~]# rm -rf /etc/samba/smb.conf
Cấu hình Samba 4
Bây giờ chúng ta sẽ thực hiện việc cung cấp miền.
Mã:
[root@samba4 ~]# samba-tool domain provision --use-rfc2307 --interactive Realm [SUNIL.CC]: Miền [SUNIL]: Vai trò máy chủ (dc, thành viên, độc lập) [dc]: DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: Địa chỉ IP chuyển tiếp DNS (ghi 'none' để tắt chuyển tiếp) [4.2.2.1]:Mật khẩu quản trị viên:Nhập lại mật khẩu:Đang tra cứu địa chỉ IPv4Đang tra cứu địa chỉ IPv6Sẽ không chỉ định địa chỉ IPv6 nàoĐang thiết lập secrets.ldbThiết lập sổ đăng kýThiết lập cơ sở dữ liệu đặc quyềnThiết lập cơ sở dữ liệu idmapThiết lập cơ sở dữ liệu SAMThiết lập phân vùng và cài đặt sam.ldbThiết lập rootDSE sam.ldbTải trước lược đồ Samba 4 và ADThêm DomainDN: DC=sunil,DC=ccThêm vùng chứa cấu hìnhThiết lập lược đồ sam.ldbThiết lập dữ liệu cấu hình sam.ldbThiết lập các chỉ định hiển thịSửa đổi các chỉ định hiển thịThêm vùng chứa người dùngSửa đổi vùng chứa người dùngThêm vùng chứa máy tínhSửa đổi vùng chứa máy tínhThiết lập dữ liệu sam.ldbThiết lập các nguyên tắc bảo mật nổi tiếngThiết lập người dùng và nhóm sam.ldbThiết lập tự tham giaThêm tài khoản DNSTạo CN=MicrosoftDNS,CN=System,DC=sunil,DC=ccTạo phân vùng DomainDnsZones và ForestDnsZonesĐiền phân vùng DomainDnsZones và ForestDnsZonesThiết lập sam.ldb rootDSE đánh dấu là đã đồng bộSửa GUID cung cấpCấu hình Kerberos phù hợp với Samba 4 đã được tạo tại /var/lib/samba/private/krb5.confThiết lập cài đặt máy chủ yp giảSau khi các tệp trên được cài đặt, máy chủ Samba4 của bạn sẽ sẵn sàng để sử dụngVai trò máy chủ: bộ điều khiển miền active directoryTên máy chủ: samba4Miền NetBIOS: SUNILMiền DNS: sunil.ccMÃ MIỀN SID: S-1-5-21-1578983437-3114190590-2362936743[root@samba4 v.v.]#
Mã:
[root@samba4 v.v.]#firewall-cmd --add-port=53/tcp --permanent;firewall-cmd --add-port=53/udp --permanent;firewall-cmd --add-port=88/tcp --permanent;firewall-cmd --add-port=88/udp --permanent; \firewall-cmd --add-port=135/tcp --permanent;firewall-cmd --add-port=137-138/udp --permanent;firewall-cmd --add-port=139/tcp --permanent; \firewall-cmd --add-port=389/tcp --permanent;firewall-cmd --add-port=389/udp --permanent;firewall-cmd --add-port=445/tcp --permanent; \firewall-cmd --add-port=464/tcp --permanent;firewall-cmd --add-port=464/udp --permanent;firewall-cmd --add-port=636/tcp --permanent; \firewall-cmd --add-port=1024-3500/tcp --permanent;firewall-cmd --add-port=3268-3269/tcp --permanent[root@samba4 ~]# firewall-cmd --reload
Mã:
[root@samba4 ~]# cat /etc/systemd/system/samba.service[Unit]Description= Samba 4 Active DirectoryAfter=syslog.targetAfter=network.target[Service]Type=forkingPIDFile=/var/run/samba.pidExecStart=/usr/sbin/samba[Install]WantedBy=multi-user.target[root@samba4 ~]#[root@samba4 ~]# systemctl enable sambaĐã tạo liên kết tượng trưng từ /etc/systemd/system/multi-user.target.wants/samba.service đến /etc/systemd/system/samba.service.[root@samba4 ~]# systemctl restart samba
để cấu hình máy chủ Windows và Linux, vui lòng tham khảo
Cài đặt bộ điều khiển miền Samba4 từ nguồn
Tạo chia sẻ Samba với hỗ trợ ACL của Windows
Chúng ta cần cấu hình ACL mở rộng cho samba4. Thêm nội dung sau vào tệp smb.conf trong global.
Mã:
[root@samba4 ~]# cat /etc/samba/smb.conf# Global parameter[global] ------------ ------------- vfs objects = acl_xattr map acl heir = yes store dos attributes = yes ------------ -------------[root@samba4 ~]#
Mã:
[root@samba4 ~]# systemctl restart samba
Mã:
[root@samba4 ~]# net rpc rights grant "SUNIL\Domain Admins" SeDiskOperatorPrivilege -U "USER\administrator"Nhập mật khẩu của USER\administrator:Đã cấp quyền thành công.[root@samba4 ~]#
Chúng ta không thể thực hiện phương pháp thông thường vì nó không hiệu quả vì gói hiện tại từ wing sẽ xung đột với các gói do RedHat cung cấp, chúng ta không thể sử dụng sssd ở đây. Chúng ta sẽ sử dụng winbind để thực hiện việc này.
Vui lòng sử dụng phương pháp bên dưới. Yêu cầu này để tạo chia sẻ samba với các quyền cụ thể
Cài đặt gói bên dưới.
Mã:
[root@samba4 ~]#yum -y install authconfig-gtk*
Mã:
[root@samba4 yum.repos.d]# authconfig-tui
Bạn sẽ không thể nhập mật khẩu, chỉ cần nhấn ok.
Sau đó, chú thích các dòng trong /etc/samba/smb.conf và khởi động lại dịch vụ samba.
Cấu hình của bạn sẽ trông như thế này:
Mã:
[root@samba4 ~]# cat /etc/samba/smb.conf# Tham số toàn cục[toàn cục]#--authconfig--start-line--# Được tạo bởi authconfig vào ngày 26/05/2017 17:23:04# KHÔNG CHỈNH SỬA PHẦN NÀY (được phân cách bằng --start-line--/--end-line--)# Bất kỳ sửa đổi nào cũng có thể bị authconfig xóa hoặc thay đổi trong tương lai# workgroup = SUNIL# password server = samba4.sunil.cc# realm = SUNIL.CC# security = ads# idmap config * : range = 16777216-33554431# template shell = /sbin/nologin# kerberos method = secrets only# winbind use default domain = false# winbind offline logon = false#--authconfig--end-line-- netbios name = SAMBA4 realm = SUNIL.CC workgroup = SUNIL dns forwarder = 4.2.2.1 vai trò máy chủ = bộ điều khiển miền active directory idmap_ldb:use rfc2307 = có vfs đối tượng = acl_xattr bản đồ acl kế thừa = có lưu trữ thuộc tính dos = có[netlogon] đường dẫn = /var/lib/samba/sysvol/sunil.cc/scripts chỉ đọc = Không[sysvol] đường dẫn = /var/lib/samba/sysvol chỉ đọc = Không[root@samba4 ~]#[root@samba4 ~]# systemctl khởi động lại samba
Mã:
[root@samba4 ~]# wbinfo -uSUNIL\administratorSUNIL\sambauserSUNIL\testuserSUNIL\krbtgtSUNIL\guest[root@samba4 ~]# wbinfo -gSUNIL\cert publishersSUNIL\ras and ias serversSUNIL\allowed rodc password replication groupSUNIL\denied rodc password replication groupSUNIL\dnsadminsSUNIL\enterprise read-only domain controllersSUNIL\domain adminsSUNIL\domain usersSUNIL\domain clientsSUNIL\domain computersSUNIL\domain controllersSUNIL\schema adminsSUNIL\enterprise adminsSUNIL\group policy creator ownersSUNIL\read-only domain controllersSUNIL\dnsupdateproxy[root@samba4 ~]#
Mã:
[root@samba4 ~]# cat /etc/nsswitch.conf-------------------passwd: files winbindshadow: files winbindgroup: files winbindhosts: files dns winsservices: files winbindnetgroup: files winbind-------------------
Mã:
[root@samba4 ~]# id testuseruid=3000019(SUNIL\testuser) gid=100(users) groups=100(users),3000019(SUNIL\testuser),3000009(BUILTIN\users)[root@samba4 ~]#
Tạo một chia sẻ Samba
Tôi sẽ tạo hai chia sẻ, một chia sẻ chỉ có thể truy cập bởi testuser và chia sẻ còn lại có thể truy cập bởi tất cả người dùng trong nhóm người dùng miền.Chia sẻ có thể truy cập bởi testuser sẽ được gọi là testshare.
Chia sẻ có thể truy cập bởi tất cả người dùng sẽ được gọi là commonshare.
Mã:
[root@samba4 ~]# mkdir /testshare[root@samba4 ~]# mkdir /commonshare[root@samba4 ~]# chmod 770 /testshare[root@samba4 ~]# chmod 770 /commonshare[root@samba4 ~]# chown -R root:testuser /testshare[root@samba4 ~]# chown -R root:"Domain Users" /commonshare
Mã:
[root@samba4 ~]# cat /etc/samba/smb.conf# Tham số toàn cục[toàn cục] netbios name = SAMBA4 realm = SUNIL.CC workgroup = SUNIL dns forwarder = 4.2.2.1 server role = active directory domain controller idmap_ldb:use rfc2307 = yes vfs objects = acl_xattr map acl heir = yes store dos attributes = yes[netlogon] path = /var/lib/samba/sysvol/sunil.cc/scripts read only = No[sysvol] path = /var/lib/samba/sysvol read only = No[TestShare] comment = Test share có thể truy cập bởi testuser path = /testshare valid users = SUNIL\testuser writeable = yes read only = no force create mode = 0660 create mask = 0770 directory mask = 0770 force directory mode = 0770 access based share enum = yes hide unreadable = yes[CommonShare] comment = Có thể truy cập bởi tất cả người dùng path = /commonshare người dùng hợp lệ = "@SUNIL\Domain Users" có thể ghi = có chỉ đọc = không bắt buộc chế độ tạo = 0660 tạo mặt nạ = 0777 mặt nạ thư mục = 0777 bắt buộc chế độ thư mục = 0770 truy cập dựa trên chia sẻ enum = có ẩn không thể đọc = có[root@samba4 ~]#
Mã:
[root@samba4 ~]# systemctl restart samba
Tại đây, bạn sẽ thấy cả testshare và commonshare đều hiển thị.
Đã thử tạo tệp và thư mục trong testshare.
Mã:
[root@samba4 /]# cd /testshare/[root@samba4 testshare]# ls -ltổng cộng 8-rwxrwx---+ 1 SUNIL\testuser users 0 27 tháng 5 22:56 1.txtdrwxrwx---+ 2 SUNIL\testuser users 6 27 tháng 5 22:56 test[root@samba4 testshare]#
Tạo tệp trong commonshare.
Mã:
[root@samba4 commonshare]# ls -ltổng cộng 8drwxrwxrwx+ 2 SUNIL\testuser users 6 27 tháng 5 23:02 testdrwxrwxrwx+ 2 SUNIL\sambauser users 6 27 tháng 5 23:07 test2[root@samba4 commonshare]#