Как получить доступ к приложению Tomcat Manager только с localhost?

Вопрос или проблема

Мне интересно, возможно ли настроить доступ к моему приложению Tomcat Manager только с localhost для развертывания и заблокировать доступ с других IP-адресов.

Как я выяснил, это, похоже, возможно через фильтр доступа, определенный в <catalina_base>/conf/web.xml

<filter>
   <filter-name>Фильтр удаленного адреса</filter-name>
   <filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
   <init-param>
      <param-name>allow</param-name>
      <param-value>127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1</param-value>
   </init-param>
</filter>
<filter-mapping>
   <filter-name>Фильтр удаленного адреса</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

См. оригинальную статью здесь:

https://community.progress.com/s/article/How-to-configure-Tomcat-to-accept-only-localhost-access-for-the-Manager-Application

Ответ или решение

Чтобы ограничить доступ к приложению Tomcat Manager только с localhost, вы можете использовать фильтр, который будет проверять IP-адреса запросов. Вот шаги, которые необходимо выполнить для настройки:

  1. Откройте файл web.xml: Вам нужно отредактировать файл web.xml, который находится в каталоге конфигурации вашего Tomcat. Путь к этому файлу будет выглядеть как <catalina_base>/conf/web.xml.

  2. Добавьте фильтр: В редакторе текста добавьте следующий код в файл web.xml:

<filter>
   <filter-name>Remote Address Filter</filter-name>
   <filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
   <init-param>
      <param-name>allow</param-name>
      <param-value>127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1</param-value>
   </init-param>
</filter>
<filter-mapping>
   <filter-name>Remote Address Filter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

Этот фрагмент кода добавляет фильтр, который разрешает доступ только с IP-адреса 127.0.0.1 (localhost) и IPv6-адреса ::1.

  1. Перезапустите Tomcat: После внесения изменений в файл web.xml вам следует перезапустить сервер Tomcat, чтобы изменения вступили в силу. Для этого выполните команды:
# Для Linux/Unix
sudo systemctl restart tomcat

# Для Windows
net stop Tomcat
net start Tomcat
  1. Проверка доступа: Теперь вы должны быть в состоянии получить доступ к Tomcat Manager только с localhost. Попробуйте открыть управление менеджером через:
http://localhost:8080/manager/html

Если вы попробуете получить доступ к приложению с другого IP-адреса, вы получите ошибку доступа.

  1. Дополнительная безопасность: Кроме ограничений по IP-адресам, рекомендуется также рассмотреть возможность настройки аутентификации для Tomcat Manager. Вы можете сделать это в файле <catalina_base>/conf/tomcat-users.xml, добавив следующую строку:
<user username="admin" password="your_password" roles="manager-gui,manager-script,manager-jmx,manager-status" />

Убедитесь, что вы используете надежный пароль и храните этот файл в безопасном месте, поскольку он содержит важную информацию о пользователях.

Эти шаги помогут вам настроить доступ к управлению приложением Tomcat только с localhost, тем самым повышая безопасность вашего сервера.

Оцените материал
Добавить комментарий

Капча загружается...