Instalación de WordPress(con tienda woocomerce) centos 7

¿En qué podemos ayudarte?
< Regresar
Estás aquí:
Imprimir

Pre-requisitos

Haber instalado el servidor centOS 7, siguiendo esta guía y/o esta referencia

crear virtualhost en apache (con ispconfig, si va a producción).

Instalación

Descarga wordpress en /tmp

Descompactar wordpress en el directorio raiz de los documentos /var/www/site/web/wordpress

# tar -xvzf latest.tar.gz -C /var/www/site/web/wordpress

mueve los archivos a raíz, ir al document root, borrar el directorio wordpress

# mv /var/www/site/web/wordpress/* /var/www/site/web

# cd /var/www/site/web

# rm -rf wordpress

Asignar usuarios de Apache al folder de wordpress

# chown -R apache:apache /var/www/site/web

Crea DB y usuario en MariaDB

# Mysql (ó Mysql -u root -p)

MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS wpDBname DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

MariaDB [(none)]> CREATE USER ‘user_wp’@’localhost’ IDENTIFIED BY ‘Password’;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON DATABASE.* TO ‘user_wp’@’localhost’;

MariaDB [(none)]> FLUSH PRIVILEGES;

En caso de requerir restaurar un respaldo de una base de datos y que se haya hecho con mysqldump

# mysql -u root -p wpDBname < backup_filename.sql

Ir  a la pagina del server para iniciar la instalación

  1. http://www.site.com
  1. Introducir los datos, que se configuraron en el paso anterior.

Base de Datos.

Usuario

Password

Servidor: localhost

Default prefix: wp_

  1. Siguiente paso es seleccionar el idioma español México.
  1. Se crea el usuario de administración de wordpress: adminuser
  1. Se crea el password para el usuarios de  administración: Password
  1. Iniciar sesion en WordPress
  1. Elija la opción correcta de México para “Zona horaria (Timezone)” en la sección Ajustes (Settings) > Generales
  1. Elija la opción “Nombre de la entrada (Post name)” en la sección Ajustes (Settings) > Enlaces permanentes (Permalinks)
  1. Deseleccione la opción “Permitir avisos de enlaces de otros blogs (pingbacks y trackbacks) en las nuevas entradas” en la sección Ajustes (Settings) > Comentarios (Duscussion)
  1. Seleccione la opción “El comentario debe aprobarse manualmente.” en la sección Ajustes (Settings) > Comentarios (Duscussion)

Hacer seguro a wordpress

El siguiente paso se recomienda si se tiene una ip fija y solo se administrara desde esa(s) IPs. Estas lineas solo permitirán el acceso a las IPs puestas en el archivo.

Asegurarse que se está ubicado en el directorio raíz de los documentos

# nano .htaccess

> file lines;

# BEGIN WordPress
</IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)?wp-login.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^LOCALIPADDRESS$
RewriteCond %{REMOTE_ADDR} !^REMOTEIPADDRESS$
RewriteRule ^(.*)$ - [R=403,L]
</IfModule mod_rewrite.c>
# END WordPress

Salvar archivo y probar, no es necesario reiniciar el demonio de httpd o algún otro, conecta el browser a la vpn y trata de entrar a administrar.

Instalación Fail2ban

Nos tenemos que asegurar que el fail2ban se ejecute antes que todos los plugins,seguir la instalación aquí

Cambiar el wp-content (iThemes Security – anteriormente Better WP Security)

  1. Instalar y activar plug in iThemes Security (Este plugin de seguridad puede sustituir a otros ya puestos, solo lo vamos a usar para cambiar el acceso directo a wp-admin y wp-content)
  1. Nos vamos al plugin y nos pondra en la parte de security checks
  1. Apretar botón de secure site para protección básica
  1. Ver que fue lo que protegio al finalizar la ejecución
  1. Si hay algo que no protegio o dio error hay que verificar si eso que fallo no esta siendo ya protegido por otros plugins (por ejemplo brutforce sera protegido por otro plugin).
  1. En la parte de buscar modulos, buscar la palabra “content”, esto encuentra el modulo “Change Content Directory” (hay que estar seguro que tenemos respaldo de nuestro sitio y base de datos).
  1. Modificar el directorio por ejemplo wp-site-content
  1. Después de salvar los cambios, es posible que de un error de navegador, es esperado, se puede validar el cambio, dando un ls -alF en el directorio raiz de wordpress y validar si esta el directorio que fue puesto en la configuracion del punto anterior.
  1. Cerrar sesión de wordpress y entrar de nuevo, validar que todo jale ok
  1. En caso contrario restaurar todo desde respaldo

Cambiar el wp-admin iThemes Security

  1. Seleccionar el plug in iThemes Security .
  1. En la parte de buscar modulos, buscar la palabra “hide” ó “ocultar”, esto encuentra el modulo “Hide Backend”
  1. Modificar el campo de slug, por ejemplo: site-login
  1. Salvar los cambios, cerrar sesion y entrar con el nuevo slug al panel de admin

Instalar Google Authenticator app en el celular para Two Factor Authentication

Desde el celular instalar el Google Authenticator app desde la tienda de apps del telefono

Instalar y activar wordfence plugin

  1. Seleccionar firewall
  1. Seleccionar “Manage Firewall”
  1. Si pregunta “Do you want Wordfence to stay up-to-date automatically?“, contestar que si.
  1. Para optimizar Wordfence, dar click en “Click here to configure”, esto descargara el .htaccess y ponerlo en un sitio seguro, renombrarlo con el nombre de sitio para que no se confunda con otro .htacces.
  1. Seleccionar “Advanced Firewall Options
  1. Seleccionar “Delay IP and Country blocking until after WordPress and plugins have loaded (only process firewall rules early)
  1. En la sección de “Whitelisted IP addresses that bypass all rules”  iran las ips o segmento de ips que no bloqueara el plug in, poner la ip de internet y el segmento de red local (ejemplo 187.xxx.xxx.xxx, 192.168.xxx.0/24, 127.0.0.1)
  1. Seleccionar sección BruteForce  y validar que Enable brute force protection este ON
  1. Lock out after how many login failures =4
  1. Lock out after how many forgot password attempts=4
  1. Amount of time a user is locked out= 1 hora
  1. Habilitar Block IPs who send POST requests with blank User-Agent and Referer
  1. Validar que ese habilitado Enable Rate Limiting and Advanced Blocking
  1.  Habilitar Veryfi Google Crawlers will not be rate-limited
  1. If anyone’s requests exceed =240
  1. If a crawler’s page views exceed =240
  1. If a crawler’s pages not found (404s) exceed =60 min
  1.  If a human’s page views exceed =120
  1. If a human’s pages not found (404s) exceed = 60
  1. How long is an IP address blocked when it breaks a rule=30

Salvar cambios En firewall tab cambiar “lerning mode” a “enabling and protect Scan” para checar que todo bien

  1. Seleccionar “Login Security Settings” del menu de la izquierda.
  1. Habilitar “Require 2FA for all administrators”
  1. Agregar as mismas ips y redes que en paso 7 en “Allowlisted IP addresses that bypass 2FA”
  1. Seleccionar tab de 2 FACTOR AUTH y abrir la app en el telefono de goolgle auth.
  1. Escanear el codigo de barras.
  1. Descargar los codigos de seguridad y validar que el archivo haga referencia al sitio.
  1. Introducir un codigo generado en el celular para activar el TWO FACTOR AUTH

Creando un user y password para acceder al wp-admin(http auth)

Pre requisitos tener instalado httpd-tools(yum install httpd-tools -y)

Crear un archivo con el usuario y password (si el archivo ya existe quitar el -c del comando)

# htpasswd -c /etc/httpd/.htpassword admin

Verificar que este archivo creado tenga permisos 644 y que pertenezca apache:apache

# ll /etc/httpd/.htpassword

# chmod 644 /etc/httpd/.htpassword

# chown apache:apache /etc/httpd/.htpassword

Crea un .htaccess en wp-admin

# nano /var/www/site/web/wp-admin/.htaccess

AuthType Basic
AuthName "Authentication Required"
AuthUserFile /etc/httpd/.htpassword
Require valid-user admin

Probar el acceso debe pedir usuario y password en autenticación de http

Instalar y activar Sucuri Audit malware plugin

  1. Generar Api
  1. Ir a hardering tab que esta en settings (Ajustes->Refuerzo) y habilitar todas las opciones.

Instalar y activar UpdraftPlus plugin

  1. Crear la primera copia de respaldo, configurar todo lo que requiere para esta copia siguiendo los pasos en pantalla.
  1. Configurar las fechas y horas de respaldo y mandar a la nube
  1. Probar el restore en alguna otra vm

Instalación de “WP Mail SMTP” – WPForms

  1. Instalar y activar WP Mail SMTP plugin.
  1. Seleccionar de ajustes o de la pagina de configuración que sale la opción de “Otro Servidor SMTP”
  1. Configurar datos de SMTP

Instalar y activar WooCommerce

Se requiere que el sitio sea accesado por https, ver guía para crear certificados

Hasta este punto termina la instalación de la seguridad del sitio, gnerarr un respaldo o un snapshot.

Permisos para poner en producción MARIADB

Estos permisos no dejan que se instalen plugis

# mysql

MariaDB[(none)]>REVOKE ALL PRIVILEGES, GRANT OPTION FROM ‘user_wp’@’localhost’;

MariaDB[(none)]>GRANT SELECT, INSERT, UPDATE, DELETE ON DATABASE.* TO ‘user_wp’@’localhost’;

MariaDB[(none)]>FLUSH PRIVILEGES;

Para instalar plugins o themas modificar permisos

MariaDB[(none)]>GRANT ALL PRIVILEGES ON DATABASE.* TO ‘user_wp’@’localhost’;

MariaDB[(none)]>FLUSH PRIVILEGES;

Modificar vhost

Agregar las siguientes lineas al final del vhost

Header always set Strict-Transport-Security: "max-age=31536000; includeSubdomains"
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options nosniff
Header always append X-Frame-Options SAMEORIGIN
Header always set Content-Security-Policy: "default-src 'none'; script-src https://www.domain.com"
Table of Contents

Deja un comentario