Jak zainstalować i skonfigurować Samba na RHEL 8 / Centos 8

Jak zainstalować i skonfigurować Samba na RHEL 8 / Centos 8

Samba zapewnia oprogramowanie serwera i klienta, aby umożliwić udostępnianie plików między maszynami Linux i Windows. Instalowanie i konfigurowanie go na RHEL 8 / Centos 8 jest dość łatwe. Czytaj dalej, aby dowiedzieć się, jak dzielić katalog z Sambą i jak zastosować do niego odpowiedni kontekst Selinux.

W tym samouczku nauczysz się:

  • Jak zainstalować Samba na Rhel8
  • Jak włączyć i rozpocząć demony SMB i NMB
  • Jak stworzyć udział samby
  • Jak skonfigurować zaporę ogniową, aby umożliwić dostęp do samby dostępu
  • Jak skonfigurować prawidłowy kontekst Selinux, aby samba działała poprawnie
SAMBA Udziały w RHEL 8 / CENTOS 8

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Red Hat Enterprise Linux 8
Oprogramowanie Pakiety Samba, Coreutils i PolicyCoreUtils-Python-Utils
Inny Pozwolenie na uruchomienie polecenia z uprawnieniami root.
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Przedstawianie samby

Samba, jak stwierdzono na stronie głównej projektu, jest oprogramowaniem typu open source, wydanym w ramach GPL licencja, która pozwala nam udostępniać pliki i drukowanie usług za pomocą SMB/CIF protokół.

Projekt zapewnia zarówno oprogramowanie serwerowe, jak i klienckie, aby umożliwić współdziałanie z systemem Windows, reprezentując idealne rozwiązanie w mieszanych środowiskach. W tym samouczku zobaczymy, jak zainstalować Samba w Red Hat Enterprise Linux 8, jak skonfigurować udział Samby, jak konfiguracja zapory, aby umożliwić dostęp do wspólnych zasobów, oraz jak zastosować odpowiedni kontekst Selinux.



Instalacja

Pierwszą rzeczą, którą musimy zrobić, jest zainstalowanie Samby na naszym komputerze. Pakiet i potrzebne biblioteki są dostępne w oficjalnych repozytoriach RHEL 8 / Centos 8, dlatego możemy je zainstalować za pomocą Yum lub DNF. W tej wersji RHEL/CENTOS pierwsze polecenie to tylko „link” do drugiego:

$ sudo dnf instaluj samba samba-client

Pakiet Samba-Client nie jest ściśle potrzebny, ale dostarczone przez niego narzędzia mogą być przydatne. Po zainstalowaniu pakietów musimy uruchomić i włączyć SMB i NMB Demony w BOOT. Pierwszy to demon, który zajmuje się wykonaniem rzeczywistych transferów i operacji udostępniania, podczas gdy drugi wykonuje Netbios Nazwa rozdzielczości, umożliwiając pojawienie się zasobów podczas przeglądania sieci w systemie Windows. Możemy teraz włączyć i uruchomić obie usługi SystemD za pomocą jednego polecenia:

$ sudo systemctl enable --Now SMB, nmb

Konfigurowanie zapory ogniowej

Następnym krokiem jest konfiguracja zapory. Musimy otworzyć odpowiednie porty, aby zasoby dzielone samba mogły być dostępne z innych maszyn. Domyślne oprogramowanie do zarządzania zaporami Onrhel 8 / Centos 8, to Firewalld.

Na szczęście dla nas nie ma potrzeby ręcznie otwierania portów: wszystko, co musimy zrobić, to dodać usługę „samba” do naszej strefy. „Usługa” to tylko abstrakcja, która pozwala nam pozwolić na ruch przez wszystkie porty potrzebne przez usługę, odwołując się do nazwy usługi, zamiast konfiguracji (i zapamiętywania) każdego używanego przez niego portu. Jeśli chcemy zebrać informacje o „usłudze”, możemy uruchomić:

$ sudo firewall-cmd--info-service samba Porty: 137/UDP 138/UDP 139/TCP 445/TCP Protokoły: Porty źródłowe: Moduły: Netbios-NS Miejsce Miejsca: 

Z wyjścia polecenia widzimy, że usługa pozwoli na ruch przez porty 173/UDP, 138/UDP, 139/TCP i 445/TCP. Aby na stałe dodać usługę do strefy domyślnej, możemy uruchomić:

$ sudo firewall-cmd --permanent --add-service = samba

Podczas uruchamiania polecenia użyliśmy --stały przełącz, aby nasza zmiana była trwała. Zakładaliśmy również domyślny strefa do użycia. Gdybyśmy chcieli określić inną strefę do zastosowania działania, użylibyśmy --strefa opcja i podano nazwę strefy jako argument (e.G. -strefa = zewnętrzna). Ponieważ nasza zmiana ma być stała, aby stała się skuteczna, musimy ponownie załadować konfigurację zapory:

$ sudo firewall-cmd-odpowiadanie


Możemy sprawdzić, czy usługa „samba” jest teraz częścią naszej strefy, uruchamiając:

$ sudo firewall-cmd-List-services Cockpit DHCPV6-CLIENT HTTP Samba ssh 

Ponownie, jeśli żadna strefa nie zostanie określona, ​​polecenie jest stosowane do strefy domyślnej.

Konfigurowanie udostępnionego katalogu dostępnego przez gości

Powiedzmy, że chcemy podzielić się katalogiem za pośrednictwem Samby i chcemy pozwolić bezpłatnie do tego katalogu użytkownikom gości, bez konieczności podania hasła. Aby uzyskać pożądany wynik, musimy wprowadzić pewne zmiany w /etc/samba/smb.conf złożyć i dodaj „zwrotkę” do naszego udziału. Otwórz plik z ulubionym edytorem i w [światowy] Sekcja, dodaj podświetlony tekst:

[Global] WorkGroup = samba bezpieczeństwo = użytkownik PassDB backend = tdbsam druk = kubki Nazwa drukowania = kubki Drukarki obciążenia = tak Mapa do gościa = zły użytkownik 

Mapa do gościa = zły użytkownik instrukcja, mapuje próby logowania za pomocą złych nazw użytkowników do domyślnego użytkownika gościa, co domyślnie jest nikt. Jest to potrzebne, aby umożliwić anonimowy dostęp bez konieczności podania hasła.

Po tej zmianie musimy dołączyć nową zwrotkę poświęconą naszemu udziałowi na końcu pliku. Nazwimy współużytkowane zasoby „LinuxConfig”:

[LinuxConfig] ścieżka = /MNT /SHARED GUST = Tak 

Z powyższą konfiguracją oświadczyliśmy, że chcemy udostępnić treść /mnt/udostępniony katalog, bez potrzeby uwierzytelnienia użytkownika. Ta konfiguracja jest oczywiście ryzykowna i jest tutaj zgłaszana tylko jako przykład: w scenariuszu prawdziwego świata możesz przynajmniej odmówić zapisu dostępu do gości (możesz to zrobić, dodając Writeable = nie instrukcja). Aby zmiany były skuteczne, musimy ponownie uruchomić demony:



$ sudo systemctl restart SMB, nmb

Skonfiguruj udział dostępny tylko przez zarejestrowanych użytkowników

Aby chronić dostęp do zasobu z monitem logowania, gdy Samba działa jako samodzielny serwer, musimy dodać istniejącego użytkownika do bazy danych Samba. Umowy tego użytkownika będą konieczne, aby uzyskać dostęp do współdzielonego katalogu. Ze względów bezpieczeństwa dobrym praktyką jest utworzenie oddanego użytkownika do zadania, pominięcie tworzenia jego katalogu domowego i przypisanie mu fałszywej powłoki:

$ sudo adduser -m sambauser -s /sbin /nologin

-M opcja przekazana do polecenia jest krótkim formularzem dla --bez domu, co jest dość oczywiste; -S Zamiast tego podajmy powłokę, w tym przypadku celowo nie jest to nieprawidłowe: /sbin/nologin. W tym momencie użytkownik nie musi nawet ustawić hasła w naszym systemie.

Po utworzeniu użytkownika musimy dodać go do bazy danych Samba: Możemy wykonać operację za pomocą SMBPASSWD Komenda:

$ sudo smbpasswd -a sambauser nowe hasło SMB: Ponowne ustawienie nowego hasła SMB: Dodano użytkownik Sambauser. 

Po uruchomieniu polecenia jesteśmy zachęcani do przypisania hasła dla użytkownika, a także do potwierdzenia: to hasło będzie ważne tylko w kontekście Samby, nie ma nic wspólnego z konto użytkownika w naszym systemie. Aby ograniczyć udział, który wcześniej stworzyliśmy, musimy dokonać niewielkiej zmiany w sekcji dedykowanej:

[LinuxConfig] ścieżka = /mnt /shared gość OK = nie 

Możemy sprawdzić, czy nasza konfiguracja jest ważna, używając TestParm Komenda:



$ testParm załaduj pliki konfiguracyjne SMB z/etc/samba/smb.conf rlimit_max: Zwiększenie rlimit_max (1024) do minimalnego limitu systemu Windows (16384) Sekcja przetwarzania ”[domy]„ Sekcja przetwarzania ”[Drukarki]„ Sekcja przetwarzania ”[PRINTION $]„ SEKCJA PRZETWARZANIA ”[LINUXCONFIG]„ Załadowany plik usług OK OK. Rola serwera: ROCE_STANDALONE 

Znowu musimy ponownie uruchomić SMB I NMB Demony, aby nasze zmiany były skuteczne. Udostępniony katalog będzie teraz dostępny dopiero po podaniu prawidłowych poświadczeń.

Konfiguracja SELINUX dla samby

SELINUX jest często postrzegany jak komplikacja i od razu wyłącza. To nie jest konieczne: musimy tylko nauczyć się, jak go skonfigurować i skorzystać z poprawy bezpieczeństwa, które zapewnia. Aby nasz podzielenie się samba działał, gdy Selinux jest w trybie „egzekwowania”, musimy przypisać odpowiedni kontekst do naszego udostępnionego katalogu i plików:

$ sudo chcon -r -t samba_share_t /mnt /shared

W powyższym przykładzie użyliśmy CHCON polecenie z -T opcja, aby zmienić TYP sekcja kontekstu Selinux do samba_share_t. Użyliśmy również -R przełącz, aby polecenie były rekurencyjne. Ta zmiana przetrwa ponowne uruchomienie, ale nie ponowne unieważnienie systemu, jeśli istnieje zasady domyślne dla naszego katalogu i plików, ponieważ w takim przypadku konfiguracja domyślna zostanie ponownie zastosowana.

Jeśli chcemy, aby nasza zmiana przetrwała zdarzenie relacjonowania, musimy dodać naszą zasadę do polityki. Możemy to zrobić za pomocą Semanage Komenda:

$ sudo semanage fcontext -a -t samba_share_t "/mnt/shared (/.*)?"

Ponieważ użyliśmy (/.*)? Regex, reguła zostanie zastosowana do całej zawartości katalogu „udostępnionego” i do samego katalogu. Możemy sprawdzić, czy nasza reguła została dodana do zasady, wymieniając etykiety używane w naszym systemie:

$ sudo semanage fcontext -l | GREP/MNT/SHARED/MNT/SHARED (/.*)? Wszystkie pliki system_u: object_r: samba_share_t: s0 

Powinniśmy teraz mieć działającą konfigurację samby. Aby dodatkowo dostosować konfigurację samby, być może konieczne może być również manipulowanie Selinux Booleans. Na przykład przy dodawaniu istniejących użytkowników do Samby, aby umożliwić udostępnianie ich katalogów domowych, musimy włączyć dedykowane boolean Selinux. Aby wymienić wszystkie boolean związane z Sambą, możemy uruchomić:



$ sudo semanage boolean -l | grep samba samba_create_home_dirs (off, off) zezwalaj Samby do tworzenia domu dirs samba_damain_controller (wyłączony) zezwala na samba do kontrolera samba_enable_home_dirs (off) zezwolić SAMBA DIRS SABA_EXPORPORT (Off, off, off, off, off, off) Pozwól Samba eksportować wszystkie Ro samba_export_all_rw (off, off) pozwolić Samba na eksport wszystkich rw samba_load_libgfapi (wyłącz, wyłącz) Załadanie Samby załadowania libgfapi samba_portmapper (off, off) zezwolić Samba na portmapper samba_run_unconfined (wyłączony) zezwolić SABA UNICONFINE samba_share_fusefs (off, off) Zezwalaj Samba na udostępnianie fusefs samamba_share_nfs (off, off) zezwolić SABA udostępnić NFS sanlock_use_samba (wyłącz, wyłącz) Pozwól Sanlock używać SABA TMPRAPER_USE_USE_SAMBA (Off). Pozwól użyć do samby home dirs virt_use_samba (off, off) pozwól cnotowi używać samba 

Na powyższym wyjściu druga kolumna wskazuje bieżącą wartość logicznego, a trzecia domyślna (oba są wyłączone, w tym przypadku). Boolean, który chcemy aktywować, aby umożliwić dzielenie się katalotami domowymi, jest Samba_enable_home_dirs. Możemy wykonać operację za pomocą Setsebool Komenda:

$ sudo setsebool samba_enable_home_dirs = 1

Wnioski

W tym samouczku widzieliśmy, jak zainstalować Samba w systemie RHEL 8 / Centos 8. Widzieliśmy również, jak udostępnić katalog, umożliwiając dostęp do gości lub ograniczenie go do uwierzytelnionych użytkowników. Widzieliśmy również, jak skonfigurować zaporę ogniową, aby udział był dostępny z innych maszyn w sieci.

Na koniec widzieliśmy, jak wprowadzić potrzebne zmiany, aby mieć działającą konfigurację samba z Selinux w trybie „egzekwowania”. Jeśli jesteś zainteresowany Selinux, możesz również przeczytać nasz artykuł na ten temat.

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Mastering Bash Script Loops
  • Jak podwójnie rozruch Kali Linux i Windows 10
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Jak skonfigurować serwer Samba i klient na Almalinux
  • Jak skonfigurować serwer OpenVPN na Ubuntu 20.04
  • Lista klientów FTP i instalacja na Ubuntu 22.04 Linux…
  • Ubuntu 20.04 Przewodnik