Webmin je aplikace vytvořená v jazyce Perl, která poskytuje webové rozhraní sloužící ke zjednodušení a vizualizaci správy operačního systému především Unixového typu a serverových aplikací. Zakládajícím vývojářem je Jamie Cameron, který v současnosti pracuje ve společnosti Google Inc. v USA. První verze, Webmin 0.1 byla uveřejněna 3. Října 1997.[2]
Správa Linuxového či Unixového systému není triviální záležitostí a vyžaduje znalosti a zkušenosti. Ačkoliv je práce s příkazovou řádkou účinná a rychlá, z počátku se může jevit složitě z důvodu nedostatku vizuálních pomůcek. Tento problém se snaží Webmin překlenout nabídnutím vizuálního rozhraní pro správu jednotlivých služeb a serverů. Správce operačního systému tedy nemusí znát žádné linuxové příkazy. Poskytnuté rozhraní je přístupné přes HTTP protokol, je tedy dostupné téměř kdekoliv a jediným softwarem, který vyžaduje k zobrazení rozhraní je moderní webový prohlížeč. Webmin je tvořen webovým serverema oddělitelnými moduly, které mají za úkol vykonávat jednu konkrétní činnost. Jeho primárním úkolem je usnadňovat správu jednoho serveru. Vývojáři Webminu navíc vyvíjejí i verzi pro obyčejné uživatele, kteří nemájí zájem o spravování operačního systému, nese název Usermin a mezi hlavní funkce patří přístup do e-mailové schánky, změnu hesel nebo například stahování souborů z poskytnuté URL.[3]
Pro správu velkého množství virtuálních serverů vývojáři Webminu poskytují modul Virtualmin, který umožňuje spravovat všechny zvolené virtuální servery přes jednotné rozhraní a vytvořit pro každý server samostatné rozhraní Webmin.[4] Dalším rozhraním pro správu virtuálních serveru je Cloudmin, které umožňuje správu instancí virtuálních systémů založených na technologiích XEN, KVM a OpenVZ. Cloudmin je určen zejména hostingovým společnostem, které pronajímají virtuální servery.[5] Všechna zmíněná rozhraní jsou dostupná zdarma pod licencí GNU GPL. Virtualmin a Cloudmin jsou navíc dostupné v komerční verzi, která obsahuje funkce nezahrnuté ve verzi poskytované zdarma.
Webové rozhraní Webmin je dostupné pro široké spektrum OS systému, nejen Linuxového/Unixového typu. Je možné jej v omezené míře využít například i ke správě operačního systému Microsoft Windows. Na oficiálních stránkách jsou k dispozici podrobné popisy instalace Webminu na OS podporující balíčkovací systém RPM (např. RedHat) a APT (např. Debian). Dále jsou zde též obsaženy návody pro instalaci na Solaris a Windows. V případě kompilace ze zdrojového kódu je možno nainstalovat Webmin na libovolný z 94 podporovaných operačních systémů, jejichž seznam je též k nahlédnutí na oficiální stránkách programu.[10]
Instalace na Ubuntu je velmi podobná. Na rozdíl od instalace na Debian nás však může očekávat chybové hlášení o nenalezených balících po pokusu o jejich instalaci. Před spuštěním instalace balíčků je nutno v Ubuntu povolit repozitáře Universe odkomentováním řádků končících tímto slovem v souboru zdrojů:
Webmin je též možno instalovat přímo z repozitářů. Do souboru sources.list přidáme následující repozitáře:
Moduly jsou oddělené prvky webového rozhraní Webmin. Každý modul zastává konkrétní funkci pro kterou je určen. Je možno moduly dle potřeb odebírat i přidávat. Webmin standardně po instalaci obsahuje 113 základních modulů rozdělených do 8 kategorií: [11]
Kromě 113 zmíněných modulů je možno využít moduly tvořené komunitou.
Moduly je možno přidávat zkopírováním jejich zdrojového kódu do příslušných adresářů Webminu (viz kapitola vývoj vlastního modulu), nebo jejich instalací přímo z rozhraní Webmin pomocí modulu „Konfigurace Webminu“ a jeho funkce „Moduly Webminu“.
Funkce umožňuje instalaci nových modulů z lokálního souboru (souboru uloženého na serveru), ze staženého souboru, který je uložen na pevném disku počítače uživatele Webminu, stáhnutím ze zadaného URL pomocí FTP nebo HTTP, z balíčku poskytovaného přímo od vývojářů Webminu a instalaci modulů třetích stran z předpřipraveného repozitáře.
Modul nám navíc umožňuje zvolit ignorování závislostí instalovaných modulů a automatické přidělení práv uživatelům a skupinám.
Vlastní modul je možno vyvíjet v libovolném jazyce, avšak aby modul mohl bezproblémově přistupovat k webmin API, je vhodné využít jazyka Perl verze 5.8 a vyšší.
Každý modul je uložen ve svém vlastním podadresáři k hlavnímu adresáři Webminu. Adresu hlavního adresáře Webminu je možno pod Debianem zjistit z konfiguračního souboru miniserv.conf
a položky root. (viz kapitola Instalace Webminu)
module.info - Meta-informace o modulu a OS na kterém je provozován. Soubor obsahuje informace o OS na kterém je modul použitelný, kategorii v které je modul zařazen a verzi modulu.
lang/en – Textové informace používané modulem v příslušném jazyce, pro jazyk Český použijeme pojmenování souboru „cz“.
Informace jsou v souboru strukturovány následujícím způsobem:
index.cgi – Úvodní stránka modulu, obsahuje již samotný zdrojový kód modulu napsaný v jazyce Perl.
Doporučuje se používat i obrázkový soubor:
images/icon.gif – Ikona, která se bude zobrazovat v hlavním menu. Její rozměry by měli být 48x48 pixelů. Zobrazuje se pouze v některých šablonách vzhledu Webminu.
Veškeré funkce, které CGI program volá by měli být umístěny v souboru, jenž ponese stejný název jako modul, navíc však přidáme postfix –lib[1] [9] , například vlastnimodul-lib.pl. Před použitím nově vytvořeného modulu, je nutno smazat soubor module.infos.cache, který se nachází na adrese:
Pro přihlášení do Webminu se využívají účty, které mohou být volitelně shodné s účty pro přihlášení do operačního systému. Modul pro správu uživatelů a skupin Webminu je standardně umístěn v kategorii „Webmin“, je pojmenován „Uživatelé Webminu“.
Ve vrchní tabulce jsou zobrazeni Webmin uživatelé, nového uživatele můžeme přidat ručně, pomocí funkce „Vytvořit nového uživatele“, nebo převodem uživatele operačního systému na uživatele Webminu pomocí funkce „Převést Unix uživatele na Webmin uživatele“. Modul umožňuje i funkci automatické synchronizace UNIX uživatelů s uživateli Webminu. Ukládat uživatelské účty do databází typu MySQL, a PostgreSQL nebo pomocí protokolu LDAP (Lightweight Directory Access Protocol, položky jsou ukládány ve formě záznamů s atributy do stromové struktury). Nastavit omezení pro tvorbu hesel a zobrazit relace aktuálně přihlášených uživatelů. Na systému Solaris umožňuj využít systém RBAC (role-based access control), který je založen na přidělování oprávnění v závislosti na rolích.
Abychom si usnadnili tvorbu uživatelů ručním způsobem, můžeme si vytvořit skupinu, která bude pokrývat společné nastavení vybraných uživatelů. Skupina nám umožňuje nastavit možnost použití konkrétních modulů pro uživatele ve skupině. Zároveň je možno skupině přidělit skupinu nadřízenou, z které vytvářená skupina převezme nastavení. Převzaté nastavení je možno doplnit.
Ruční přidávání Webmin uživatelů je rozděleno do 5 kroků:
V prvním kroku nastavíme zákaldní uživatelské údaje, jméno uživatele, skupinu, do které jej chceme zařadit, heslo pod kterým se bude přihlašovat a jeho skutečné jméno. Heslo je možno nastavit tak, aby se pokaždé převzalo z přihlašovacího účtu do operačního systému. (Pouze v případě, že uživatel v OS již má účet).[6] (viz kapitola autentifikace)
V druhém kroku je podstatná volba nastavení jméno SSL certifikátu, který má být využit k přihlašování uživatele.
Krok třetí „Volba zabezpečení a dalších omezení“ slouží k omezení doby, kdy je uživateli umožněno se do Webminu přihlásit. V předposledním kroku je možno vybrat moduly, k jejichž využívání bude uživatel oprávněn. Moduly, které zůstanou nevybrány uživatel neuvidí.[12]
V poslední části nastavíme uživateli viditelné adresáře v souborovém manažeru Webminu, zda mají být viditelné soubory s tečkou, které jsou v Linuxu standardně neviditelné (např. .htaccess), zda se mají soubory vypisovat pod účtem, přes který získává informace Webmin nebo přes jiný Linuxový účet.
Poslední volbou, jejíž princip nemusí být z názvu zřejmý je „ Lze akceptovat RPC volání“. RPC (Remote procedure call) klient může přistoupit přes Webmin k vzdálenému počítači, vždy jsou mu však přidělena všechna práva, je tedy vhodné tuto volbu povolit pouze uživatelům s všemi právy v místním systému.[12]
Pro správu uživatelů a skupin operačního systému má Webmin vyhrazen modul „Uživatelé a skupiny“ z kategorie „Systém“.
Hlavní stránka modulu obsahuje dvě záložky, první pro správu uživatelů a druhou pro správu skupin.
Na úvodní stránce modulu jsou vypsáni uživatelé OS.
Pomocí funkce „Vytvořit nového uživatele“ vyvoláme formulář s položkami rozdělenými do 4 částí.
V následujícím kroku je možno nastavit uživateli primární a sekundární skupinu.
Primární skupina bude vlastnit soubory a procesy vytvořené tímto uživatelem. Uživatel bude mít práva pro přístup k souborům, která jsou přidělena této skupině.
Sekundární skupina pouze určuje přístupová práva k souborům. Soubory vytvořené uživatelem, který má nastavenou některou ze sekundárních skupin této skupině patřit nebudou.
V posledním kroku uživateli nastavíme, zda se má domácí (/home/uživatel) adresář přesunout či přejmenovat při úpravách uživatele. Poslední část zajišťuje synchronizaci účtů a modulů.
Po přepnutí na záložku skupin se zobrazí výpis uživatelských skupin operačního systému.
Funkce „Vytvořit novou skupinu“ zobrazí formulář rozdělený do dvou kroků.
V prvním kroku vyplníme detaily o skupině, její jméno, ID, heslo a přiřadíme skupině její členy. V druhém kroku je pouze výběr, zda se májí změny ve skupině synchronizovat s ostatními moduly. Tato volba umožňuje například synchronizaci Linuxového listu uživatel s listem uživatelů Samby.
K ověření identity využívá Webmin následujících způsobů:
Pokud je vybrána volba „Sledovat blokované hosty, chyby při přihlášení a autentifikaci na syslog“ dochází k odeslání informací o chybných přihlašovacích pokusech do systémových záznamů (logů).
Volba „autentifikace relací“ stanovuje, zda má Webmin uživatele vyzvat k zadání přihlašovacích údajů vlastním dialogem a výsledek přihlášení uložit do cookies nebo zda se má uživatel přihlásit standardní HTTP autentifikací.
Zdroj: vlastní
Další důležitou položkou nastavení je „Použít PAM pro UNIX autentifikace, je-li to možné“. Pokud má Webmin uživatel nastavenou autentifikaci přihlašovacími údaji do UNIXu (viz kapitola správa uživatelů webminu), může být jeho přihlašovací jméno vyčteno ze souboru /etc/passwd a heslo z /etc/shadow nebo za využití PAM autentifikace. Povolením této volby se starost o autentifikaci přenáší na systém modulů pojmenovaný PAM, který skrze poskytované API umožňuje využít autentifikaci do Webminu UNIXovým účtem. Variantu přihlašování s využitím PAM (Pluggable Authentication Modules) však musí podporovat OS na kterém je Webmin provozován a musí v něm být nainstalované příslušné knihovny (libpalm), většina moderních distribucí však má podporu PAM již předinstalovánu. [8]
Webmin navíc poskytuje i autentifikaci stylu SQUID, kde autentifikaci provádí externí program. Do vstupního pole vyplníme cestu k programu včetně použitých parametrů. Program musí pracovat na principu SQUID externího autentifikátoru.[8]
Webmin je kvalitní aplikací pro správu operačního systému Unixového typu a serverových aplikací bez znalostí příkazů. Je vhodný zejména jako pomůcka pro začínající správce, ačkoliv obsahuje volby pro nastavení většiny potřebných služeb, je práci s ním pomalejší než práce přes příkazovou řádku.
Oproti ostatním obdobným systémům poskytovaným zdarma má výhodu v početné uživatelské komunitě a velkého množství rozšíření ve formě modulů, jejichž tvorba nní složitá. Uživatel si tedy bez větších problémů může vytvořit modul pro konfiguraci požadované služby sám.