Администриране на мрежа от Ubuntu компютри чрез уеб интерфейс
Не толкова отдавна се захванах с доста труден, дълъг и, както се оказа, не напълно осъществим проект за прехвърляне на корпоративната информационна инфраструктура от безсървърна мрежа на Windows peer-to-peer към централно управлявана Ubuntu мрежа.
По време на процеса на превод бяха преструктурирани: потребителски работни места, примитивен файлов сървър, интернет шлюз, сървър за приложения (най-вероятно така го наричам, но всъщност този термин означава нещо друго, но тогава ще стане ясно защо го нарекох така, надявам се). В комбинация с някои насоки и "съвети" от ръководството как да работите на "новата" система, резултатът е доста лесна за администриране система. На компютрите на потребителите - Ubuntu 10.04 и стандартен набор от програми - архиватори, кодеци, четци на документи, преводач, браузъри, Skype, клиент за отдалечен работен плот Remmina. Използвайки протокола RDP, потребителите се свързват към терминалния сървър на Windows 2003 (който нарекох сървър на приложения по-горе) и в терминални сесии работят с приложения, които се оказаха не толкова лесни за замяна с аналози от света на Ubuntu: 1C-счетоводство, Liga-law клиент, MS Office, Me-doc, някои клиентски банки. Интернет на сървъра на приложения е забранен и затворен от защитна стена. Наборът от директории с разрешения за запис и изпълнение за всеки потребител (група, ако има няколко) е ясно ограничен. За растеж на файлове от всеки потребител се разпределя 1-2 GB пространство на дисковете, а главният файлов сървър се поставя на отделен примитивен файлов сървър на Ubuntu и се конфигурира samba. Всеки потребител в samba има лична директория и директория с възможност за запис за всяка двойка потребители. Файловият сървър и сървърът на приложения имат едни и същи потребителисъщите пароли, на всеки от компютрите на потребителя има само един потребител и администратор. Това прави възможно прикачването на директории, споделени на файловия сървър, към сървъра на приложения като мрежови устройства (тези устройства са различни за всеки потребител на сървъра на приложения) и монтиране на тези директории на локалните компютри на потребителите чрез файла fstab. Шлюзът работи успешно с FreeBSD, който е конфигуриран с ipfw, natd, squid, sams, dhcpd.
И така, в процеса на настройка и управление на получената мрежа от компютри с Ubuntu, много често трябва да изпълнявам едни и същи задачи като настройка, изтриване на потребител на сървъра и на локалния компютър на потребителя, създаване и изтриване на споделени директории на сървъра и свързването им на компютрите на потребителите, наблюдение на уместността на версиите на приложенията, инсталирани от потребителите, повтарящо се стартиране, спиране и рестартиране на различни услуги на сървъра и на компютрите на потребителите, редактиране на шаблони на същата конфигурация gs, като цяло всичко, което се прави след ssh admin@remotePC. В търсене на автоматизация на всички тези рутинни действия беше намерен Webmin, но за съжаление или не разбрах как да го използвам, за да управлявам всичко необходимо на сървърите и компютрите на потребителите, или Webmin все още не знае как да направи това. Всъщност не исках да използвам отделни скриптове, които се намират в много различни форуми, така че след кратък размисъл измислих свой собствен начин да опростя повечето от задачите, изпълнявани при администриране на моята мрежа, и да го направя достъпен дори за секретаря.
2. Един и същи администраторски потребител се създава на всички компютри в мрежата.
3. Генерира се двойка ключове за достъп без парола чрез ssh от сървъра, където е инсталиран apache, към всеки компютър в локалната мрежа.
4. След това във файла /etc/sudoers на всеки локален компютър трябва да добавите редоветеtype: admin ALL = (ALL) NOPASSWD: ALL - това ще премахне заявката за потвърждаване на членство в групата на суперпотребител и ще премахне необходимостта от използване на очаквани скриптове.
5. Виртуален хост се настройва в apache, където се затваря сайт с бутони, като echo 'ssh admin@remotehost 'sudo service smbd restart'' или echo 'ssh admin@remotehost 'sudo apt-get upgrade'' и други, добавени и програмирани според нуждите. получаваме за всяко устройство, което има интернет и уеб браузър, възможността да управлява сървърни и локални компютърни услуги, техните конфигурации, монтиране и демонтиране на файлови системи и като цяло всичко, което е позволено да се прави чрез ssh - т.е. всеки! Остава само да създадем база данни на нашите потребители и компютри и да програмираме необходимите функции чрез натискане на бутоните на нашия примитивен административен сайт. И е желателно да конфигурирате достъпа до администраторския сайт с помощта на ssl, за по-голяма вярност.
И тук можете да получите грант за тестов период на Yandex.Cloud. Необходимо е само да въведете "Habr" в полето "секретна парола".