2015-05-24 4 views
0

Пытается защитить Apache Solr 5.1 на моем сервере Ubuntu 14.04.Apache Solr 5.1 Защита интерфейса веб-администрирования

В основном я пытаюсь найти лучший способ обеспечить доступ к интерфейсу веб-администратора к порту 8983 (и любым другим портам, которые я настраиваю Solr), с помощью пользователя и пароля. Но я вполне могу пропустить некоторые другие важные меры безопасности, поскольку мои знания о Solr в целом все еще низкие, не говоря уже о Solr 5.1.

Я могу защитить порты с помощью iptables легко, но я все равно хочу иметь безопасный доступ к паролю к веб-админ-части всякий раз, когда мне нужно (как это было сделано с предыдущими версиями solr, запущенными с Tomcat или Jetty). Возможно, мне просто нужно настроить файл web.xml или что-то в этом роде ...

Есть много примеров для более ранних версий Solr - они не будут работать, поскольку эта версия Solr 5.1 не зависит от Jetty или Tomcat. Есть также много предложений и вопросов, которые, похоже, не очень полезны с этой версией, поэтому, пожалуйста, помните об этом при публикации ссылок и убедитесь, что вы хотя бы немного знаете Solr 5 перед публикацией.

Благодарим за помощь! (Я уверен, что это поможет другим хорошо)

ответ

4

В Solr 5.2.1 просто добавьте следующую строку в "/var/solr/solr.in.sh" :

SOLR_OPTS = "$ SOLR_OPTS -Djetty.host = 127.0.0.1"

блокирует весь доступ к Solr от внешнего локального хоста. Поскольку я использую Solr из PHP-кода, это именно то поведение, которое я хочу.

Вы всегда можете безопасно получить доступ к страницам администратора через туннель SSH, как уже упоминалось ранее!

+0

Is /var/solr/solr.in.sh фактический путь или зависит от установки. Я не могу заставить изменения в этом файле работать после перезапуска solr. – atuljangra

0

Кажется, что я могу сделать это с помощью iptables и просто пропустить пароль.

Вот что я сделал ... (конечно, вы будете делать это для любого порта Solr использует, а не только 8983)

sudo iptables -A INPUT -p tcp -s 127.0.0.0/8 --dport 8983 -j ACCEPT 
sudo iptables -A INPUT -p tcp --dport 8983 -j DROP 

(заказ важен в IPTables - если вы переворачивать это вокруг ничего не получится через 8983)

Пожалуйста, не используйте этот ответ, если вы не хорошо обучены в Solr/Solr5 и можете подтвердить, что это безопасный вариант для веб-интерфейса. Хотя я могу подтвердить, что это работает и заставил меня прекратить вытягивать мои волосы на данный момент, я пока не могу подтвердить, что он достаточно безопасен.

Если у вас есть хороший пароль для веб-интерфейса, пожалуйста, напишите об этом.

+0

Если вам нужен доступ к веб-интерфейсу на другом компьютере, вы «можете» добавить дополнительное правило ACCEPT к iptables, чтобы разрешить только IP-адрес этого компьютера, а затем УДАЛИТЬ ЭТОГО, когда вы закончите работать (удалите доступ, потому что я считаю, что это isn ' t на 100% безопаснее, а javascript с другого сайта все равно мог получить к нему доступ, если кому-то повезло, или вы пошли не на сайт, рекламируя помощь Solr, и у них была сценарий, готовый и ожидающий вас, но я мог ошибаться) – JxAxMxIxN

1

Блокировка порта Solr в брандмауэре является хорошей практикой.

Безопасный способ доступа к интерфейсу веб-администратора с удаленной машины заключается в создании туннеля SSH между машинами. Затем вы можете просто указать браузер на порт туннеля на рабочем компьютере, чтобы получить доступ к admin ui. По-моему, это предпочтительный метод по сравнению со списком IP-адресов в брандмауэрах.

Второй способ заключается в настройке прокси-сервера веб-сервера, который действует как аутентификатор, а затем передается на порт администратора на сервере Solr после предоставления надлежащих прав доступа. Basic auth - это надежная технология, и аутентификатор также может быть сконфигурирован для использования других бэкендов, таких как LDAP и т. Д.