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.