Администрирование серверов Linux может быть очень скучным, набирая команды в терминале. Но наличие инструментов, которые автоматизируют длинные команды и добавят немного графики. Всегда хорошо, а также это может произвести впечатление на вашего босса.
Так же рекомендую к прочтению хороший туториал Как установить Webmin на Ubuntu 20.04
Такие инструменты, как Webmin и PhpMyAdmin, всегда хорошо иметь под рукой. Однако они приносят с собой проблемы безопасности из-за различных уязвимостей. Ну например порты и пути указанные при установки. Это первое что будут сканировать злоумышленники.
В этом уроке я покажу как установить Webmin на сервер Centos 7. И в место того, чтобы открыть стандартный порт 10000 для доступа к нему из внешнего мира.Буду получать доступ к нему через SSH-туннель с нашей машины windows, не открывая никаких дополнительных портов .
Эта статья для Centos 7, работающем на сервере VPS. Однако описанные методы могут быть использованы практически на любом сервере Linux. Так же в этом руководстве предполагается, что у вас есть корневой доступ к серверу. Это очень важно!
Установка Webmin:
Мы начинаем с добавления репозитория Webmin в yum, которое не входит в стандартную комплектацию.
#sudo vim /etc/yum.repos.d/webmin.repo
Вставьте следующее:
[Webmin]
name=Webmin Distribution Neutral
#baseurl=http://download.webmin.com/download/yum
mirrorlist=http://download.webmin.com/download/yum/mirrorlist
enabled=1
Установите ключ GPG
#rpm —импорт http://www.webmin.com/jcameron-key.asc
Далее нам потребуется обновить репозитории
#yum check-update
Устанавливаем Webmin
#yum install webmin
Resolving Dependencies
—> Running transaction check
—> Package webmin.noarch 0:1.831-1 will be installed
—> Processing Dependency: perl(Net::SSLeay) for package: webmin-1.831-1.noarch
—> Running transaction check
—> Package perl-Net-SSLeay.x86_64 0:1.55-4.el7 will be installed
—> Finished Dependency Resolution
Dependencies Resolved
==========================================================
==========================================================
webmin noarch 1.831-1 Webmin 27 M
Installing for dependencies:
perl-Net-SSLeay x86_64 1.55-4.el7 base 285 k
Transaction Summary
=========================================================
Total download size: 27 M
Installed size: 76 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): perl-Net-SSLeay-1.55-4.el7.x86_64.rpm | 285 kB 00:00:00
(2/2): webmin-1.831-1.noarch.rpm | 27 MB 00:00:21
———————————————————
Total 1.2 MB/s | 27 MB 00:00:21
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : perl-Net-SSLeay-1.55-4.el7.x86_64 1/2
Operating system is CentOS Linux
Installing : webmin-1.831-1.noarch 2/2
Webmin install complete. You can now login to https://yourserver.com:10000/
as root with your root password.
Verifying : webmin-1.831-1.noarch 1/2
Verifying : perl-Net-SSLeay-1.55-4.el7.x86_64 2/2
Installed:
webmin.noarch 0:1.831-1
Dependency Installed:
perl-Net-SSLeay.x86_64 0:1.55-4.el7Complete!
Запуск Webmin:
Далее включим Webmin запустив сервис:
Примечание: поскольку webmin не считается родным сервисом, мы используем chkconfig webmin on вместо обычного systemctl enable webmin чтобы включить webmin при запуске. Мы также запускаем сервис с помощью /etc/init.d/webmin start хотя можно и так.. systemctl start webmin
#chkconfig webmin on
#/etc/init.d/webmin start
Теперь Webmin работает и запускается автоматически при следующей загрузке сервера. Теперь нам нужно сделать его доступным для внешнего мира.
Примечание: Если вы не хотите, чтобы webmin запускался автоматически при каждой загрузке, не выполняйте команду chkconfig webmin on. Чтобы запустить и остановить службу вручную, вы можете запустить “/etc/init.d/webmin start” и “/etc/init.d/webmin stop”
Доступ к Webmin напрямую из внешнего мира (не рекомендуется):
Если вы хотите получить доступ к Webmin из любого браузера подключенного, то все что вам нужно сделать: это открыть порт 10000 для внешнего мира
#firewall-cmd —zone=external —add-port=10000/tcp —permanent
С последующим
#systemctl restart firewalld
Как я уже писал ранее, это не безопасно и не рекомендуется!!! Имейте в виду, что порт 10000 является одним из первых портов, которые будут сканироваться во время сканирования порта. Злоумышленники найдя открытый порт 10000 будут на один шаг ближе к взлому вашего сервера . Используйте другой порт, отличный от стандартного 10000. Убедитесь, что вы используете надежные пароли и ограничьте доступ к наименьшему числу пользователей ( конечно же, не root). Кроме того, убедитесь, что вы всегда используете https-соединения, особенно если вам нужно получить доступ к серверу из общественного места с помощью неизвестного сервиса Wi-Fi.
Безопасный доступ к webmin (правильный способ):
Рекомендуемый способ безопасного доступа к webmin (или любой другой службе на вашем сервере) заключается в том, чтоб оставить порт 10000 закрытым. Будем поучать доступ к webmin через ssh. Это гораздо безопаснее.
Вот как это делается :
- Вам надо скачать putty-a free ssh и telnet client для windows.
- Устанавливаем и запускаем.
- В поле Имя хоста (или IP address) введите имя хоста или ip-адрес вашего сервера
- В поле Порт введите SSH port, который используется для подключения к серверу
- Тип подключения: SSH
- В Saved Sessions введите имя, чтобы сохранить настройки, которые вы делаете, я использую имя хоста.
- Далее, в разделе категория, нажмите на знак + рядом с «SSH«, в разделе «соединение» и выберите » туннели“
- В исходном порту проставляется 10000
- В пункт назначения положить 127.0.0.1: 10000
- Нажмите кнопку Add, и вы увидите строку L10000 127.0.0.1: 10000, добавленную в разделе перенаправленные порты
- Используйте прокрутку, чтобы прокрутить назад, и нажмите на Session еще раз, а затем нажмите кнопку “SAVE”. Вы должны увидеть свои сохраненные настройки в «Saved Sessions”
Проверим наше соединение. Нажимаем кнопку “Open” , если имя хоста и порт верны, вы должны быть встречены на заднем экране с подсказкой ” войти как:»:
Введите свое имя пользователя и нажмите кнопку “enter”
Вам будет предложено ввести пароль. Введите его, снова нажмите ” enter «, и если все идет хорошо, вы увидите $ или # prompt вашего сервера. Уже почти готово!!!
Запустите ваш любимый браузер перейдите на https://127.0.0.1:10000, ошибку конфиденциальности надо игнорировать. Вы увидите экран входа webmin
Примечание: Если вы хотите получить доступ к webmin через http, и избежать предупреждений безопасности. Требуется изменить /etc/webmin/miniserv.conf на сервере. Измените строку ssl=1 на ssl=0. Это не будет иметь никакого влияния на безопасность, так как м получаем безопасный доступ к нашему серверу через ssh-туннель.
Заключение:
Если есть другие установленные сервисы, которые обычно требуют, открытия новые портов. Добавьте правила пересылки в putty под ssh->tunnels и сохраните свой сеанс. При использовании этого метода вы открываете только 3 порта. Это порты 80, 433 для http и https-трафика и еще один порт для ssh-соединений. Рекомендую порт ssh открыть не 22 а какой нибудь рандомный.
Доступ к Webmin мы получаем до тех пор пока работает putty ssh. После выхода из системы службы станут недоступными. В следующий раз, когда вам нужно будет получить доступ к услугам через ssh-tunnel, просто запустите putty, выберите “Saved Session”, нажмите кнопку “ Load”, а затем кнопку “ Open”, введите имя пользователя и пароль.
Ну вот в принципе и все, если есть вопросы или вы нашли неточности в статье, оставьте комментарий.
Хорошая статья.
Спасибо