🐱 Как обеспечить безопасность Apache Tomcat |

🐱 Как обеспечить безопасность Apache Tomcat

Мануал

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

И хотя безопасность Apache Tomcat значительно улучшилась за прошедшие годы, это не означает, что ее нельзя улучшить.

В этом руководстве мы рассмотрим различные способы защиты сервера Apache Tomcat.

Методы, обсуждаемые в этом руководстве, лучше всего подходят для продакшена, так как во время разработки они могут вам понадобиться, а могут и не понадобиться.

1 – Уберем информации о сервере

Простым способом повышения безопасности сервера Apache Tomcat является удаление баннера сервера из HTTP-ответа.

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

В последних версиях Tomcat (Tomcat 8 и выше) баннер сервера отключен по умолчанию.

Однако если вы используете более старую версию Tomcat, вам, возможно, придется сделать это вручную.

Отредактируйте файл server.xml в директории conf каталога установки Tomcat.

Найдите блок Connector Port и удалите запись server

До:

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
            server="<value>"
               redirectPort="8443" />

После:

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

Сохраните файл и перезапустите службу Apache Tomcat.

2 – Включите SSL/TLS

SSL позволяет передавать данные между сервером и клиентом по протоколу HTTPS.

Чтобы использовать SSL в Tomcat, тем самым повышая безопасность, отредактируйте файл server.xml и директиву SSLEnabled в Connector port таким образом:

   <Connector port="8080" protocol="HTTP/1.1"
            connectionTimeout="20000"
            SSLEnabled="true" scheme="https" keystoreFile="conf/key.jks" keystorePass="password" clientAuth="false" sslProtocol="TLS"
               redirectPort="8443" />

Приведенная выше запись предполагает, что у вас есть Keystore с SSL-сертификатом.

3 – Не запускайте Tomcat от имени пользователя Root

Никогда не запускайте Tomcat от имени привилегированного пользователя.

Это позволит вам защитить систему в случае взлома службы Tomcat.

Создайте пользователя для запуска службы Tomcat.

sudo useradd -m -U -d /home/tomcat -s $(which false) tomcat

Наконец, измените право собственности на созданного пользователя tomcat.

chown -R tomcat:tomcat /home/tomcat

4 – Используйте Security Manager

Хорошей практикой является запускать сервер Apache Tomcat с помощью security manager.
Это предотвращает запуск недоверенных апплетов в браузере.
./startup.sh -security
Ниже приведен пример вывода:
To do this, use the catalina script with the –security flag.
Using CATALINA_BASE:   /home/debian/apache-tomcat-10.0.10
Using CATALINA_HOME:   /home/debian/apache-tomcat-10.0.10
Using CATALINA_TMPDIR: /home/debian/apache-tomcat-10.0.10/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /home/debian/apache-tomcat-10.0.10/bin/bootstrap.jar:/home/debian/apache-tomcat-10.0.10/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Using Security Manager
Tomcat started.

5 – Удалите нежелательные приложения

Apache Tomcat поставляется с эксплуатируемыми вариантами приложений по умолчанию.

Лучшая мера по митигации рисков – удалить их из каталога webapps.

Вы можете удалить такие приложения, как:

  • ROOT – страница Tomcat по умолчанию
  • Docs – документация Tomcat
  • Examples – Сервлеты для тестирования

6 – Изменение процедуры выключения Tomcat

Еще одним способом защиты Tomcat является изменение процедуры выключения.

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

Tomcat можно выключить, используя порт 8005 через telnet и отправив команду shutdown:

telnet localhost 8005
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
shutdown
Connection closed by foreign host.

Чтобы исправить это, отредактируйте файл server.xml и удалите следующий блок.

<Server port=“8005” shutdown=“SHUTDOWN”>
Если вы хотите сохранить команду shutdown, измените порт и команду по умолчанию.
Например:
<Server port="5800" shutdown="KILLME">

7 – Добавьте флаги Secure и HttpOnly

Злоумышленники также могут манипулировать cookies и сессиями установленных приложений.

Чтобы решить эту проблему, отредактируйте файл web.xml и добавьте следующие записи в блок session-config.<cookie-config>

<http-only>true</http-only>
<secure>true</secure>
</cookie-config>

Заключение

В этой статье были описаны некоторые необходимые настройки, которые вы можете внести в Apache Tomcat для повышения безопасности.

Обратите внимание, что рассмотренные методы являются лишь некоторыми из множества мер, которые вы можете предпринять для защиты Tomcat.

см. также:

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий