Как сделать TOMCAT доступным только для localhost, кроме одного приложения - PullRequest
0 голосов
/ 28 июня 2019

Я использую сервер TOMCAT. Из-за соображений безопасности я должен ограничить доступ только к localhost, но одно приложение должно быть доступно извне (любой IP). Я попытался использовать клапан, размещенный в server.xml, но я смог заблокировать доступ только к определенным функциям / приложениям, таким как host-manager.

Как ограничить все приложения, кроме одного?

EDIT: Эта строка внутри server.xml блокирует все, кроме localhost:

<Server>
<Service>
<Engine>
<Host>

...

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

</Host>
</Engine>
</Service>
</Server>

Как добавить исключение для одного приложения, которое должно быть доступно извне?

Заранее спасибо за помощь :-)

1 Ответ

0 голосов
/ 28 июня 2019

Вам нужно 2 каталога, в которых хранятся различные веб-приложения, и минимальная конфигурация выглядит следующим образом, где serverhost - это ваше имя сервера, как известно в вашей сети:

<Service name="internal">
  <Connector port="8081" protocol="HTTP/1.1" address="localhost" />
  <Engine name="Engine1internal" defaultHost="localhost">
    <Host name="localhost" appBase="webapps1"></Host>
  </Engine>
</Service>

<Service name="exposed">
  <Connector port="8080" protocol="HTTP/1.1" address="192.168.1.2"/>
  <Engine name="Engine2exposed" defaultHost="serverhost">
    <Host name="serverhost" appBase="webapps2"></Host>
  </Engine>
</Service>

Конечно, если вы хотите сохранить каталог webapps, создайте только один каталог для хранения другого приложения. Я не тестировал, но адаптировался из другого конфига, поэтому не стесняйтесь комментировать / редактировать мой ответ, если это необходимо.

...