2012-05-27 18 views
7

Para la producción, no es seguro tener un administrador de solr que incluso no solicite las credenciales de inicio de sesión. ¿Cómo puedo desactivar la página de administración de Solr que viene por defecto? Simplemente quiero que mi aplicación web use Solr para la indexación del término de búsqueda.Cómo deshabilitar la página de administrador de Solr

Respuesta

10

Recomiendo encarecidamente mantener la página de administración para la depuración. Me ha salvado en numerosos casos. Hay formas de restringirlo solo a usuarios autenticados por HTTP: http://wiki.apache.org/solr/SolrSecurity#Jetty_example. Puede que tenga que descomprimir y volver a comprimir su aplicación web.

Sin embargo, si aún desea deshabilitar toda la sección de administración, puede comentar el admin requestHandler en $ {SOLR_HOME} /project/solr/conf/solrconfig.xml.

2

Puede proteger su página de administración con una contraseña simplemente agregando una restricción de seguridad a la aplicación web Solr.

Fragmento para Solr 3.6:

<security-constraint> 
    <!-- This protects your admin interface and grants access to role Solr-Admin --> 
    <web-resource-collection> 
    <web-resource-name>Solr admin</web-resource-name> 
     <!--url-pattern>/admin/*</url-pattern--> 
     <url-pattern>/evu/admin/*</url-pattern> 
     <url-pattern>/webcrawl/admin/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>Solr-Admin</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
    </security-constraint> 

    <security-constraint> 
    <!-- This protects your admin interface and grants access to roles Solr-Admin and Solr-Updater --> 
    <web-resource-collection> 
     <web-resource-name>Solr Update</web-resource-name> 
     <url-pattern>/update/*</url-pattern> 
     <url-pattern>/evu/update/*</url-pattern> 
     <url-pattern>/webcrawl/update/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>Solr-Admin</role-name> 
     <role-name>Solr-Update</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
    </security-constraint> 

    <security-constraint> 
    <!-- This one is necessary to show the image on the Solr start page --> 
    <web-resource-collection> 
     <web-resource-name>Solr Admin images</web-resource-name> 
     <url-pattern>*.png</url-pattern> 
    </web-resource-collection> 
    <auth-contraint> 
     <role-name>*</role-name> 
    </auth-contraint> 
    </security-constraint> 

    <security-role> 
    <description>The role that is required to administer Solr</description> 
    <role-name>Solr-Admin</role-name> 
    </security-role> 
    <security-role> 
    <description>The role that is required to update the Solr index</description> 
    <role-name>Solr-Update</role-name> 
    </security-role> 

    <login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>Solr</realm-name> 
    </login-config> 
</web-app> 

En Solr 4 que tiene que proteger a los siguientes recursos para la interfaz de administración:

/admin/* 
/admin.html 
+0

En lo archivo para agregar este fragmento? – tasmaniski

+0

Eso sería web.xml. No estoy seguro sobre la configuración del muelle. – Maddin

-3

La forma más fácil:

iptables -A ENTRADA -p tcp --dport 8983 -j DROP

iptables -A ENTRADA -p tcp -s 127.0.0.1 --d puerto 8983 -j ACEPTA

con esta orden!

+0

Cuando probé esto, las secuencias de comandos de mi sitio ya no podían acceder a Solr, jugué un poco con iptables probando diferentes direcciones IP y otras cosas sin éxito (quizás debido a mi falta de conocimiento experto sobre esto). Todavía estoy buscando la respuesta fácil, sin suerte, haz mucho ... – JxAxMxIxN

+0

Porque orden equivocado. Aquí oneliner: 'iptables -A INPUT -p tcp -s localhost --dport 8983 -j ACCEPT && iptables -A INPUT -p tcp --dport 8983 -j DROP && iptables-save> iptables.rules && iptables-restore hlcs

0

sudo vim /opt/solr-4.8.1/example/etc/jetty.xml cambio

<!-- This connector is currently being used for Solr because it 
      showed better performance than nio.SelectChannelConnector 
      for typical Solr requests. --> 
    <Call name="addConnector"> 
     <Arg> 
      <New class="org.eclipse.jetty.server.bio.SocketConnector"> 
      <Set name="host">0.0.0.0</Set> 
      <Set name="port"><SystemProperty name="jetty.port" default="8983"/></Set> 
      <Set name="maxIdleTime">50000</Set> 
      <Set name="lowResourceMaxIdleTime">1500</Set> 
      <Set name="statsOn">false</Set> 
      </New> 
     </Arg> 
    </Call> 

a

<!-- This connector is currently being used for Solr because it 
      showed better performance than nio.SelectChannelConnector 
      for typical Solr requests. --> 
    <Call name="addConnector"> 
     <Arg> 
      <New class="org.eclipse.jetty.server.bio.SocketConnector"> 
      <Set name="host">127.0.0.1</Set> 
      <Set name="port"><SystemProperty name="jetty.port" default="8983"/></Set> 
      <Set name="maxIdleTime">50000</Set> 
      <Set name="lowResourceMaxIdleTime">1500</Set> 
      <Set name="statsOn">false</Set> 
      </New> 
     </Arg> 
    </Call> 

entonces el servicio sudo solrd reiniciar

Cuestiones relacionadas