Вопрос или проблема
Мне интересно, возможно ли настроить доступ к моему приложению 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>
См. оригинальную статью здесь:
Ответ или решение
Чтобы ограничить доступ к приложению Tomcat Manager только с localhost, вы можете использовать фильтр, который будет проверять IP-адреса запросов. Вот шаги, которые необходимо выполнить для настройки:
-
Откройте файл web.xml: Вам нужно отредактировать файл
web.xml
, который находится в каталоге конфигурации вашего Tomcat. Путь к этому файлу будет выглядеть как<catalina_base>/conf/web.xml
. -
Добавьте фильтр: В редакторе текста добавьте следующий код в файл
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
.
- Перезапустите Tomcat: После внесения изменений в файл
web.xml
вам следует перезапустить сервер Tomcat, чтобы изменения вступили в силу. Для этого выполните команды:
# Для Linux/Unix
sudo systemctl restart tomcat
# Для Windows
net stop Tomcat
net start Tomcat
- Проверка доступа: Теперь вы должны быть в состоянии получить доступ к Tomcat Manager только с localhost. Попробуйте открыть управление менеджером через:
http://localhost:8080/manager/html
Если вы попробуете получить доступ к приложению с другого IP-адреса, вы получите ошибку доступа.
- Дополнительная безопасность: Кроме ограничений по 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, тем самым повышая безопасность вашего сервера.