403 Доступ запрещен к странице менеджера tomcat

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

Я установил Tomcat на Centos7 в Google Cloud. Tomcat работает, но я не могу получить доступ к странице менеджера Tomcat.

Мой /opt/tomcat/conf/tomcat-users.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!--
      Лицензировано Фондом Apache Software (ASF) на основе одного или нескольких
      соглашений о лицензировании участников. Смотрите файл NOTICE, предоставленный вместе с
      этой работой для дополнительной информации о праве собственности на авторские права.
      ASF лицензирует этот файл для вас в соответствии с лицензией Apache, версия 2.0
      (далее - "Лицензия"); вы не можете использовать этот файл, кроме как в соответствии с
      Лицензией. Вы можете получить копию Лицензии по адресу
          http://www.apache.org/licenses/LICENSE-2.0
      Если это не требуется действующим законодательством или не согласовано в письменной форме,
      программное обеспечение, распространяемое в соответствии с Лицензией, предоставляется на
      условиях "КАК ЕСТЬ", БЕЗ ГАРАНТИЙ И УСЛОВИЙ ЛЮБОГО РОДА, явно или подразумеваемо.
      Смотрите Лицензию для получения информации о том, какие права и
      ограничения применяются в соответствии с Лицензией.
    -->
    <tomcat-users xmlns="http://tomcat.apache.org/xml"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
                  version="1.0">
    <!--
      По умолчанию ни один пользователь не включён в роль "manager-gui", необходимую
      для работы веб-приложения "/manager/html". Если вы хотите использовать это приложение,
      вам необходимо определить такого пользователя - имя пользователя и пароль произвольные.
      Внутренние роли менеджера Tomcat:
        - manager-gui    - позволяет доступ к HTML GUI и страницам состояния
        - manager-script - позволяет доступ к HTTP API и страницам состояния
        - manager-jmx    - позволяет доступ к JMX прокси и страницам состояния
        - manager-status - позволяет доступ только к страницам состояния
      Пользователи ниже заключены в комментарий и поэтому игнорируются. Если вы
      хотите настроить одного или нескольких из этих пользователей для использования с веб-приложением менеджера,
      не забудьте удалить <!.. ..>, который их окружает. Вам
      также нужно будет установить пароли на что-то подходящее.
    -->
    <!--
      <user username="admin" password="<must-be-changed>" roles="manager-gui"/>
      <user username="robot" password="<must-be-changed>" roles="manager-script"/>
    -->
    <!--
      Входные данные примеров пользователей и ролей ниже предназначены для использования с
      веб-приложением примеров. Они заключены в комментарий и, таким образом, игнорируются,
      при чтении этого файла. Если вы хотите настроить этих пользователей для использования с
      веб-приложением примеров, не забудьте удалить <!.. ..>, который их окружает.
      Вам также нужно будет установить пароли на что-то подходящее.
    -->
    <role rolename="admin-gui"/>
    <role rolename="manager-gui"/>
    <user username="admin" password="notmyrealpassword" roles="admin-gui,manager-gui"/>
    </tomcat-users>

/opt/tomcat/webapps/manager/META-INF/context.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!--
      Лицензировано Фондом Apache Software (ASF) на основе одного или нескольких
      соглашений о лицензировании участников. Смотрите файл NOTICE, предоставленный вместе с
      этой работой для дополнительной информации о праве собственности на авторские права.
      ASF лицензирует этот файл для вас в соответствии с лицензией Apache, версия 2.0
      (далее - "Лицензия"); вы не можете использовать этот файл, кроме как в соответствии с
      Лицензией. Вы можете получить копию Лицензии по адресу
    
          http://www.apache.org/licenses/LICENSE-2.0
    
      Если это не требуется действующим законодательством или не согласовано в письменной форме,
      программное обеспечение, распространяемое в соответствии с Лицензией, предоставляется на
      условиях "КАК ЕСТЬ", БЕЗ ГАРАНТИЙ И УСЛОВИЙ ЛЮБОГО РОДА, явно или подразумеваемо.
      Смотрите Лицензию для получения информации о том, какие права и
      ограничения применяются в соответствии с Лицензией.
    -->
    <Context antiResourceLocking="false" privileged="true" >
      <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                       sameSiteCookies="strict" />
    <!--
      <Valve className="org.apache.catalina.valves.RemoteAddrValve"
             allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
    -->
    <!--  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/> -->
      <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.0.*" />
    </Context>

/opt/tomcat/webapps/host-manager/META-INF/context.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!--
      Лицензировано Фондом Apache Software (ASF) на основе одного или нескольких
      соглашений о лицензировании участников. Смотрите файл NOTICE, предоставленный вместе с
      этой работой для дополнительной информации о праве собственности на авторские права.
      ASF лицензирует этот файл для вас в соответствии с лицензией Apache, версия 2.0
      (далее - "Лицензия"); вы не можете использовать этот файл, кроме как в соответствии с
      Лицензией. Вы можете получить копию Лицензии по адресу
    
          http://www.apache.org/licenses/LICENSE-2.0
    
      Если это не требуется действующим законодательством или не согласовано в письменной форме,
      программное обеспечение, распространяемое в соответствии с Лицензией, предоставляется на
      условиях "КАК ЕСТЬ", БЕЗ ГАРАНТИЙ И УСЛОВИЙ ЛЮБОГО РОДА, явно или подразумеваемо.
      Смотрите Лицензию для получения информации о том, какие права и
      ограничения применяются в соответствии с Лицензией.
    -->
    <Context antiResourceLocking="false" privileged="true" >
      <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                       sameSiteCookies="strict" />
    <!--  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
             allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
    -->
    <!--  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/> -->
      <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.0.*" />
    </Context>

Попробуйте закомментировать предпоследнюю строку. Просто переместите “–>” на 2 строки ниже.

<!– Менеджер sessionAttributeValueClassNameFilter=”java.lang.(?:Boolean|Integer|Long|Number|String)|org.apache.catalina.filters.CsrfPreventionFilter$LruCache(?:$1)?|java.util.(?:Linked)?HashMap”/> <Valve className=”org.apache.catalina.valves.RemoteAddrValve” allow=”127.\d+.\d+.\d+|::1|0:0:0:0:0:0:0:1|192.168.0.*” />

–>

Если вы настроили какие-либо области в tomcat/conf/server.xml, попробуйте без них. Удачи!

При развертывании .war часто появляется ‘403 Доступ запрещен’, следующее может быть для вашего справки!
Я использую Ubuntu 22.04, Tomcat9, директории, вероятно, отличаются от ваших, но могут быть с тем же именем конфигурационного файла!

1. Установите разрешённые IP для доступа к менеджеру Tomcat9:
sudo vim /etc/tomcat9/Catalina/localhost/manager.xml
добавьте <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="ваши разрешенные IP здесь" denyStatus="404"/>
это вступит в силу, как только вы
сохраняете и выходите без перезапуска Tomcat9.

2. sudo vim /usr/share/tomcat9-admin/manager/META-INF/context.xml
добавьте ваши разрешенные IP в
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"
например.
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|10\.10\.10\.\d+"

Надеюсь, это будет полезно!

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

Ошибка "403 Access Denied" при попытке доступа к странице управления Tomcat может быть вызвана несколькими факторами, связанными с конфигурацией безопасности и правами доступа. В этом ответе вы найдете подробное руководство по устранению этой проблемы на сервере Tomcat, установленных на CentOS 7 в Google Cloud.

Шаг 1: Проверьте файл конфигурации пользователей

Вы предоставили фрагмент файла tomcat-users.xml, который содержит информацию о пользователях и ролях:

<tomcat-users xmlns="http://tomcat.apache.org/xml" ... >
    <role rolename="admin-gui"/>
    <role rolename="manager-gui"/>
    <user username="admin" password="notmyrealpassword" roles="admin-gui,manager-gui"/>
</tomcat-users>

Важно убедиться, что у вас правильно настроены пользователи с соответствующими ролями для доступа к странице управления. Проверьте следующее:

  1. Убедитесь, что комментарии удалены: В вашем примере часть строк закомментирована. Убедитесь, что строки, определяющие пользователей и их роли, не закомментированы.

  2. Проверьте учетные данные: Убедитесь, что вы используете правильные учетные данные (имя пользователя и пароль) при входе на страницу управления.

Шаг 2: Настройка context.xml для менеджера

Файлы context.xml, находящиеся в manager/META-INF/ и host-manager/META-INF/, содержат настройки доступа. В вашем случае вы добавили в context.xml следующие строки:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.0.*" />

Эта строка определяет, какие IP-адреса могут получить доступ к управлению. Чтобы решить проблему с доступом, убедитесь, что:

  1. Ваш IP-адрес добавлен в разрешенные значения: Если вы подключаетесь к серверу с другого IP-адреса, добавьте его в разрешенные адреса. Например:

    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|YOUR.IP.ADDRESS.HERE" />
  2. Отключите ограничения, если это необходимо: Если вы только тестируете доступ, можно временно заменить строку allow на allow=".*", чтобы разрешить доступ с любого IP (не рекомендуется в продуктивной среде).

Шаг 3: Перезапустите Tomcat

После внесения изменений в конфигурационные файлы необходимо перезапустить Tomcat для применения изменений:

sudo systemctl restart tomcat

Шаг 4: Проверьте настройки брандмауэра

Если вы все еще получаете ошибку "403 Access Denied", убедитесь, что брандмауэр вашего сервера (например, firewalld на CentOS) настроен правильно и не блокирует доступ. Используйте следующие команды для проверки и изменения настроек брандмауэра:

sudo firewall-cmd --list-all

Если необходимо, откройте порты, используя:

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

Дополнительные советы

  • Использование VPC и приватных IP-адресов: Если ваш сервер находится в окружении, подобном Google Cloud, и вы используете VPC, убедитесь, что у вас правильные правила сетевого доступа на уровне VPC.

  • Логи Tomcat: Проверьте логи Tomcat (обычно в /opt/tomcat/logs/) для получения более детальной информации о проблеме. Лог catalina.out может содержать полезную информацию.

Заключение

Следуя этим шагам, вы сможете устранить проблему с ошибкой "403 Access Denied" при попытке доступа к странице управления Tomcat. Обязательно всегда применяйте необходимые меры безопасности, чтобы защитить ваш сервер от несанкционированного доступа.

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

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