Webmin е един от популярните уеб базирани интерфейси за системно администриране за Unix. Можем да управляваме системните услуги с помощта на подходящите модули Webmin. Популярните и официални модули, налични за Webmin, включват cron, bind8, apache, mysql, dovecot, postfix, postgrey, fail2ban и syslog. Можем да инсталираме тези модули въз основа на действителните нужди и да управляваме свързаните услуги от самия Webmin, без да използваме обвивката. Webmin улеснява администрирането на системата с помощта на графичния интерфейс. Най-новата версия на Webmin по време на писането на този урок е 1.930. Ние ще инсталираме същото като част от този урок.
Този урок предоставя стъпките, необходими за инсталиране на Webmin на популярната Linux дистрибуция Ubuntu и достъп до него чрез Apache, като го конфигурирате като обратен прокси. По този начин ще инсталираме Webmin и ще имаме достъп до него чрез Apache през стандартните HTTP/HTTPS портове. Той предоставя всички стъпки, необходими за инсталиране и използване на Webmin на Ubuntu 18.04 LTS. Стъпките трябва да са подобни за други Linux системи и версии на Ubuntu.
Можете също да следвате съответните уроци, включително как да инсталирате Apache 2 на Ubuntu 18.04 LTS, да конфигурирате виртуален хост на Apache и как да инсталирате Let’s Encrypt за Apache на Ubuntu.
Ubuntu сървър – имате root достъп или разрешения да използвате sudo на Ubuntu сървъра, за да продължите с този урок.
Apache Web Server – Предполага се, че Apache вече е инсталиран в системата и е конфигуриран правилно за достъп до виртуалния хост чрез името на домейна. Може лесно да се направи на вашата локална система, в случай че имате статичен IP адрес. Можете също да следвате Как да инсталирате Apache 2 на Ubuntu 18.04 LTS, за да инсталирате уеб сървъра Apache.
Защитна стена – Уверете се, че портовете 80 и 443 са отворени.
Домейн – Трябва също да притежавате домейн, за да продължите с този урок. Предполага се, че записът на домейна е конфигуриран за сървъра и сочи към правилния IP адрес.
Модули на Apache – Като част от този урок се уверете също, че подходящите модули на Apache са активирани, както е показано по-долу.
# Enable rewrite modulesudo a2enmod rewrite# Enable SSL modulesudo a2enmod ssl# Enable Proxy modulesudo a2enmod proxy_http# Рестартиране на Apachesudo systemctl рестартиране на apache2В този раздел ще добавим виртуалния хост и ще го активираме за достъп до приложението чрез домейна. Можете да пропуснете тази стъпка, в случай че вече имате активен уебсайт или приложение, достъпно от браузъра чрез името на домейна.
Добавете и актуализирайте виртуалния хост към уеб сървъра на Apache, както е показано по-долу. Използвал съм нано редактора за демонстрационни цели. Можете да използвате всеки редактор по ваш избор. Освен това заменете example.com с действителния домейн. Създайте директорията /var/www/example.com/html, за да съхранявате файловете на уебсайта или приложението, и /var/www/example.com/logs за специфични регистрационни файлове на уебсайта.
# Добавете виртуален хостsudo nano /etc/apache2/sites-available/example.com.conf# ContentServerName example.comServerAlias www.example.comServerAdmin admin@example.comDocumentRoot /var/www/example.com/htmlOptions -Indexes +FollowSymLinksDirectoryIndex индекс. htmlAllowOverride AllRequire all grantedErrorLog /var/www/example.com/logs/error.logCustomLog /var/www/example.com/logs/access.log combination# Запазете и излезте от редактораЗапазете файла с помощта на текстовия редактор Nano като натиснете CTRL + O, след което натиснете Enter, за да напишете файла. Натиснете CTRL + X, за да затворите редактора. Сега активирайте виртуалния хост, както е показано по-долу. Уверете се, че директорията /var/www/example.com/html и /var/www/example.com/logs съществува.
# Създайте директорииsudo mkdir -p /var/www/example.com/htmlsudo mkdir -p /var/www/example.com/logs# По избор деактивирайте конфигурацията по подразбиране sudo a2dissite 000-default# Тествайте конфигурациятаsudo apache2ctl configtest# OutputSyntax OK# Активирайте виртуалния хостsudo a2ensite example.com# OutputEnabling site example.com.За да активирате новата конфигурация, трябва да изпълните:systemctl reload apache2# Test configurationsudo apache2ctl configtest# OutputSyntax OK# Reload Apachesudo systemctl reload apache2Сега добавете файла index.html с съдържание, както е показано по-долу.
# Добавете index.htmlsudo nano /var/www/example.com/html/index.html# ContentMy DomainДобре дошли в Моят домейн.
# Запазете и излезте от редактораАко домейнът ви сочи правилно към вашата система, трябва да имате достъп до него от браузъра, като отидете на http://www.example.com/index.html. Трябва да показва резултата от нашия прост HTML файл – Добре дошли в моя домейн.
В този раздел ще инсталираме най-новата версия на Certbot, използвайки официалното хранилище. Можете да деинсталирате предишната инсталация на Certbot, като използвате командите, както е показано по-долу.
# Деинсталирайте Certbotsudo apt премахване на python-certbot-apachesudo apt премахване на certbotsudo apt purge certbotsudo apt-get autoclean# Уверете се, че използвате purge - това ще изчисти всички конфигурационни файловеsudo apt-get autoremove# ИЛИsudo apt-get --purge autoremoveСега ние ще добавим официалното хранилище към системните хранилища. Може да се направи с помощта на командите, както е показано по-долу.
# Добавяне на Certbot repositorysudo add-apt-repository ppa:certbot/certbot# Натиснете Enter, за да потвърдите Това е PPA за пакети, подготвени от Debian Let's Encrypt Team и пренесени за Ubuntu(s). Повече информация: https://launchpad.net/~certbot/+archive/ubuntu/certbot Натиснете [ENTER], за да продължите или Ctrl-c, за да отмените добавянето му.......Сега опреснете индекса на пакетите, като използвате команда, както е показано по-долу.
# Refresh packages indexsudo apt-get updateМожем да инсталираме Certbot с помощта на командата, както е показано по-долу.
# Инсталирайте Let's Encryptsudo apt-get install python-certbot-apache# Резултати от инсталацията......Настройване на python3-certbot-apache (0.31.0-1+ubuntu18.04.1+certbot+1) ...Настройване на python -certbot-apache (0.31.0-1+ubuntu18.04.1+certbot+1) ... Тригери за обработка за systemd (237-3ubuntu10.29) ... Тригери за обработка за man-db (2.8.3-2ubuntu0.1 ) ... Тригери за обработка за ufw (0.36-0ubuntu0.18.04.1) ... Тригери за обработка за ureadahead (0.100.0-21) ... Тригери за обработка за libc-bin (2.27-3ubuntu1) ...Можем да потвърдим инсталацията, като проверим версията на Certbot, както е показано по-долу.
# Проверка на Certbot версияcertbot --version# Outputcertbot 0.31.0Ето как можем да изчистим съществуващата инсталация на Certbot и да инсталираме най-новата му версия в системата.
В тази стъпка ще инсталираме SSL сертификата и защитен виртуален хост. Може да се направи с помощта на командата, както е показано по-долу.
# Инсталиране на сертификат - Синтаксис - Единичен домейнsudo letsencrypt --apache -d--email # Инсталиране на сертификат - Синтаксис - Множество домейниsudo letsencrypt --apache -d ,, --email # Examplesudo letsencrypt --apache -d example.com,www. example.com --email admin@example.com# Съгласен - Натиснете A и Enter - Само за първи път Записване на журнал за отстраняване на грешки в /var/log/letsencrypt/letsencrypt.log Избрани добавки: Authenticator apache, Installer apache- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Моля, прочетете Условията за ползване на адрес https://letsencrypt.org/documents/LE- SA-v1.2-ноември-15-2017.pdf. Трябва да се съгласите, за да се регистрирате в сървъра на ACME на адрес https://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)cancel: A# Споделяне на имейл за комуникация - Натиснете Y и Enter- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Бихте ли искали да споделите имейл адреса си с Electronic Frontier Foundation, партньор-основател на проекта Let's Encrypt и не -организация с печалба, която разработва Certbot? Бихме искали да ви изпратим имейл за нашата работа по криптиране на мрежата, новини от EFF, кампании и начини за подкрепа на цифровата свобода.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(Y)es/(N)o: Y# Изберете опции за пренасочване - пренасочване Моля, изберете дали да пренасочвате HTTP трафик към HTTPS, премахвайки HTTP достъпа.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1: Без пренасочване - Не правете повече промени в уеб сървъра конфигурация.2: Пренасочване - Направете всички заявки пренасочени за защитен HTTPS достъп. Изберете това за нови сайтове или ако сте сигурни, че вашият сайт работи на HTTPS. Можете да отмените тази промяна, като редактирате конфигурацията на вашия уеб сървър.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Изберете съответния номер [1-2] и след това [въведете] (натиснете 'c' за отмяна): 2# Сертификатът е инсталиран успешно Поздравления! Вие успешно активирахте https://example.com. Трябва да тествате конфигурацията си на: https://www.ssllabs.com/ssltest/analyze.html?d=example.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ВАЖНИ БЕЛЕЖКИ: - Поздравления! Вашият сертификат и верига са запазени на: /etc/letsencrypt/live/example.com/fullchain.pem Вашият ключов файл е записан на: /etc/letsencrypt/live/example.com/privkey.pem Вашият сертификат ще изтече на 2020-01-01. За да получите нова или променена версия на този сертификат в бъдеще, просто стартирайте certbot отново с опцията „certonly“. За неинтерактивно подновяване на *всички* ваши сертификати, изпълнете „certbot renew“ – Ако харесвате Certbot, моля, помислете дали да подкрепите работата ни чрез: Дарение на ISRG / Let's Encrypt: https://letsencrypt.org/donate Дарение на EFF: https://eff.org/donate-leСега, ако се опитате да отворите URL адреса – http://www.example.com/index.html, той трябва да ви пренасочи към https://www.example. com/index.html. Уверете се, че вашата защитна стена позволява комуникация на порт 443.
Ето как можем да защитим цял уебсайт или приложение, използвайки SSL сертификат за защитена комуникация през уеб сървъра на Apache и клиентите (браузър и т.н.).
Сега, ако отворите отново файла с виртуален хост, трябва да видите линиите за пренасочване в долната част на вашия хост.
# Проверете Virtual Hostsudo nano /etc/apache2/sites-available/example.com.conf# Превъртете надолу........RewriteEngine onRewriteCond %{SERVER_NAME} =www.example.comRewriteRule ^ https://%{SERVER_NAME }%{REQUEST_URI} [END,NE,R=permanent]Правилото за пренаписване пренасочва всички HTTP заявки към HTTPS.
Клиентът Certbot също създава SSL виртуалния хост и го активира като част от процеса на инсталиране на SSL. Можете да проверите съдържанието му, както е показано по-долу.
# Проверете SSL Virtual Hostsudo nano /etc/apache2/sites-available/example.com-le-ssl.conf# ContentServerName example.comServerAlias www.example.comServerAdmin admin@example.comDocumentRoot /var/www/example.com/htmlOptions - Индекси +FollowSymLinksDirectoryIndex index.phpAllowOverride AllRequire all grantedErrorLog /var/www/example.com/logs/error.logCustomLog /var/www/example.com/logs/access.log combinationSSLCertificateFile /etc/letsencrypt/live/example.com/fullchain .pemSSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pemInclude /etc/letsencrypt/options-ssl-apache.confCerbot конфигурира вашия SSL виртуален хост, както е показано по-горе.
SSL сертификатите, издадени от Let’s Encrypt, изтичат след 90 дни от датата на инсталиране. Хубавото е, че инсталираният от нас Certbot от официалното хранилище проверява за подновяване два пъти на ден с помощта на системния таймер. Функцията за автоматично подновяване на таймер извън systemd се предоставя от cron скрипт, поставен в /etc/cron.d. Той подновява сертификатите, които изтичат през следващите 30 дни.
Можете също да тествате процеса на подновяване, като симулирате командата за подновяване, както е показано по-долу.
# Команда за симулиране на подновяване sudo certbot renew --dry-runГорната команда ще покаже регистрационните файлове със съобщения, за да получите представа как ще се изпълнява за действително подновяване. Можем също да изпълним командата ръчно, за да подновим сертификатите, които изтичат през следващите 30 дни.
# Подновяване на сертификатиsudo certbot renew# Съобщения за подновяване Запазване на журнал за отстраняване на грешки в /var/log/letsencrypt/letsencrypt.log- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Обработка /etc/letsencrypt/renewal/example.com.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Сертификатът все още не е за подновяване- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Следните сертификати все още не подлежат на подновяване:/etc/letsencrypt/live/example.com/fullchain.pem изтича на 2020-01-01 (пропуснат) Не са правени опити за подновяване.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Услугата Apache трябва да се презареди след сертификат обновяване. Можем да го направим, като добавим –renew-hook „systemctl reload apache2“ към файла /etc/cron.d/certbot, както е показано по-долу.
# Добавяне на подновяване на кука0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew --renew-hook "systemctl reload apache2"Сега отново направете тест, като симулирате командата за подновяване, както е показано по-долу.
# Команда за симулиране на подновяване sudo certbot renew --dry-runТрябва да се изпълнява успешно, за да се гарантира, че сертификатите ще бъдат автоматично подновени преди изтичане.
В тази стъпка ще инсталираме Webmin, като използваме официалното хранилище както на Debian, така и на различни от Debian системи. Можем да инсталираме Webmin с помощта на Webmin APT хранилището на Ubuntu, както е показано по-долу. Използвал съм нано редактора за демонстрационни цели. Можете да използвате всеки редактор по ваш избор.
# Добавете repositorysudo nano /etc/apt/sources.list# Добавете тези редове в lastdeb http://download.webmin.com/download/repository sarge contribdeb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib # Запазете и излезте от редактораЗапишете файла с помощта на текстовия редактор Nano, като натиснете CTRL + O, след което натиснете Enter, за да напишете файла. Натиснете CTRL + X, за да затворите редактора.
Инсталирайте GPG ключа, както е показано по-долу. Имаме нужда от GPG ключ, за да се доверим на хранилището.
# Навигирайте до предпочитаната от вас директорияcd ~# Изтеглете GPG Keywget http://www.webmin.com/jcameron-key.asc# Добавете Keysudo apt-key add jcameron-key.asc# OutputOKСега можем да инсталираме най-новата версия на Webmin, както е показано по-долу.
# Опресняване на пакетите indexsudo apt-get update# Инсталиране на Webminsudo apt-get install webmin -y# Инсталационни журнали Настройка на webmin (1.930) ...Инсталирането на Webmin завърши. Вече можете да влезете в https://ip-xx-xx-xx-xx:10000/като root с вашата парола за root или като всеки потребител, който може да използва команди за стартиране на sudoto като root. Задействания за обработка за man-db (2.8. 3-2ubuntu0.1) ... Тригери за обработка за mime-support (3.60ubuntu1) ... Тригери за обработка за ureadahead (0.100.0-21) ... Тригери за обработка за systemd (237-3ubuntu10.29) ...Можете да тествате Webmin в случай, че порт 10000 е отворен, в противен случай просто пропуснете този раздел и продължете със следващия раздел.
Можем да осъществим директен достъп до Webmin чрез URL – https://xx.xx.xx.xx:10000 в случай, че порт 10000 е отворен. Уверете се, че сте заменили xx.xx.xx.xx с вашия действителен IP. Той ще покаже предупреждението за риск за сигурността, както е показано на Фиг. 1.
Фигура 1
Поемете риска и продължете да имате достъп до Webmin. Той ще покаже екрана за влизане, както е показано на Фигура 2.
Фигура 2
Сега влезте в Webmin, като използвате root или sudo потребителски идентификационни данни. Можете също така да промените root идентификационните данни за Webmin, като използвате командата, както е показано по-долу.
# Промяна на паролата за Webminsudo /usr/share/webmin/changepass.pl /etc/webmin# Examplesudo /usr/share/webmin/changepass.pl /etc/webmin root pass123Горната команда ще промени потребителската парола на root за Webmin . Сега влезте във вашия Webmin. Той ще покаже таблото за управление, както е показано на фиг. 3.
Фигура 3
Ние ще осъществим достъп до Webmin чрез конфигуриране на обратен прокси на порт 80/443 като обикновено уеб приложение чрез конфигуриране на уеб сървъра. Това ще избегне отварянето на допълнителен порт за Webmin, т.е. 10000 и поддържането на SSL сертификат за Webmin. Може да се направи за уеб сървъра Apache, както е показано по-долу.
# Актуализиране на SSL Virtual Hostsudo nano /etc/apache2/sites-available/example.com-le-ssl.conf# ContentServerName example.comServerAlias www.example.comServerAdmin admin@example.comProxyPass / http://localhost:10000/ProxyPassReverse / http://localhost:10000/ErrorLog /var/www/example.com/logs/error.logCustomLog /var/www/example.com/logs/access.log комбиниранSSLCertificateFile /etc/letsencrypt/live/example.com/fullchain .pemSSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pemInclude /etc/letsencrypt/options-ssl-apache.conf# Запазете и излезте от редактораТрябва да активирате proxy_http модула на уеб сървъра Apache, както е показано По-долу.
# Enable Proxysudo a2enmod proxy_http# Test configurationsudo apache2ctl configtest# Reload Apachesudo systemctl reload apache2Също така трябва да конфигурираме Webmin да приема връзки от Apache, както е показано по-долу. Също така се уверете, че използвате FQDN или името на домейна, използвано за достъп до уебсайта. Можем да конфигурираме Webmin за основния домейн, както е показано по-долу.
# Актуализирайте configsudo nano /etc/webmin/config# Добавете най-накрая..........referers=example.com# Запазете и излезте от редактора Актуализирайте miniservsudo nano /etc/webmin/miniserv.conf# Конфигурирайте SSL.. .ssl=0......ssl_redirect=0# Запазете и излезте от редактора# Рестартирайте Webminsudo systemctl рестартирайте webminСега можем да осъществим достъп до Webmin, използвайки основния домейн чрез пренасочване към https://www.example.com. Ще покаже екрана за вход, както е показано по-долу.
Фигура 4
Трябва да актуализираме SSL сертификата, за да поддържаме поддомейна. Може да се направи с помощта на командата, както е показано по-долу. Let’s Encrypt позволява до 100 домейна за един SSL сертификат.
# Инсталиране на сертификат - Синтаксис - Един домейнsudo letsencrypt --apache -d example.com,www.example.com,sub1.example.com --email admin@example.comМожем да конфигурираме Apache сървъра за достъп до Webmin над поддомейн. По този начин можем да осъществим достъп до уебсайта през основния домейн и да имаме достъп до Webmin през поддомейн. Може да се направи за уеб сървъра Apache, както е показано по-долу.
# Актуализиране на SSL Virtual Hostsudo nano /etc/apache2/sites-available/sub1.example.com-le-ssl.conf# ContentServerName example.comServerAlias sub1.example.comServerAdmin admin@example.comProxyPass / http://localhost:10000/ ProxyPassReverse / http://localhost:10000/ErrorLog /var/www/example.com/logs/error.logCustomLog /var/www/example.com/logs/access.log combinationSSLCertificateFile /etc/letsencrypt/live/example.com /fullchain.pemSSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pemInclude /etc/letsencrypt/options-ssl-apache.conf# Запазете и излезте от редактора# Тествайте конфигурациятаsudo apache2ctl configtest# Активирайте subdomainsudo a2ensite sub1.example.com -le-ssl# Reload Apachesudo systemctl reload apache2Ние също трябва да конфигурираме Webmin да приема връзки от Apache, както е показано по-долу. Можем да конфигурираме Webmin за поддомейна, както е показано по-долу.
# Актуализирайте configsudo nano /etc/webmin/config# Добавете най-накрая..........referers=sub1.example.com# Запазете и излезте от редактора Актуализирайте miniservsudo nano /etc/webmin/miniserv.conf# Конфигурирайте SSL ...ssl=0......ssl_redirect=0# Запазете и излезте от редактора# Рестартирайте Webminsudo systemctl рестартирайте webminСега можем да осъществим достъп до Webmin чрез поддомейна чрез пренасочване към https://sub1.example.com .
Можем да конфигурираме сървъра на Apache за достъп до Webmin през поддиректорията. По този начин можем да осъществим достъп до уебсайта през основния домейн и да имаме достъп до Webmin през подURL адреса. Може да се направи за уеб сървъра Apache, както е показано по-долу.
# Актуализиране на SSL Virtual Hostsudo nano /etc/apache2/sites-available/example.com-le-ssl.conf# ContentServerName example.comServerAlias www.example.comServerAdmin admin@example.comProxyPass /webmin/ http://localhost:10000/ ProxyPassReverse /webmin/ http://localhost:10000/DocumentRoot /var/www/example.com/htmlOptions -Indexes +FollowSymLinksDirectoryIndex index.phpAllowOverride AllRequire all grantedErrorLog /var/www/example.com/logs/error.logCustomLog /var/ www/example.com/logs/access.log комбиниранSSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pemSSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pemInclude /etc/letsencrypt/options-ssl-apache .conf# Запазете и излезте от редактора# Тествайте конфигурациятаsudo apache2ctl configtest# Презаредете Apachesudo systemctl презаредете apache2Също така трябва да конфигурираме Webmin да приема връзки от Apache, както е показано по-долу. Можем да конфигурираме Webmin за поддиректорията, както е показано по-долу.
# Актуализирайте configsudo nano /etc/webmin/config# Добавете най-накрая..........relative_redir=0referers=example.comwebprefix=/webminwebprefixnoredir=1# Запазете и излезте от редактора Актуализирайте miniservsudo nano /etc/webmin/miniserv .conf# Конфигурирайте SSL...ssl=0......ssl_redirect=0# Запазете и излезте от редактора# Рестартирайте Webminsudo systemctl рестартирайте webminСега можем да осъществим достъп до Webmin, използвайки поддиректорията, като пренасочим към https:// www.example.com/webmin/.
Ето как можем да инсталираме Webmin и да имаме достъп до него през основния домейн, поддомейн и поддиректория, като конфигурираме уеб сървъра Apache като обратен прокси.
PREV: Започнете, инсталирайте и конфигурирайте сървъра за лицензи
NEXT: Посочете сървър за лицензи за хост сървър на RD сесия, който да се използва