Tento výukový program vysvětluje, jak nakonfigurovat server Samba na CentOS 7 s anonymními a zabezpečenými sdíleními samby. Samba je sada Open Source/Free Software, která poskytuje bezproblémové souborové a tiskové služby klientům SMB/CIFS, jako je Windows. Samba je na rozdíl od jiných implementací SMB/CIFS volně dostupná a umožňuje interoperabilitu mezi servery Linux/Unix a klienty se systémem Windows.
1 předběžná poznámka
Mám čerstvě nainstalovaný server CentOS 7, na který se chystám nainstalovat server samba. Samozřejmě musíte mít jeden počítač se systémem Windows pro kontrolu serveru samba, který musí být dostupný se serverem CentOS 7. Můj server Centos 7 má název hostitele server1.example.com a IP adresu 192.168.0.100
Poznámka:
- Počítač se systémem Windows musí být ve stejné pracovní skupině. Chcete-li zkontrolovat hodnotu v počítači se systémem Windows, spusťte příkaz cmd prompt
net config workstation
Bude to takto:
Váš počítač se systémem Windows musí být ve stejné doméně Workstation jako server CentOS 7.0, tedy v mém případě WORKGROUP.
- Aby byl počítač se systémem Windows dosažitelný v systému Windows, postupujte takto. V terminálu spusťte a přidejte záznam IP adresy vašeho serveru:
notepad C:\Windows\System32\drivers\etc\hosts
V mém případě to bylo takto, stačí uložit hodnoty.
[...]
192.168.0.100 server1.example.com centos
2 anonymní sdílení samby
Nejprve vysvětlím metodiku instalace Samby pomocí anonymního sdílení. Chcete-li nainstalovat software Samba, spusťte:
yum install samba samba-client samba-common
Nainstaluje aktuální verzi Samby ze softwarového úložiště CentOS.
Nyní pro konfiguraci samby upravte soubor /etc/samba/smb.conf. Před provedením změn vytvořím zálohu původního souboru jako /etc/samba/smb.conf.bak
cp -pf /etc/samba/smb.conf /etc/samba/smb.conf.bak
Protože chci začít s prázdným souborem, použiji k vyprázdnění smb.conf příkaz cat. To je rychlejší než smazání všech řádků ve vi.
cat /dev/null > /etc/samba/smb.conf
Dále zadejte položky jako tento
vi /etc/samba/smb.conf
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = centos security = user map to guest = bad user dns proxy = no #============================ Share Definitions ============================== [Anonymous] path = /samba/anonymous browsable =yes writable = yes guest ok = yes read only = no
mkdir -p /samba/anonymous
systemctl enable smb.service
systemctl enable nmb.service
systemctl restart smb.service
systemctl restart nmb.service
Další CentOS 7 Firewall-cmd zablokuje přístup k sambě, abychom se toho zbavili, spustíme:
firewall-cmd --permanent --zone=public --add-service=samba
[[email protected] ~]# firewall-cmd --permanent --zone=public --add-service=samba success [[email protected] ~]#
Nakonec znovu načtěte firewall, aby se změny projevily.
firewall-cmd --reload
[[email protected] ~]# firewall-cmd --reload success [[email protected] ~]#
Nyní můžete přistupovat ke sdílené složce Centos 7 ve Windows následovně. Přejděte na výzvu Spustit a zadejte \\centos:
\\centos
Na počítači se systémem Windows stačí procházet složku a pokusit se vytvořit textový soubor, ale zobrazí se chyba oprávnění odepřeno.
Zkontrolujte oprávnění sdílené složky.
ls -l
drwxr-xr-x. 2 root root 6 Jul 17 13:41 anonymous
[[email protected] samba]#
Chcete-li povolit přístup anonymnímu uživateli, nastavte oprávnění následovně:
cd /samba
chmod -R 0755 anonymous/
chown -R nobody:nobody anonymous/
ls -l anonymous/
total 0
drwxr-xr-x. 2 nobody nobody 6 Jul 17 13:41 anonymous
[[email protected] samba]#
Dále musíme povolit SELinux pro konfiguraci samby následovně:
chcon -t samba_share_t anonymous/
Nyní může anonymní uživatel procházet a vytvářet obsah složky.
Můžete také zkontrolovat obsah na serveru.
ls -l anonymous/
total 0
-rwxr--r--. 1 nobody nobody 0 Jul 17 16:05 anonymous.txt
[[email protected] samba]#
3. Zabezpečený server samby
Proto vytvořím skupinu smbgrp &user srijan pro přístup k serveru samba se správnou autentizací.
groupadd smbgrp
useradd srijan -G smbgrp
smbpasswd -a srijan
[[email protected] samba]# smbpasswd -a srijan New SMB password:<--yoursambapassword Retype new SMB password:<--yoursambapassword Added user srijan. [[email protected] samba]#
Nyní vytvořte složku s názvem zabezpečeným ve složce /samba a udělte oprávnění takto:
mkdir -p /samba/secured
Opět budeme muset povolit poslech přes SELinux:
cd /samba
chmod -R 0777 secure/
chcon -t samba_share_t secure/
Upravte konfigurační soubor znovu jako:
vi /etc/samba/smb.conf
[...]
[secured] path = /samba/secured valid users = @smbgrp guest ok = no writable = yes browsable = yes
systemctl restart smb.service
systemctl restart nmb.service
Dále zkontrolujte nastavení následovně:
testparm
[[email protected] samba]# testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[Anonymous]" Processing section "[secured]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions <--ENTER [global] netbios name = CENTOS server string = Samba Server %v map to guest = Bad User dns proxy = No idmap config * : backend = tdb [Anonymous] path = /samba/anonymous read only = No guest ok = Yes [secured] path = /samba/secured valid users = @smbgrp read only = No [[email protected] samba]#
Nyní na počítači se systémem Windows zkontrolujte složku se správnými přihlašovacími údaji
Znovu budete čelit problému oprávnění udělit oprávnění k zápisu uživateli srijan do:
cd /samba
chown -R srijan:smbgrp secured/
Uživatelé samby mají nyní oprávnění zapisovat do složky. Na zdraví, se serverem samba v CentOS 7 jste skončili :)