Как я могу защитить jetty, чтобы разрешать подключения только с localhost? Это означает, что соединение с сервером A на Системе А от Клиента B на Системе B, должен потерпеть неудачу. Я знаю, что могу это сделать, настроив свой брандмауэр (так что, пожалуйста, никаких ответов об этом). Я просто хочу, чтобы Jetty слушал только локальный хост (loopback).
Как защитить Jetty только для обеспечения доступа из loopback (localhost)
Ответ 1
Я не пробовал это, но обычным методом является привязка сервера к localhost (т.е. к IP 127.0.0.1). Это означает, что сервер Jetty будет прослушивать только те соединения, у которых в качестве адреса назначения есть localhost.
Быстрый поиск в Google показал http://old.nabble.com/How-to-make-Jetty-bind-to-specific-IP-address---to11667378.html#a11669524:
добавьте эту запись в SelectChannelConnector, например:
<Set name="Host">127.0.0.1</Set>
Ответ 2
Я сам нашел ответ на свой вопрос после немного более googling.
Ответ: (Проверено на причал-распределение-7.0.1.v20091125):
- Найдите файл jetty.xml(etc/jetty.xml)
- Искать
<Call name="addConnector">
- Установите
<Set name="Host"><SystemProperty name="jetty.host" default="127.0.0.1"/></Set>
перед строкой<Set name="port"><SystemProperty name="jetty.port"/></Set>
- Что это. Перезагрузите сервер причала (
java -jar start.jar
). Сервер должен выводить что-то вроде:
2009-12-23 23: 02: 09.291: INFO:: Начало [email protected]: 8080
Импорт заключается в том, что он должен сказать 127.0.0.1 вместо 0.0.0.0, 0.0.0.0 означает прослушивание всех ips на машине.
P.S: Я хотел защитить apache solr (который используя причал), который может быть достигнут в Таким же образом.
Вы также можете связать с localhost программным способом (embed jetty) с помощью:
Server server = new Server();
Connector connector = new SelectChannelConnector();
connector.setHost("localhost");
connector.setPort(80);
server.addConnector(connector);
Ответ 3
Вы можете установить свойство jetty.host
во время запуска виртуальной машины:
java -Djetty.host=127.0.0.1 -jar start.jar
Btw одинаково для jetty.port
.
Ответ 4
Для встроенного Jetty 9 этот код работает.
Server server = new Server();
ServerConnector connector=new ServerConnector(server);
connector.setPort(80);
connector.setHost("localhost");
server.setConnectors(new Connector[]{connector});
Ответ 5
Я смог сделать это с помощью .htaccess, но по какой-то причине фильтрация localhost не работает. Если вы хотите разрешить трафик с определенного внешнего IP-адреса и блокировать все остальные, попробуйте http://technologyenablingbusiness.blogspot.com/2011/03/setting-security-in-solr-running-on.html