Samba 4 me Active Directory në instalim të bazuar në CentOS 7 rpm me mbështetje për ndarjen
Në tutorialin e fundit, ju tregova se si të konfiguroni Samba në Centos 7 duke përpiluar Samba nga burimi pasi paketa e ofruar nga RedHat nuk mbështet Active Directory. Vura re se ekziston një depo e quajtur Wing e cila furnizon samba4 rpm me mbështetje AD. Në këtë tutorial, unë do ta përdor këtë depo për instalimin e Samba. Unë gjithashtu do të tregoj se si të krijoj një ndarje samba.
Në këtë tutorial, unë do të përdor një server CentOS 7 me një instalim minimal si bazë me SELinux të aktivizuar.
Përgatitni serverin CentOS 7
Kontrolloni statusin e SELinux.
[ ~]# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
[ ~]#
Bëni një hyrje në skedarin e hostit me adresën IP të serverit të ndjekur nga emri i plotë (fqdn) dhe më pas pjesa lokale e emrit të hostit.
[ ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.190 samba4.sunil.cc samba4
[ ~]#
Instaloni depon e Epel CentOS.
[ ~]# yum install epel-release -y
Instaloni paketat bazë.
[ ~]# yum install vim wget authconfig krb5-workstation -y
Tani instaloni depon e krahut.
[ ~]# cd /etc/yum.repos.d/
[ yum.repos.d]# wget http://wing-net.ddo.jp/wing/7/EL7.wing.repo
[' /etc/yum.repos.d/EL7.wing.repo
[ yum.repos.d]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base extras updates wing wing-source
Cleaning up everything
Cleaning up list of fastest mirrors
[ yum.repos.d]#
Instaloni Samba 4 në CentOS 7
Instalimi i paketave Samba4 nga depoja e krahut me yum.
[ 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
Hiqni këto skedarë.
[ ~]# rm -rf /etc/krb5.conf
[ ~]# rm -rf /etc/samba/smb.conf
Konfigurimi i Samba 4
Tani do të bëjmë sigurimin e domenit.
[ ~]# samba-tool domain provision --use-rfc2307 --interactive
Realm [SUNIL.CC]:
Domain [SUNIL]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS forwarder IP address (write 'none' to disable forwarding) [4.2.2.1]:
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=sunil,DC=cc
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=sunil,DC=cc
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf
Setting up fake yp server settings
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: samba4
NetBIOS Domain: SUNIL
DNS Domain: sunil.cc
DOMAIN SID: S-1-5-21-1578983437-3114190590-2362936743
[ etc]#
Sigurohuni që portat të jenë hapur në murin e zjarrit.
[ etc]#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
[ ~]# firewall-cmd --reload
Paketa nuk ofron skriptin fillestar, do ta shtojmë tani.
[ ~]# cat /etc/systemd/system/samba.service
[Unit]
Description= Samba 4 Active Directory
After=syslog.target
After=network.target
[Service]
Type=forking
PIDFile=/var/run/samba.pid
ExecStart=/usr/sbin/samba
[Install]
WantedBy=multi-user.target
[ ~]#
[ ~]# systemctl enable samba
Created symlink from /etc/systemd/system/multi-user.target.wants/samba.service to /etc/systemd/system/samba.service.
[ ~]# systemctl restart samba
Të gjithë hapat e tjerë janë të ngjashëm me artikullin tim të mëparshëm
për të konfiguruar hostet e Windows dhe Linux, ju lutemi referojuni
Instalimi i kontrolluesit të domenit Samba4 nga burimi
Krijimi i ndarjes Samba me mbështetjen e Windows ACL
Ne duhet të konfigurojmë ACL të zgjeruar për samba4. Shtoni sa vijon në skedarin smb.conf nën global.
[ ~]# cat /etc/samba/smb.conf
# Global parameters
[global]
------------
-------------
vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes
------------
-------------
[ ~]#
Tani rinisni shërbimin Samba.
[ ~]# systemctl restart samba
Vetëm përdoruesit dhe grupet që kanë privilegjin SeDiskOperatorPrivilege mund të konfigurojnë lejet e ndarjes.
[ ~]# net rpc rights grant "SUNIL\Domain Admins" SeDiskOperatorPrivilege -U "USER\administrator"
Enter USER\administrator's password:
Successfully granted rights.
[ ~]#
Përpara se të krijojmë ndarjen, duhet të sigurohemi që serveri samba4 të vërtetohet me vetveten.
Ne nuk mund të bëjmë metodën e zakonshme pasi ajo nuk funksionon pasi paketa ekzistuese nga krahu do të jetë në konflikt me paketat e ofruara nga RedHat, ne nuk mund të përdorim sssd këtu. Ne do të përdorim Winbind për ta bërë këtë të funksionojë.
Ju lutemi përdorni metodën e mëposhtme. Kjo kërkohet për të krijuar ndarjen samba me leje specifike
Instaloni paketën e mëposhtme.
[ ~]#yum -y install authconfig-gtk*
Ekzekutoni komandën.
[ yum.repos.d]# authconfig-tui
ju lutem zgjidhni Winbind, ndiqni hapat e mëposhtëm.
Nuk do të mund të futni fjalëkalimin, thjesht shtypni ok.
Më pas komentoni rreshtat në /etc/samba/smb.conf dhe rinisni shërbimin samba.
Konfigurimi juaj duhet të duket si ky:
[ ~]# cat /etc/samba/smb.conf
# Global parameters
[global]
#--authconfig--start-line--
# Generated by authconfig on 2017/05/26 17:23:04
# DO NOT EDIT THIS SECTION (delimited by --start-line--/--end-line--)
# Any modification may be deleted or altered by authconfig in future
# 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
server role = active directory domain controller
idmap_ldb:use rfc2307 = yes
vfs objects = acl_xattr
map acl inherit = 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
[ ~]#
[ ~]# systemctl restart samba
Kontrolloni nëse jemi në gjendje të popullojmë përdoruesit dhe grupet:
[ ~]# wbinfo -u
SUNIL\administrator
SUNIL\sambauser
SUNIL\testuser
SUNIL\krbtgt
SUNIL\guest
[ ~]# wbinfo -g
SUNIL\cert publishers
SUNIL\ras and ias servers
SUNIL\allowed rodc password replication group
SUNIL\denied rodc password replication group
SUNIL\dnsadmins
SUNIL\enterprise read-only domain controllers
SUNIL\domain admins
SUNIL\domain users
SUNIL\domain guests
SUNIL\domain computers
SUNIL\domain controllers
SUNIL\schema admins
SUNIL\enterprise admins
SUNIL\group policy creator owners
SUNIL\read-only domain controllers
SUNIL\dnsupdateproxy
[ ~]#
Ndryshoni linjat në nsswitch.conf:
[ ~]# cat /etc/nsswitch.conf
----------
---------
passwd: files winbind
shadow: files winbind
group: files winbind
hosts: files dns wins
services: files winbind
netgroup: files winbind
---------
----------
Tani kontrolloni nëse jemi në gjendje të marrim emrin e përdoruesit duke përdorur komandën id:
[ ~]# id testuser
uid=3000019(SUNIL\testuser) gid=100(users) groups=100(users),3000019(SUNIL\testuser),3000009(BUILTIN\users)
[ ~]#
Krijimi i një aksioni Samba
Do të krijoj dy aksione, njëra e aksesueshme vetëm nga përdoruesi testues dhe tjetra e aksesueshme nga të gjithë përdoruesit në grupin e përdoruesve të domenit.
Ndarja e aksesueshme nga përdoruesi testues do të quhet testshare.
Ndarja e aksesueshme nga të gjithë përdoruesit do të quhet commonshare.
[ ~]# mkdir /testshare
[ ~]# mkdir /commonshare
[ ~]# chmod 770 /testshare
[ ~]# chmod 770 /commonshare
[ ~]# chown -R root:testuser /testshare
[ ~]# chown -R root:"Domain Users" /commonshare
Tani shtoni hyrjet në smb.conf
[ ~]# cat /etc/samba/smb.conf
# Global parameters
[global]
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 inherit = 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 accessible by testuser
path = /testshare
valid users = SUNIL\testuser
writable = 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 = Accessible by all the users
path = /commonshare
valid users = "@SUNIL\Domain Users"
writable = yes
read only = no
force create mode = 0660
create mask = 0777
directory mask = 0777
force directory mode = 0770
access based share enum = yes
hide unreadable = yes
[ ~]#
Rinis shërbimin samba.
[ ~]# systemctl restart samba
Hyni në ndarjen e sambas si përdorues provë.
Këtu do të shihni që të dy testshare dhe commonshare janë të dukshme.
Testuar duke krijuar skedarë dhe dosje nën testshare.
[ /]# cd /testshare/
[ testshare]# ls -l
total 8
-rwxrwx---+ 1 SUNIL\testuser users 0 May 27 22:56 1.txt
drwxrwx---+ 2 SUNIL\testuser users 6 May 27 22:56 test
[ testshare]#
Tani po regjistrohem si një përdorues tjetër, vetëm commonshare është i dukshëm:
Krijimi i skedarëve në bazë të përbashkët.
[ commonshare]# ls -l
total 8
drwxrwxrwx+ 2 SUNIL\testuser users 6 May 27 23:02 test
drwxrwxrwx+ 2 SUNIL\sambauser users 6 May 27 23:07 test2
[ commonshare]#
Kjo është mënyra se si ne krijojmë aksione nën Samba 4.