Я установил сервер Solr на моем Debian 10 VPS выполнять полнотекстовый поиск в моем архиве электронной почты с помощью почтовых клиентов. Я использую Dovecot в качестве сервера IMAP на том же хосте.
Пока все работает нормально.
Но вот чего я не понимаю: как защитить Solr?
По умолчанию каждый может получить доступ к моей панели администратора (и, возможно, к API) по http://example.com:8983
Чтобы закрыть дверь, я включил базовую аутентификацию, создав файл security.json согласно справочному руководству Solr https://solr.apache.org/guide/8_8/basic-authentication-plugin.html
{
"authentication":{
"blockUnknown": true,
"class":"solr.BasicAuthPlugin",
"credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="},
"realm":"My Solr users",
"forwardCredentials": false
},
"authorization":{
"class":"solr.RuleBasedAuthorizationPlugin",
"permissions":[{"name":"security-edit",
"role":"admin"}],
"user-role":{"solr":"admin"}
}
}
Хорошее: Это прекрасно работает, теперь люди должны пройти аутентификацию. Уродливый:
Насколько это глупо? Это защита?
Итак, кто может помочь мне настроить мои серверы Solr и Dovecot, на которые только я могу войти в административную панель, И Dovecot продолжает работать с Solr.
Я знаю, что могу просто отключить аутентификацию и просто заблокировать порт 8983 брандмауэром, но это не способ сделать это. Более того, я тоже не смогу войти в админку.
Спасибо за подсказку.
Мой Dovecot "90-plugins.conf":
plugin {
fts = solr
fts_autoindex = yes
fts_solr = break-imap-search url=http://127.0.0.1:8983/solr/dovecot/
}
Dovecot прекрасно поддерживает аутентификацию TLS и HTTP Basic.
Это не обязательно должна быть реализация HBA, интегрированная с solr, вы также можете применить ее для всего http-доступа к экземпляру solr. Если ваш метод запуска solr (используется для быть веб-приложением java, в настоящее время автономным приложением) не дает вам нужных вам параметров, проксируйте его через nginx и настраивайте HBA там.
Поместите учетные данные в URL-адрес в вашем Dovecot conf:
url=https://user:password@hostname.example:8983/solr/dovecot/
Размещение на IP-адресе, защищенном брандмауэром, доступным только для Dovecot, по-прежнему имеет смысл.
Для локальных развертываний вам не нужно (и обычно не следует) размещать solr на маршрутизируемом интерфейсе. Вместо этого привяжите свой сервер к :: 1
/ 127.0.0.1