Wyszukiwanie w witrynie

Konfigurowanie Samby i konfiguracja FirewallD i SELinux, aby umożliwić udostępnianie plików na klientach Linux/Windows — część 6


Ponieważ komputery rzadko działają jako izolowane systemy, należy oczekiwać, że jako administrator lub inżynier systemu będziesz wiedział, jak skonfigurować i utrzymywać sieć z wieloma typami serwerów.

W tym artykule i w następnym z tej serii omówimy podstawy konfiguracji serwerów Samba i NFS odpowiednio z klientami Windows/Linux i Linux.

Ten artykuł z pewnością się przyda, jeśli zostaniesz poproszony o skonfigurowanie serwerów plików w środowiskach korporacyjnych lub korporacyjnych, w których prawdopodobnie znajdziesz różne systemy operacyjne i typy urządzeń.

Ponieważ o pochodzeniu i technicznych aspektach Samby i NFS można przeczytać w całym Internecie, w tym i następnym artykule przejdziemy od razu do sedna tematu.

Krok 1: Instalacja serwera Samba

Nasze obecne środowisko testowe składa się z dwóch RHEL 7 i jednej maszyny Windows 8, w tej kolejności:


1. Samba / NFS server [box1 (RHEL 7): 192.168.0.18], 
2. Samba client #1 [box2 (RHEL 7): 192.168.0.20]
3. Samba client #2 [Windows 8 machine: 192.168.0.106]

W box1 zainstaluj następujące pakiety:


yum update && yum install samba samba-client samba-common

W box2:


yum update && yum install samba samba-client samba-common cifs-utils

Po zakończeniu instalacji jesteśmy gotowi skonfigurować nasz udział.

Krok 2: Konfigurowanie udostępniania plików przez Sambę

Jednym z powodów, dla których Samba jest tak istotna, jest to, że udostępnia usługi plików i drukowania klientom SMB/CIFS, co powoduje, że klienci ci postrzegają serwer tak, jakby był System Windows (muszę przyznać, że piszę na ten temat z pewnymi emocjami, ponieważ była to moja pierwsza konfiguracja jako nowy administrator systemu Linux kilka lat temu).

Dodawanie użytkowników systemu oraz konfigurowanie uprawnień i własności

Aby umożliwić współpracę grupową, utworzymy grupę o nazwie finance z dwoma użytkownikami (user1 i user2) z poleceniem useradd i katalogiem /finanse w polu 1.

Zmienimy także właściciela grupy tego katalogu na finance i ustawimy jego uprawnienia na 0770 (uprawnienia do odczytu, zapisu i wykonywania dla właściciela i właściciela grupy):


groupadd finance
useradd user1
useradd user2
usermod -a -G finance user1
usermod -a -G finance user2
mkdir /finance
chmod 0770 /finance
chgrp finance /finance

Krok 3: Konfiguracja SELinuksa i zapory ogniowej

Przygotowując się do skonfigurowania /finance jako udziału Samby, będziemy musieli albo wyłączyć SELinux, albo ustawić odpowiednie wartości boolean i kontekst bezpieczeństwa w następujący sposób (w przeciwnym razie SELinux uniemożliwi klientom dostęp do udziału):


setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
getsebool –a | grep samba_export
semanage fcontext –at samba_share_t "/finance(/.*)?"
restorecon /finance

Ponadto musimy upewnić się, że zapora sieciowa przepuszcza ruch Samby.


firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

Krok 4: Skonfiguruj udział Samby

Teraz czas zagłębić się w plik konfiguracyjny /etc/samba/smb.conf i dodać sekcję dotyczącą naszego udziału: chcemy, aby członkowie grupy finance mogli aby przeglądać zawartość /finance i zapisywać /, utwórz w nim pliki lub podkatalogi (które domyślnie będą miały bity uprawnień ustawione na 0770 i finanse będą właścicielami grupy):


[finance]
comment=Directory for collaboration of the company's finance team
browsable=yes
path=/finance
public=no
valid users=@finance
write list=@finance
writeable=yes
create mask=0770
Force create mode=0770
force group=finance

Zapisz plik, a następnie przetestuj go za pomocą narzędzia testparm. Jeśli wystąpią jakiekolwiek błędy, wynik poniższego polecenia wskaże, co należy naprawić. W przeciwnym razie wyświetli przegląd konfiguracji serwera Samba:

Jeśli chcesz dodać kolejny udział publiczny (czyli bez żadnego uwierzytelnienia), utwórz kolejną sekcję w /etc/samba/smb.conf i pod nazwą nowego udziału skopiuj powyższą sekcję , zmieniając jedynie public=no na public=yes i nie uwzględniając dyrektyw dotyczących prawidłowych użytkowników i listy zapisu.

Krok 5: Dodawanie użytkowników Samby

Następnie musisz dodać użytkownika1 i użytkownika2 jako użytkowników Samby. Aby to zrobić, użyjesz polecenia smbpasswd, które współdziała z wewnętrzną bazą danych Samby. Zostaniesz poproszony o podanie hasła, którego będziesz później używać do łączenia się z udziałem:


smbpasswd -a user1
smbpasswd -a user2

Na koniec uruchom ponownie Sambę, włącz usługę uruchamiającą się przy starcie systemu i upewnij się, że udział jest rzeczywiście dostępny dla klientów sieciowych:


systemctl start smb
systemctl enable smb
smbclient -L localhost –U user1
smbclient -L localhost –U user2

W tym momencie serwer plików Samba został poprawnie zainstalowany i skonfigurowany. Nadszedł czas, aby przetestować tę konfigurację na naszych klientach RHEL 7 i Windows 8.

Krok 6: Montowanie udziału Samba w systemie Linux

Najpierw upewnij się, że udział Samby jest dostępny z tego klienta:


smbclient –L 192.168.0.18 -U user2

(powtórz powyższe polecenie dla użytkownika 1)

Jak każdy inny nośnik pamięci, możesz zamontować (i później odmontować) ten udział sieciowy, jeśli zajdzie taka potrzeba:


mount //192.168.0.18/finance /media/samba -o username=user1

(gdzie /media/samba to istniejący katalog)

lub na stałe, dodając następujący wpis w pliku /etc/fstab:


//192.168.0.18/finance /media/samba cifs credentials=/media/samba/.smbcredentials,defaults 0 0

Gdzie ukryty plik /media/samba/.smbcredentials (którego uprawnienia i własność ustawiono odpowiednio na 600 i root:root) zawiera dwie linie wskazujące nazwę użytkownika i hasło konta, które może korzystać z udziału:


username=user1
password=PasswordForUser1

Na koniec utwórzmy plik w /finance i sprawdźmy uprawnienia i własność:


touch /media/samba/FileCreatedInRHELClient.txt

Jak widać, plik został utworzony z uprawnieniami 0770 i własnością ustawioną na user1:finance.

Krok 7: Montowanie udziału Samba w systemie Windows

Aby zamontować udział Samba w systemie Windows, przejdź do Mój komputer i wybierz Komputer, a następnie Mapuj dysk sieciowy. Następnie przypisz literę dyskowi, który ma zostać zmapowany i zaznacz opcję Połącz przy użyciu różnych danych uwierzytelniających (poniższe zrzuty ekranu są w języku hiszpańskim, moim ojczystym języku):

Na koniec utwórzmy plik i sprawdźmy uprawnienia i własność:


ls -l /finance

Tym razem plik należy do użytkownika2, ponieważ jest to konto, którego używaliśmy do łączenia się z klientem Windows.

Streszczenie

W tym artykule wyjaśniliśmy nie tylko, jak skonfigurować serwer Samba i dwóch klientów korzystających z różnych systemów operacyjnych, ale także jak skonfigurować zaporę sieciową i SELinux na serwerze, aby zapewnić pożądane możliwości współpracy grupowej.

Na koniec polecam przeczytanie strony podręcznika online smb.conf w celu poznania innych dyrektyw konfiguracyjnych, które mogą być bardziej odpowiednie w Twoim przypadku niż scenariusz opisany w tym artykule.

Jak zawsze, jeśli masz jakieś uwagi lub sugestie, możesz zostawić komentarz za pomocą poniższego formularza.