web-dev-qa-db-ja.com

ループバック(localhost)からのアクセスのみを許可するようにJettyを保護する方法

ローカルホストからの接続のみを許可するように jetty を保護するにはどうすればよいですか?これはサーバーへの接続を意味しますシステム上のA A fromシステム上のクライアントB B失敗する必要があります。Iファイアウォールを構成することでこれを実行できることを知っています(したがって、これについては答えないでください)。Jettyがlocalhost(loopback)でのみリッスンするようにしたいだけです。

27
Alfred

私はこれを試していませんが、通常の方法はサーバーをローカルホスト(つまり、IP 127.0.0.1)にバインドすることです。つまり、Jettyサーバーは、宛先アドレスとしてlocalhostを持つ接続のみをリッスンします。

簡単なグーグルでこれが明らかになりました 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>

11
Juha Syrjälä

もう少し後に自分の質問に対する答えを見つけました グーグル

答えは(jetty-distribution-7.0.1.v20091125でテスト済み)です。

  1. Jetty.xml(etc/jetty.xml)を見つけます
  2. 検索する <Call name="addConnector">
  3. セットする <Set name="Host"><SystemProperty name="jetty.Host" default="127.0.0.1"/></Set>行の前<Set name="port"><SystemProperty name="jetty.port"/></Set>
  4. それでおしまい。 Jettyサーバーを再起動します(Java -jar start.jar)。サーバーは次のように出力する必要があります。

2009-12-23 23:02:09.291:INFO :: Started [email protected]:8080

重要なのは、0.0.0.0ではなく127.0.0.1と表示する必要があるということです。0.0.0.0は、マシン上のすべてのIPをリッスンすることを意味します。

追伸:同じ方法で実現できる Apache solr (桟橋を使用)を確保したかったのです。

次の方法で、プログラムでローカルホストにバインドすることもできます(桟橋を埋め込む)。

Server server = new Server();
Connector connector = new SelectChannelConnector();
connector.setHost("localhost");
connector.setPort(80);
server.addConnector(connector);
23
Alfred

Jetty 9が埋め込まれている場合、このコードは機能します。

    Server server = new Server();                                       
    ServerConnector connector=new ServerConnector(server);
    connector.setPort(80);
    connector.setHost("localhost");        
    server.setConnectors(new Connector[]{connector});
12
Hernán Eche

仮想マシンの起動時にjetty.Hostプロパティを設定できます。

Java -Djetty.Host=127.0.0.1 -jar start.jar

ところで、jetty.portについても同じです。

10
ceving

.htaccessを使用してこれを行うことができましたが、何らかの理由でローカルホストフィルタリングが機能しません。特定の外部IPからのトラフィックを許可し、他のすべてのIPをブロックする場合は、 http://technologyenablingbusiness.blogspot.com/2011/03/setting-security-in-solr-running-on.html

編集:ページのアーカイブバージョン https://web.archive.org/web/20110429184536/http://technologyenablingbusiness.blogspot .com/2011/03/settings-security-in-solr-running-on.html

1
Yash

組み込みJetty9の場合、次のようにJettyサーバーを初期化します。

Server server = new Server(new InetSocketAddress("127.0.0.1", 8080));

import Java.net.InetSocketAddress;を忘れないでください。

参照: org.Eclipse.jetty.server.Server のコンストラクター。 `

0
Flux