it-swarm-es.com

¿Cuál es la configuración ideal para abordar los problemas de seguridad?

Soy consciente de los requisitos WP para que ciertos directorios y archivos puedan escribirse. También soy consciente de que hacer los permisos demasiado flojos puede abrir agujeros de seguridad. Finalmente, sé que el usuario que (inserte su servidor aquí) se ejecuta como en los sistemas Linux puede ser un factor.

Aparte de la seguridad, me gusta poder descargar temas y complementos a mi blog y actualizarlos cuando sea necesario. Los permisos apropiados parecen estar un poco en desacuerdo con esta preferencia.

He recopilado pequeños detalles aquí y allá, pero me gustaría ver una respuesta más definitiva, si la hay: ¿cuál es la configuración preferida con un guiño a la seguridad? Qué permisos deben estar en su lugar, qué usuario debe ejecutar el sitio, etc.

8
Grant Palin

Si tiene acceso de FTP a su servidor, la configuración más segura es que su servidor web no pueda escribir sus directorios de temas o complementos y, en su lugar, tener archivos de actualización de WordPress utilizando FTP. Cuando vaya a actualizar un complemento, WordPress le solicitará los detalles de su FTP.

El método FTP es mucho más lento que las escrituras directas de archivos, pero es mucho más seguro ya que un script no autorizado no podrá modificar sus archivos.

10
Viper007Bond

Como señaló @ Viper007Bond, la actualización de su núcleo, complementos y temas a través de los mecanismos de actualización incorporados es bastante segura, en lo que respecta a los permisos de archivos, ya que pueden usar sus credenciales de usuario reales. Para mayor seguridad, desea asegurarse de que tiene instalada la extensión SSH2 PHP . El método de instalación (si es posible) puede variar de un Host a otro, por lo que si aún no está allí, es posible que deba solicitar el servicio de alojamiento o hacer una búsqueda en Google.

Muchos servicios de alojamiento compartido utilizarán suexec en su configuración de Apache, de modo que el servicio web se ejecute como el usuario real. Esto elimina la mayoría de los problemas de permisos y ayuda a proteger sus archivos de otros usuarios en el servidor. Sin embargo, en los casos en que Apache se ejecuta como un usuario separado, si desea cargar archivos en WordPress, debe abrir permisos en el directorio de carga.

En este caso, es probable que desee que su directorio wp-content/uploads tenga 0713 permisos, (AKA rwx--x-wx). Esto le da al propietario del directorio permisos completos, su grupo puede leer archivos si conocen la ruta completa, y otros (incluido el servidor web) pueden leer archivos a los que conocen la ruta y Puede crear/escribir archivos.

Algunos complementos de almacenamiento en caché también esperan tener un directorio wp-content/cache (o similar) disponible en el que puedan escribir. El mismo consejo de permisos se aplicaría a eso.

Por último, para los enlaces permanentes largos, WordPress debe poder modificar el archivo .htaccess, a menos que planee actualizarlo manualmente. En este caso, querría 0646 para el modo de archivo. Sin embargo, una vez que se haya asentado en su estructura de enlace permanente, normalmente no necesitará cambiar esto nuevamente, por lo que podría desactivar los permisos de escritura adicionales y establecerlo en 0644. Ocasionalmente, una actualización del complemento o del núcleo puede requerir acceso a la misma, y ​​usted podría activar temporalmente los permisos de escritura para eso, y luego volver a desactivarlo.

Todos los demás archivos deben tener permisos 0644. Los directorios deben ser 0711 si eres extra-paranoico, pero eso podría interferir con cualquier complemento que necesite obtener una lista de archivos de un directorio. En ese caso, o si no eres tan paranoico, usa 0755, que permitirá a otros leer, pero no escribir.

La mayoría de esto es principalmente una preocupación si usted está en un alojamiento compartido. Si tiene un servidor dedicado (incluido VPS), sin ningún otro usuario que tenga acceso ssh/ftp, puede relajarse un poco más. No quiero decir que solo debe hacer que todo se pueda escribir abiertamente, pero probablemente solo puede confiar en los valores predeterminados del sistema, que probablemente serán permisos 0755 en directorios en lugar de 0711.

Si es una opción, instale un certificado SSL para el sitio, y una vez que haya probado que puede acceder a su sitio a través de https, puede forzar SSL para los inicios de sesión de administrador y el acceso agregando estas líneas a su archivo wp-config.php, justo antes El comentario 'Stop edit':

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
8
Dougal Campbell