GNU/Linux >> Tutoriales Linux >  >> Linux

Mejores prácticas de seguridad de Wordpress en Linux

WordPress® es un excelente sistema de administración de contenido (CMS), especialmente si es nuevo en los blogs o la codificación. Sin embargo, debido a la gran cantidad de instalaciones de WordPress, Wordpress se ha convertido en un objetivo para los atacantes. La buena noticia es que hay muchos pasos que puede seguir para que su instalación de WordPress sea más segura.

Usuarios y permisos de Linux

Es común que los usuarios que son nuevos en WordPress configuren sus permisos completamente abiertos (establecen 777 permisos) cuando ven un Permission Denied error de WordPress. Esta configuración permite que cualquier usuario (más importante, el proceso del servidor web) modifique los archivos en su instalación de WordPress. Para bloquear esto, le recomendamos que cree un usuario para cada instalación de WordPress como usuario del protocolo de transferencia de archivos (FTP) para el sitio. Este artículo asume que tiene un solo sitio y que llama a este servidor wp-user .

Use el siguiente comando para crear este usuario:

sudo useradd wp-user -d /home/wp-user -m -s /bin/false

Nota :Le recomendamos que utilice únicamente la autenticación de clave Secure Shell (SSH). Si planea utilizar la autenticación de contraseña para FTP, debe crear una contraseña segura para el usuario.

Establecer permisos

Debe hacer que un usuario, que no sea el usuario del sistema del servicio web, sea el propietario de la raíz del documento de su sitio. También debe denegar los permisos de escritura al servicio web. El servicio web solo necesita permiso de lectura para servir contenido, y asignarle permisos de escritura o ejecución deja un vector de ataque para personas ajenas. Sin embargo, debido a que WordPress debe poder cargar archivos y actualizar su propio código, debe cambiar ligeramente estas reglas.

Por ejemplo, debe establecer la propiedad de todo el directorio como wp-user:www-data .

Esta configuración significa que wp-user tiene propiedad de usuario, y www-data (el usuario del sistema para el servidor web Apache®) tiene propiedad de grupo. Dependiendo de su sistema operativo, este usuario también podría llamarse httpd o apache . Si está utilizando nginx®, el usuario es nginx . Para establecer permisos, ejecute el siguiente comando, reemplazando el valor de ejemplo /var/www/example.com/ con el documento raíz de su sitio:

sudo chown -R wp-user:www-data /var/www/example.com/

Utilice los siguientes permisos básicos para su instalación de WordPress:

  • 755 (drwxr-xr-x) para carpetas
  • 644 (-rw-r–r–) para archivos

Estos permisos otorgan wp-user la capacidad de modificar cualquier cosa y el acceso de solo lectura del servidor web.

El siguiente ejemplo muestra cómo asignar estos permisos:

find /var/www/example.com/ -type d -exec sudo chmod  755 {} \;
find /var/www/example.com/ -type f -exec sudo chmod 644 {} \;

Estos permisos otorgan wp-user la capacidad de modificar cualquier cosa y el acceso de solo lectura del servidor web. Si bien esta es una práctica común para los sitios estáticos, hay algunos archivos a los que WordPress debe poder acceder y ejecutar para funcionar correctamente. La siguiente lista muestra las excepciones y los permisos que necesita establecer, asumiendo la misma raíz del documento:

  • find /var/www/example.com/wp-content/uploads -type d -exec sudo chmod 775 {} \;
  • find /var/www/example.com/wp-content/upgrade -type d -exec sudo chmod 775 {} \;
  • find /var/www/example.com/wp-content/themes -type d -exec sudo chmod 775 {} \;
  • find /var/www/example.com/wp-content/plugins -type d -exec sudo chmod 775 {} \;
  • find /var/www/example.com/wp-content/uploads -type f -exec sudo chmod 664 {} \;
  • find /var/www/example.com/wp-content/upgrade -type f -exec sudo chmod 664 {} \;
  • find /var/www/example.com/wp-content/themes -type f -exec sudo chmod 664 {} \;
  • find /var/www/example.com/wp-content/plugins -type f -exec sudo chmod 664 {} \;
  • sudo chmod 775 /var/www/example.com/wp-config.php

WordPress utiliza estos directorios para actualizaciones del sistema, actualizaciones de temas y complementos, y carga de archivos adjuntos de blog (generalmente imágenes).

usuario administrador de WordPress

Similar al usuario raíz de Linux®, su instalación de WordPress viene con un administrador usuario. Debido a que este es un usuario administrativo que existe en casi todas las instalaciones de WordPress, los piratas informáticos lo atacan en ataques de fuerza bruta. La forma más fácil de cerrar este vector de ataque es eliminar al usuario administrador. Le recomendamos que cree un usuario con un nombre diferente, le otorgue privilegios de administrador y luego elimine el usuario administrador.

Actualizaciones seguras

FTP es intrínsecamente inseguro, especialmente cuando utiliza autenticación basada en contraseña. Es mucho más seguro configurar actualizaciones de claves SSH en lugar de usar contraseñas. Utilice los siguientes pasos para configurar actualizaciones de claves SSH:

  1. Asegúrese de que los paquetes necesarios estén instalados en su sistema. En Ubuntu® o Debian®, ejecute los siguientes comandos:

    sudo apt-get update
    sudo apt-get install php5-dev libssh2-php libssh2-1-dev
    
  2. Configura tu acceso SSH, realizando los siguientes pasos como wp-user . Porque no permitió el inicio de sesión como wp-user , debe abrir un shell con el siguiente comando sudo:

    sudo -u wp-user /bin/bash
    
  3. Use los siguientes comandos para moverse al wp-user directorio de inicio y configurar claves SSH:

    cd ~
    ssh-keygen -t rsa -b 4096
    mkdir ~/.ssh; cd ~/.ssh
    echo 'from="127.0.0.1"' cat ~/.ssh/id_rsa.pub > authorized_keys
    exit
    
  4. A continuación, asegúrese de configurar los permisos correctamente mediante los siguientes comandos:

    sudo chmod 700 /home/wp-user/.ssh
    sudo chmod 040 /home/wp-user/.ssh/*
    sudo chmod 644 /home/wp-user/.ssh/authorized_keys
    
  5. Agregue las siguientes líneas a su /var/www/example.com/wp-config.php archivo:

    define('FTP_PUBKEY','/home/wp-user/id_rsa.pub');
    define('FTP_PRIVKEY','/home/wp-user/id_rsa');
    define('FTP_USER','wp-user');
    define('FTP_PASS','');
    define('FTP_HOST','127.0.0.1:22');
    

Debería poder actualizar WordPress, complementos y temas sin que se le solicite la información de inicio de sesión.

Complementos

Le recomendamos que utilice la menor cantidad posible de complementos para lograr los resultados que desea. Sin embargo, le recomendamos que utilice los siguientes complementos para promover la seguridad:

  • WP Security Pro :Este es un complemento todo en uno que tiene funciones de protección como protección de inicio de sesión, escáner de malware, autenticación de dos factores y un firewall.
  • Deshabilitar XML-RPC :puede bloquear XML-RPC utilizando un .htaccess expediente. Sin embargo, a menos que tenga una razón de peso para necesitar el control remoto de su instalación de WordPress, es mejor desactivarlo para evitar ataques de pingback.
  • Disqus :Debido a que el sistema de comentarios de usuario incorporado para WordPress es muy propenso al spam, le recomendamos que deshabilite el registro abierto. Haga esto navegando a Configuración> General , luego desmarque Cualquiera puede registrarse . Luego use Disqus para moderar los comentarios y haga que los usuarios se autentiquen en sus cuentas de Facebook® o Google®.

Linux
  1. ¿Qué es un usuario de Linux?

  2. Prácticas recomendadas de seguridad de OpenSSH

  3. Lista de usuarios en Linux:el mejor método

  4. 8 mejores prácticas con sudo en Linux:qué hacer y qué no hacer con sudo

  5. Instalar WordPress en Linux con Apache

Endurecimiento de servidores Linux:mejores prácticas

Configuración del servidor Ubuntu:mejores prácticas de seguridad

Seguridad de Linux frente a Windows

5 prácticas recomendadas de seguridad SSH de Linux para proteger sus sistemas

Las 20 mejores herramientas de seguridad de Linux:la elección de los expertos de Linux

Más de 20 mejores software de cámara Linux | IP, cámara web, CCTV y cámara de seguridad