Intranet jest prywatną siecią tworzoną przez przedsiębiorstwa w celu ułatwienia komunikacji i przesyłu danych. Każdy użytkownik połączony z taką siecią ma dostęp do poszczególnych plików oraz usług z własnego domu. W tym celu wykorzystywana jest usługa VPN, która służy do tworzenia bezpiecznego i szyfrowanego tunelu połączeniowego pomiędzy komputerem użytkownika, a główną siecią biura.
W niniejszym poradniku przedstawimy proces tworzenia Intranet poprzez konfigurację usługi współdzielenia plików za pomocą Samba oraz OpenVPN. Ujawnimy również sposób zarządzania udostępnionymi danymi firmy oraz zasobami obliczeniowymi, aby dostęp do nich mieli jedynie użytkownicy połączeni przez VPN.
Wymagania
Do instalacji pakietu Samba niezbędny jest serwer z zainstalowanym oraz skonfigurowanym OpenVPN. Jeśli nie posiadasz OpenVPN na swoim serwerze, zapoznaj się z naszym poradnikiem na temat instalacji i konfiguracji VPN za pomocą OpenVPN na Ubuntu 18.04.
Połącz się ze swoim serwerem przez SSH. Jeśli jeszcze tego nie zrobiłeś, zapoznaj się z naszym poradnikiem na temat bezpiecznego połączenia przez protokół SSH. W przypadku serwera lokalnego przejdź do następnego kroku i otwórz terminal na swoim serwerze.
Instalacja i konfiguracja serwera Samba
Serwer Samba jest oprogramowaniem, które pozwala na udostępnianie i uzyskanie dostępu do plików pomiędzy różnymi systemami operacyjnymi, podłączonymi do tej samej sieci. W odróżnieniu od innych popularnych usług do przechowywania danych, takich jak Google Drive, czy Dropbox, opisywane oprogramowanie nie posiada interfejsu graficznego oraz limitu liczby udostępnianych plików. Jedynym ograniczeniem jest w tym przypadku rozmiar wykorzystywanego dysku twardego.
W pierwszej kolejności zainstaluj serwer Samba oraz niezbędne oprogramowanie:
$ sudo apt-get install samba samba-common python-glade2 system-config-samba
Ze względów bezpieczeństwa stwórz kopię pliku konfiguracyjnego, który będziesz mógł przywrócić w przypadku problemów:
$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
Usługa wymaga dostępu do sieci, więc w przypadku wykorzystywania firewall UFW należy dodać wyjątki dla Samba:
$ sudo ufw allow samba
Następnie utwórz dwa foldery, jeden (publiczny) z nieograniczonym dostępem, oraz drugi z dostępem jedynie dla autoryzowanych użytkowników (prywatny).
$ sudo mkdir -p /samba/private
$ sudo mkdir -p /samba/public
Konfiguracja serwera Samba
Edytuj plik konfiguracyjny Samba w celu ustawienia zasad dostępu do folderów i plików:
$ sudo nano /etc/samba/smb.conf
Usuń całą zawartość i wprowadź poniższą konfigurację:
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = ubuntu
security = user
map to guest = bad user
dns proxy = no
interfaces = 10.8.0.1/8
bind interfaces only = yes
## Logging
log level = 2
log file = /var/log/samba.log.%m
max log size = 50
debug timestamp = yes
#============ Share Defenitions ==================
[public]
path = /samba/public/
browsable = yes
writable = yes
guest ok = yes
read only = no
force user = nobody
[private]
path = /samba/private/
valid users = @authorized
guest ok = no
writable = yes
browsable = yes
Plik konfiguracyjny składa się z 3 sekcji: Global, Public i Private, z których każda określa ustawienia różnych poziomów uprawnień do plików.
- Global: zawiera ogólne ustawienia parametrów dla serwera Samba.
- Workgroup: grupa robocza, dla której widoczny będzie serwer. Standardowo wyświetlana jest jako WORKGROUP na systemie Windows, lecz w przypadku innych systemów operacyjnych możliwa jest zmiana nazwy.
- String & Netbios: odnoszą się do nazwy serwera i platformy serwerowej.
- Security: określa niezależność serwera o swoich własnych kontach.
- Map to guest: każdy niezalogowany użytkownik jest określany jako gość.
- Proxy DNS: brak połączenia przez DNS.
- Interfaces: dostęp jest możliwy tylko w przypadku korzystania z adresu IP serwera VPN.
- Bind interfaces only: zapewnia przetwarzanie zapytań przez Sambę jedynie z sieci VPN.
- Log level: pożądany poziom szczegółów generowanych logów (od 1 do 10).
- Log File: ścieżka oraz nazwa pliku, w którym zapisywane są logi.
- Max log size: maksymalny rozmiar pliku z logami.
- Timestamp Debugging: określa czy logi mają zawierać znaczniki czasu.
- Publish: poziom dostępu do folderów dla wszystkich użytkowników.
- Path: ścieżka folderu z ustawionym dostępem.
- Browsable & Writable: możliwość przeglądania folderów, wyświetlania i edycji ich zawartości.
- Guest ok: pozwala na dostęp użytkownikom, którzy nie mają zarejestrowanego konta.
- Read only: dostęp tylko do odczytu.
- Force user: wymaga identyfikacji gości.
- Private: zawiera zasady dostępu dla użytkowników z grupy „authorized”
- Path: ścieżka dostępu do sprecyzowanego folderu.
- Valid users: zezwala na dostęp jedynie użytkownikom z grupy „authorized”.
- Guest ok: pozwala na dostęp do folderu użytkownikom bez zarejestrowanego konta.
- Writable & Browsable: możliwość przeglądania folderów, wyświetlania i edycji ich zawartości.
Konfiguracja dostępu do Samba Shares
W celu uzyskania dostępu do folderów „prywatnych”, należy stworzyć grupę „authorized”, która będzie zawierała dane logowania dla użytkowników z dostępem do określonych plików.
$ sudo addgroup authorized
Dodaj do grupy użytkownika, który ma uzyskać dostęp do folderów prywatnych:
$ sudo useradd authorized_username -G authorized
$ sudo smbpasswd -a authorized_username
Zostaniesz poproszony o wprowadzenie hasła, które będzie wykorzystywane przez użytkownika w celu uzyskania dostępu do współdzielonych plików.
Ustaw uprawnienia do edycji plików dla użytkowników z dostępem do folderów publicznych:
$ sudo chmod -R 766 /samba/public
$ sudo chown -R nobody:nogroup /samba/public
$ sudo setfacl -dm g:nogroup:rw /samba/public
$ sudo setfacl -dm u:nobody:rw /samba/public
Następnie ustaw uprawnienia do edycji plików dla użytkowników z dostępem do folderów prywatnych:
$ sudo chmod -R 770 /samba/private
$ sudo chown root:authorized /samba/private
Po zakończeniu konfiguracji, zrestartuj serwer w celu zachowania zmian:
$ sudo service smbd restart
Połączenie do Serwera Samba
Ubuntu
Otwórz File Explorer -> Other Locations -> Connect to the server, i wprowadź:
smb://10.8.0.1/
W celu uzyskania dostępu do folderów „publicznych”, pozostaw opcję „Anonymous”. Jeśli natomiast chcesz uzyskać dostęp do folderów „prywatnych”, wprowadź nazwę użytkownika oraz hasło, ustawione w czasie dodawania użytkownika do grupy „authorized”.
Windows
Otwórz Explorer -> Network, i wprowadź:
\\10.8.0.1\
Dostęp do folderów „publicznych” będzie natychmiastowo możliwy. Natomiast dostęp do folderów „prywatnych” wymaga wprowadzenia Użytkownika i Hasła.
Usuwanie dostępu do folderów i plików
Aby mieć pewność, że dany użytkownik nie będzie miał dostępu do współdzielonych plików, należy usunąć go z grupy „authorized”:
$ sudo deluser authorized_username -G authorized
Wyświetlenie listy użytkowników w grupie „authorized” możliwe jest za pomocą komendy „members”:
$ sudo apt-get install members
$ members authorized
W celu ponownego dodania wcześniej usuniętego użytkownika, należy wprowadzić komendę:
$ usermod -a -G authorized authorized_username