Zdalne zarządzanie serwerem Unix





STRESZCZENIE
Praca przedstawia system Webmin, który poprzez interfejs sieci WWW pozwala na zarządzanie serwerem rodziny UNIX. Przy użyciu przeglądarki WWW za pośrednictwem Wembin’a można w wydajny, bezpieczny i wygodny sposób przeprowadzać zdalnie czynności związanie z administrowaniem serwerem sieciowym. Przedstawione są poszczególne etapy pracy z systemem Webmin: instalacja, konfiguracja, opis możliwości elementów modułów i ogólny wygląd niektórych z nich oraz uwagi dotyczące praktycznego wykorzystania tego pakietu w rzeczywistym środowisku sieciowym.

1 WSTĘP
W dzisiejszych środowiskach sieciowych mamy do czynienia z rozproszonymi w przestrzeni komputerami serwującymi usługi sieciowe – ich zarządzanie byłoby bardzo czasochłonne i kłopotliwe, jeśli dla każdej z oddalonych maszyn administrator byłby zmuszony dokonywać bezpośredniej konfiguracji np. poprzez terminal. Dodatkowo, jeśli serwery tworzą klaster to czas wymagany na konfigurację i administrację takiego systemu sieciowego przy użyciu zwyczajnych narzędzi stawia administratora w niewygodnej sytuacji. Ponadto usługi udostępniające zdalnie powłokę jak telnet, ssh, rsh najczęściej są nieefektywne i mało przyjazne początkującemu administratorowi. Dzieje się tak głownie ze względu na ich tekstowy charakter oraz fakt, że konfiguracja każdego z elementów serwera ma odmienny charakter (inną strukturę i zestaw słów pliku konfiguracyjnego). W przypadku połączenia telnet niezabezpieczonego szyfrowaniem np. kerberos istnieje poważne zagrożenie podsłuchania haseł, gdyż protokół ten przesyła hasło otwartym tekstem.

Aby usprawnić administrowanie serwerem konieczne jest narzędzie o spójnym interfejsie, grupujące w przejrzystej formie wiele elementów zarządzania sprzętem oraz usługami serwera. Naprzeciw temu problemowi wychodzi narzędzie Webmin, które pozwala na zarządzanie zdalne za pomocą przeglądarki stron internetowych. Przeglądarka powinna wspierać tabele i formularze oraz applety JAVA (dla modułu zarządzania plikami). Webmin to ogólnie mówiąc interfejs WWW pozwalający na administrację systemem Unixowym . Za jego pomocą można dokonywać rutynowych zadań administracji systemu zarządzać kontami użytkowników oraz grupami, instalować oraz usuwać pakiety oprogramowania, manipulować systemami plików i zarządzać limitami przydziałów przestrzeni dyskowych (quota). Pakiet umożliwia także konfigurację i zarządzanie szerokim zestawem programów serwerowych (daemons) np. serwerem WWW (Apache), FTP (WU-FTP oraz ProFTP), poczty elektronicznej (Sendmail, Postfix i QMail), SSH, DNS (Bind), DHCP, Proxy (Squid), bazami danych (MySQL, PostgresSQL) i innymi. Ponadto Webmin zawiera modyły pozwalające na administrację kartami sieciowymi, połączeniami PPP, partycjami dyskowymi, drukarkami oraz manipulowanie konfiguracją samego Webmin. Webmin składa się z prostego serwera WWW oraz pewnej liczby programów CGI, wszystkie te elementy zostały stworzone przy wykorzystaniu języka Perl 5 bez dodatkowych rozszerzeń. Autorem programu jest Jamie Cameron, który udostępnia swoje dzieło na zasadach licencji BSD. W opracowaniu tym, przedstawiony został pakiet w wersji 1.050, działający na podłączonym do globalnej sieci serwerze pełniącym jednocześnie funkcję węzła dostępowego dla użytkowników sieci lokalnej. Systemem operacyjnym sprawującym kontrolę nad pracą serwera jest Linux (wersja jądra 2.4.18), a wykorzystana dystrybucja to Mandrake 8.2.

2 INSTALACJA
Jeśli pakiet nie jest dostępny wraz z dystrybucją systemu operacyjnego, to najświeższą wersję można pobrać spod adresu http://www.webmin.com w postaci skompresowanego archiwum tar.gz lub pakietu RPM. Do działania Webmin niezbędny jest Perl w wersji piątej. Jeśli transmisja ma być szyfrowana wymagany jest także pakiet serwera SSH. W przypadku instalacji z postaci tar.gz rozpakowujemy archiwum poleceniem [2] tar zxvf webmin-1.050.tar.gz następnie w utworzonym katalogu, konieczne jest uruchomienie skryptu instalacyjnego setup.sh oraz odpowiedzenie na kilka konfiguracyjnych pytań podając ścieżkę dla plików konfiguracyjnych Webmin, ścieżkę dla logów, ścieżkę do interpretera Perl 5, następnie należy podać typ systemu operacyjnego i jego wersję, w odpowiedzi na kolejne pytanie należy wprowadzić numer portu, na którym będzie działał Web min (domyślnie 10000), następnie wprowadzić nazwę użytkownika mającego dostęp do Webmin oraz podać jego hasło. W kolejnym kroku skryptu konfiguracji należy wprowadzić nazwę hosta – maszyny na której będzie działał system, odpowiedzieć na pytanie, czy transmisja ma być szyfrowana za pomocą SSL oraz czy Webmin ma być uruchamiany przy starcie. Przy instalacji z pakietu RPM wykonujemy polecenie [2]: urpmi webmin-1.050-1.noarch.rpm Skrypty konfiguracyjne ustawiają opcje domyślne probramu w zależności od zainstalowanego systemu operacyjnego / dystrybucji.
Kolejnym etapem może być edycja plików konfiguracyjnych Webmina, które znajdują się w katalogu /etc/webmin/. Plik /etc/webmin/miniserv.conf zawiera konfigurację serwera WWW dla Webmin, a wiersze na które warto zwrócić uwagę to:
port=10000
host=192.168.1.1
ssl=1
listen=10000
Plik /etc/webmin/config pozwala na konfigurację kolejnych opcji pakietu,
niezwiązanych
jednak bezpośrednio z procesem mimiserwera web - warto zmienić tu opcje językowe:
lang_user=pl
lang=pl
Ostatnim krokiem przed rozpoczęciem korzystania z Webmin jest skonfigurowanie uruchamiania
się miniserwera wraz ze startem systemu oraz jego wystartowanie poprzez wywołanie odpowiedniego skryptu:
/etc/init.d/webmin start

3 LOGOWANIE DO WEBMIN
Transmisja danych pomiędzy użytkownikiem systemu a serwerem jest szyfrowana przy użyciu SSL, zatem wywołanie strony logowania się Webmin wymaga użycia bezpiecznego protokołu https np. dla serwera pod adresem sieci lokalnej 192.168.1.1 wywołanie w przeglądarce strony Webmin wygląda następująco: https://192.168.1.1:10000 [2]. Przed pojawieniem się okienka logowania możemy zostać zapytani o potwierdzenie certyfikatu szyfrowania transmisji serwera, jeśli nie jest on zainstalowany w przeglądarce. W oknie przeglądarki (o ile wspomaga ona bezpieczne połączenie SSL) ukazuje się okno logowania do systemu Webmin:
Domyślnie użytkownikiem posiadającym dostęp do Webmin jest administrator serwera (root), lecz może to być dowolny użytkownik serwera (domyślnie autoryzacja dokonywana jest poprzez PAM). Nazwy użytkowników, którzy mogą korzystać z systemu webmin wraz z listą modułów, z których dany użytkownik Webmin może korzystać znajduje się w pliku /etc/webmin/webmin.acl.
W tym opracowaniu administratorem Webmin jest użytkownik o identyfikowany w systemie przez login user:
Jeśli logowanie do systemu przebiegło poprawnie, to kolejnym ekranem jest już interfejs Webmin, w przypadku braku autoryzacji użytkownika formularz autoryzacji jest wyświetlany ponownie.

4 INTERFEJS
Po poprawnym załogowaniu się oczom Web-administratora powinien ukazać się interfejs Webmin, którego startową kategorią jest zestaw modułów konfiguracji samego narzędzia Webmin . Przy innych opcjach konfiguracji pakietu wyświetlana jest także wersja Webmin oraz nazwa sieciowa konfigurowanego poprzez narzędzie serwera. W prawym górnym rogu okna przeglądarki widoczne są także odnośniki do strony internetowej oraz poczta do autora narzędzia. Po prawej u dołu łącze służące do wylosowania się z Webmin. Większość modułów jest zlokalizowana, więc nie ma problemów ze zrozumieniem sposobu konfiguracji i zarządzania za ich pomocą – przejrzysty interfejs zastosowanie pól wyboru, pól zaznaczania, formularzy oraz przycisków ułatwiają administrację nawet najbardziej zaawansowanymi z pośród elementów systemu. Większość modułów jest dobrze opisana a dodatkowo, przy niektórych z nich dostępna jest obszerniejsza pomoc w lewym górnym rogu strony modułu. Moduły pogrupowane są w kategorie tematyczne w zakładki:
Sprzęt Administrowanie zasobami sprzętowymi serwera
Klaster Praca w środowisku serwera rozproszonego – cluster Inne Różnorodne moduły takie jak linia poleceń, zarządzanie plikami, logowanie do powłoki poprzez SSH, podgląd logów systemowych itp. Ze względu na znaczną liczbę modułów oraz ograniczony pod kątem spełnianych funkcji serwera zestaw uruchomionych usług, część modułów zostanie przedstawiona skrótowo. Moduły mające praktyczne zastosowanie na omawianym serwerze zostaną omówione obszerniej.

4.1 Moduły kategorii Webmin
Moduły te służą do konfiguracji opcji pracy narzędzia Webmin, lokalizacji innych serwerów Webmin w zarządzanej sieci, prezentacji dziennika korzystania z Webmin przez jego użytkowników.
Lista serwerów Webmina
Pozwala na wyszukanie serwerów Webmin w sieci ich dodanie i skonfigurowanie oraz podłączenie się przy wykorzystaniu tych ustawień Log pracy Webmina Obserwacja informacji o wykorzystaniu narzędzia (wymaga wcześniejszego włączenia logowania w Konfiguracji) Usermin Configuration Konfiguracja dostępu do modułów typowych dla zwykłych użytkowników serwera (wymaga zainstalowania pakietu Usermin)
Użytkownicy Webmina
Dodawanie, modyfikacja i usuwanie użytkowników i grup Webmin, zarządzanie dostępem do poszczególnych modułów, monitorowanie aktywnych sesji użytkowników oraz import i synchronizacja kont użytkowników systemowych z użytkownikami Wembin

4.2 Grupa Konfiguracja Webmina
Kontrola dostępu IP Ograniczanie dostępu do Webmin do pewnych adresów IP Porty i adresy Określenie portu i numeru IP (jeśli serwer ma ich wiele) na którym Webmin ma nasłuchiwać zleceń Logowanie Konfiguracja logowania działań przeprowadzanych przez użytkownika Webmin Serwer proxy Parametry serwera Proxy wymagane dla niektórych modułów, jeśli serwer znajduje się za firewall Interfejs użytkownika Opcje wyglądu interfejsu Moduły Webmina Instalacja, klonowanie i usuwanie modułów Webmin System operacyjny Wybór systemu operacyjnego, na którym działa Webmin Język Określenie języka, w jakim Webmin powinien się porozumiewać z użytkownikiem
Opcje strony indeksowej
Opcje wyglądu strony indeksowej Webmin Aktualizuj Webmina Aktualizacja pakietu Webmin poprzez Internet oraz aktualizacja modułów
Autoryzacja
Opcje uwierzytelniania użytkownika Webmin (PAM / plik haseł), autoryzacji sesji, zabezpieczenie w przypadku ataku typu brute force na login.
Przeklasyfikowanie
modułów Zmiana kategorii modułów Zmień kategorie Zmiany nazw i identyfikatorów kategorii Motywy Webmina Wybór motywu graficznego Webmin Zaufane odsyłacze Wprowadzanie zaufanych adresów hostów
Anonymous Module
Access Anonimowy dostęp do niektórych modułów Webmin Szyfrowanie SSL Opcje szyfrowania SSL połączenia, generowanie i zmiana parametrów klucza Centrum autoryzacji Określenie Centrum Autoryzacji i zarządzanie certyfikatami CA
Autoryzacja przez PAM
Zarządzanie usługami PAM (Pluggable Authentication Module) – dostęp programów do autoryzacji oraz sposób jej przeprowadzania poprzez wykorzystanie modułów PAM.
CD Backup
Moduły służące do przeprowadzania archiwizacji i odtwarzania zbiorów serwera ze wsparciem dla nagrywania kopii bezpieczeństwa na płycie CDR. Dokumentacja Systemu Poszukiwanie podanych słów kluczowych w dokumentacji zbiorach systemowej oraz wyszukiwarce internetowej Gogle.
Działające procesy
Moduł przedstawiający listę aktualnie uruchomionych procesów (numer PID, właściciela, wykorzystanie zasobów serwera oraz polecenie użyte do uruchomienia procesu). Możliwość sortowania (grupowania) według numeru PID, właściciela procesu, wykorzystanej pamięci i czasu procesora. Dodatkowo opcja wyszukiwania procesów według różnych kategorii oraz uruchomienia nowego procesu. Filesystem Backup Moduł wykonywania kopii bezpieczeństwa systemu plików oraz jej odtworzenia.
Harmonogram zadań crona
Zarządzanie (tworzenie, edycja i usuwanie zadań) tablicą zadań wykonywanych okresowo przez proces cron a także edycja opcji dostępu użytkowników do cron.
Konfiguracja inita (System V)
Dodawanie, edycja i usuwanie procesów uruchamianych podczas startu systemu jak i jego działania przez proces init (wygodna edycja na podstawie formularzy WWW systemowego pliku /etc/inittab).
Logi systemowe
Operowanie na logach systemowych procesu syslog – dodawanie, zmiana parametrów, usuwanie, przeglądanie dzienników systemowych.
Lokalne i sieciowe systemy plików
Zarządzanie oraz montowanie i demontowanie systemów plików w lokalnym drzewie systemu plików serwera.
MON Sernice Monitor Konfiguracja, obserwowanie działania i administracja pakietem MON (wymaga zainstalowania). Pakiety oprogramowania Poszukiwanie, instalacja, usuwanie i informacja o pakietach oprogramowania.
Quota na dyskach Włączanie, wyłączanie oraz edycja parametrów ograniczeń na dostępną dla użytkowników i grup przestrzeń dyskową serwera
Security Services
Konfiguracja pakietów detekcji ataków na serwer(skanowanie potrów – portsentry, prób nieautoryzowanego logowania do systemu – hostsentry oraz analizę podejrzanych zapisów w dziennikach systemowych – logcheck).
Start i zamykanie systemu
Zarządzanie serwisami uruchamianymi przy starcie systemu (daemon), zmiana trybu działania systemu operacyjnego (runlevel), restart oraz zatrzymanie działania serwera. System archiwizacji Archiwizacja i odtwarzanie zbiorów za pomocą narzędzia tar oraz gzip.
Użytkownicy i grupy
Zarządzanie użytkownikami i grupami, możliwość wykorzystania pliku wsadowego. Podgląd efektów logowań do systemu wybranego użytkownika. Zlecone polecenia Utworzenie jednokrotnego polecenia do wykonania w zaplanowanym czasie. Zmiany haseł Zmiana hasła dla wybranego użytkownika. isdn4linux control Konfiguracja pakietu odpowiedzialnego za komunikację w sieci standardu ISDN (jeśli jest zainstalowany)

4.3 Moduły kategorii Serwery
Kategoria ta grupuje, moduły do administracji i konfiguracji serwerowych programów usługowych.
CVS Server
Calamaris Log Reports Raport wykorzystania serwera proxy Squid – wymaga zainstalowania pakietu calmaris.
Jabber IM Server Konfiguracja serwisu Instant Messaging – Jabber Konfiguracja Postfiksa Konfiguracja serwera pocztowego (MTA) Postfix Konfiguracja Sendmaila Edycja parametrów serwera pocztowego (MTA) Sendmail Netatalk Apple File/Print Sharing Konfiguracja Netatalk współdzielenia plików i drukarek z systemami firmy Apple OpenLDAP server Administracja serwera LDAP (Lightweight Directory Access Protocol) – daemon slapd OpenSLP Server Konfiguracja SLP (Service Location Protocol) - slpd Pobieranie poczty przez fetchmaila Opcje programu fetchmail – pobieranie poczty z wielu kont pocztowych (POP3, IMAP4) Procmail Mail Filter Zarządzanie filtrami poczty i regułami przekazywania poczty dla procmail QMail Configuration Ustawienia serwera pocztowego (MTA) Qmail Serwer DHCP Konfiguracja usługi DHCP (Dynamic Host Connection Protocol), podgląd aktywnych dzierżaw DHCP.
Serwer DNS BIND Administracja usługą nazw domen DNS (Domain Name Server) – serwer Bind
Serwer DNS BIND 4 Zarządzanie usługą nazw domen DNS (Domain Name Server) – serwer Bind wersja 4
Serwer ProFTP Parametry serwera FTP – Pakiet ProFTP
Serwer SSH Konfiguracja usługi SSH
Serwer WU-FTP Opcje serwera FTP – Pakiet ProFTP
Serwer WWW Apache Ustawienia serwera WWW – pakiet Apache
Serwer baz danych MySQL Edycja ustawień Bazy Danych MySQL
Serwer baz danych Postgre-
SQL Konfiguracja Bazy Danych PostgreSQL
Serwer list dyskusyjnych Majordomo
Zarządzanie serwerem grup dyskusyjnych – pakiet Majordomo
Serwer proxy Squid Konfiguracja serwera WWW Proxy - Squid
SquidGuard Opcje pakietu filtrującego żądania http na poziomie WWW Proxy
Udostępnianie dla Windows przez Sambę
Zarządzanie serwerem SMB – Samba – udostępnianei plików i drukarek w Windows
Wap gateway Konfiguracja translatora Wap – http – pakiet Kennel Webalizer Logfile Analysis Opcje pakietu Webalizer – tworzącego wykresy w html ze statystykami np. obciążenia serwera WWW

4.4 Moduły kategorii Sieć
Kategoria ta zawiera moduły konfiguracji sprzętu sieciowego, zabezpieczeń, narzędzi diagnostyki sieci oraz usług sieciowych będących częścią systemu operacyjnego.
FreeS/WAN VPN Zarządzanie narzędziem szyfrowania i enkapsulacji dla wirtualnych sieci prywatnych (VPN)
Klient i serwer NIS
Opcje serwera oraz klienta NIS/YP (Network Information Server/ Yellow Pages) – uwirzytelnianie użytkowników w sieci. Konfiguracja sieci Ustawienia interfejsów sieciowych, routingu oraz bram, klienta DNS i adresów hostów Linux Firewall Konfiguracja Firewala opartego o iptables NetSaint Configuration Konfiguracja pakietu monitorującego sieć - NetSaint
Network Utilities
Dostęp do programów diagnostyki sieciowej oraz informacji o sieci: ping, traceroute, lookup, nmap, whois, dig oraz kalkulator maski podsieci PPP Dialin Server Ustawienia związane z odbieraniem I obsługą połączeń modemowych PPP Rozszerzone usługi internetowe Zarządzanie dodatkowymi usługami internetowymi - serwer xinetd (np. pop3, echo, imap, time) SSL Tunnels Edycja szyfrowania połączeń i ich tunelowania narzędziem Stunnel Udostępnianie po NFS Udostępnianie zasobów plikowych w sieci za pomocą protokołu NFS (Network File System)

4.5 Moduły kategorii Sprzęt
W tej grupie znajdują się moduły dotyczące urządzeń peryferyjnych, logicznego podziału przestrzeni dyskowej oraz rozruchu systemu.
CD Burner Tworzenie obrazów ISO oraz nagrywanie płyt CDR za pomocą programu cdrecord Czas systemowy Ustawienia czasu systemowego oraz sprzętowego, synchronizacja zegarów z internetowymi serwerami czasu Konfiguracja startu Linuksa Konfiguracja rozruchu - bootmanagera (lilo), wybór partycji oraz startowego jądra systemu Logical Volume Management Organizacja przestrzeni logicznych za pomocą narzędzi LVM
Partycje na lokalnych dyskach
Administrowanie partycjami, systemami plików, montowanie demontowanie, tworzenie i formatowanie partycji, strojenie parametrów dysków. RAID w Linuksie Zarządzanie macierzami dyskowymi RAID
Voicemail Server Edycja opcji poczty głosowej / automatycznej sekretarki Zarządzanie drukarkami Konfiguracja drukarek – pakiet CUPS

4.6 Moduły kategorii Klaster
Moduły te usprawniają zarządzanie i konfigurację klastrem.
Moduł Opis funkcji modułu
Cluster Software Packages Zarządzanie pakietami oprogramowania na serwerach klastra przy pomocy jednego interfejsu Cluster Users and Groups Administracja kontami użytkowników i grup na wielu serwerach klastra przy pomocy jednego interfejsu Cluster Webmin Servers Edycja ustawień narzędzia Webmin dla wielu serwerów klastra jednocześnie Configuration Engine Konfiguracja klastra - cfengine Heartbeat Monitor Monitorowanie pracy klastra

4.7 Moduły kategorii Inne
Batch Apache Host Addition Wsadowe dodawanie wielu domen wirtualnych dla serwera WWW Apache Batch DNS Domain Addition Wsadowe dodawanie domen DNS (master, slave) dla Bind Download Pobieranie zbiorów z sieci za pomocą narzędzia wget File Upload Przesyłanie zbiorów na serwer zdalny Front Page 2000 Admin Konfiguracja rozszerzenia Frontpage 2000 do Apache Gehrigal Theme Configurator Edycja motywów graficznych Webmin
LDAP Browser Przeglądarka LDAP
LDAP Manager Zarządzanie LDAP
LDAP users and group administration
Administracja użytkownikami I grupami LDAP
Linia poleceń Linia poleceń powłoki systemowej
Log Viewer Podgląd parametrów pracy serwera oraz dzienników systemowych z aktualnego oraz poprzedniego tygodnia
Logowanie przez SSH/Telnet Połączenie z serwerem porpzez SSH lun Telnet – applet
JAVA
Moduły Perla Instalacja moduów Perl
SA-Configurator Konfiguracja ShopAdmin
SSH Login Podłączenie się do serwera przez konsolę SSH
Stan systemu i serwerów Monitorowanie usług sieciowych (daemons) serwera, jego zasobów i połączeń
VNC Client Klient (VNC) Virtual Network Computing – śledzenia pulpitu odległych maszyn
Vacation Admin Automatyczna odpowiedź na pocztę przychodzącą do użytkownika komunikatem o jego urlopie Wybrane polecenia Zarządzanie I uruchamianie poleceń użytkownika – skrypty, programy uruchamiane jednym przyciskiem
Zarządzanie plikami
Applet JAVA pozwalający na zarządzanie systemem plików serwera – tworzenie usuwanie, modyfikacja, zmiana atrybutów i właściciela plików i katalogów. Przesyłanie plików na serwer oraz pobieranie plików z serwera rinetd configuration / administration
Konfiguracja przekierowań połączeń rinetd


5 NAJCZĘŚCIEJ WYKORZYSTYWANE MODUŁY
Do modułów najczęściej wykorzystywanych w administrowaniu systemem należą: Użytkownicy i grupy (dodawanie i usuwanie), Serwer WWW Apache (wirtualne serwery), Logi systemowe – w celu przejrzenia, Linia poleceń lub Wybrane polecenia w razie zerwania połączenia z Internetem, okresowej automatycznej aktualizacji pakietów, Zarządzanie plikami przy mniej czasochłonnych operacjach w systemie plików oraz umieszczaniu lub pobieraniu zbiorów z dowolnego miejsca systemu plików serwera, SSH Login przy konieczności wykonania działań niewspieranych przez gotowe moduły Webmin.

6 PODSUMOWANIE
System zarządzania bazujący na interfejsie Web jest uniwersalny a przy tym prosty i przejrzysty, w większości przypadków szybszy w konfiguracji parametrów dzięki wykorzystaniu formularzy i przełączników nie jest wymagana składnia plików konfiguracji każdego z wielu elementów systemu serwera Unix. Ponadto narzędzie to oferuje dobre i proste do skonfigurowania zabezpieczenia, przy tym znacznie ułatwiając zdalną administrację serwerem.