2013-07-02 16 views
5

Podczas uruchamiania serwera elasticsearch. Możemy uzyskać dostęp do www.example.com:9200Jak wyłączyć zdalny dostęp w elasticsearch

Ale chcę zablokować dostęp zdalny tylko umożliwić dostęp lokalny.

Jak ustawić?

+0

Czy możesz zaakceptować/przegłosować otrzymaną odpowiedź, jeśli była przydatna, lub przekazać opinię w inny sposób? Czy chcesz coś dodać? – javanna

+0

Czy nawet firewall :-) – DanFromGermany

Odpowiedz

2

Elasticsearch umożliwia wyłączenie punktu końcowego http ustawianie wartości http.enabled na wartość false w ustawieniach. Pozwala także na posiadanie lokalnego węzła, który będzie dostępny tylko w tym samym jvm. Z drugiej strony pytasz, jak zezwolić na dostęp lokalny tylko do punktu końcowego, który jest inny i wymaga użycia dodatkowych narzędzi.

W rzeczywistości nie jest dobrym pomysłem udostępnienie elastycznego wyszukiwania w Internecie. Chciałbym użyć serwera proxy takiego jak Apache lub Nginx, aby ograniczyć dostęp do niego i otworzyć na przykład tylko niektóre z dostępnych punktów końcowych, ale jest to potrzebne tylko wtedy, gdy masz zewnętrznych użytkowników, którzy chcą wysyłać wiadomości bezpośrednio do elastycznego wyszukiwania. Zwykle tak nie jest. Lub jeśli chcesz po prostu odmówić dostępu do niego wszystkim użytkownikom zewnętrznym, ponieważ jest to na przykład tylko twoja witryna lub aplikacja, która potrzebuje do niego dostępu, po prostu użyj zapory sieciowej i skonfiguruj odpowiednią regułę, aby zamknąć port 9200.

15

Zamiast wyłączania protokołu HTTP cały zmieniając http.enabled w /etc/elasticsearch/elasticsearch.yml ustawienia (ponieważ niektóre API można użyć końcowego HTTP, który był moim przypadku), można po prostu ustawić network.host: localhost w tym samym pliku.

Spowoduje to, że twój dostęp HTTP będzie dostępny tylko z lokalnego komputera/serwera.

+0

To powinna być zaakceptowana odpowiedź. Zobacz także tutaj: http://stackoverflow.com/questions/15503455/elasticsearch-allow-only-local-requests – tirdadc

1

Powinieneś ustawić http.host na "127.0.0.1". W ten sposób możesz uzyskać dostęp do http na porcie 9200 od samego hosta, ale nie z zewnątrz. Pozwala to również na umieszczenie serwera proxy, który nasłuchuje na innym porcie i filtrach, i przekazuje żądania selektywnie do węzła elastycznego przeszukiwania na hoście lokalnym: 9200.

Na przykład można odrzucić żądanie zamknięcia systemu, wykonać podstawowe uwierzytelnianie za pomocą nginx, a następnie przekazać wszystkie zapytania do elastycznego adresu URL klastra pod adresem http://localhost:9200.

To nie dotyczy zapory.

Powiązane problemy