¿Qué necesito?

  • Un servidor Linux dedicado o VPS
  • CentOS 8
  • Masilla para ventanas

¿Qué es WordPress?

WordPress es la forma más fácil y popular de comenzar un nuevo sitio web o blog. Es compatible con más del 38% de todos los sitios web y el 63% de todos los sistemas de gestión de contenido utilizados en todo el mundo. Sin lugar a dudas, es un favorito como sistema de gestión de contenido de código abierto que permite cambios avanzados a nivel de código. La conclusión es que WordPress hace que la creación de sitios web sea fácil y divertida, especialmente para todos, incluso para aquellos que no son desarrolladores.

  1. Prepara tu servidor
  1. Conéctese a su servidor mediante la consola SSH. Recomendaría usar Putty para esto, ya que es muy fácil de usar.
  2. Actualice CentOS a la última versión:
    sudo dnf update -y
  1. Establecer el nombre del servidor:
    1. sudo hostnamectl set-hostname server.example.com
  1. Instale paquetes adicionales que no están incluidos en la instalación estándar de CentOS:
    sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
  1. Instale cualquier otro componente necesario:
sudo dnf install httpd mariadb mariadb-server php php-common php-gd php-xml 
php-mbstring mod_ssl php php-pdo php-mysqlnd php-opcache php-xml php-gd php-devel 
php-json mod_ssl fail2ban nano firewalld certbot wget -y
  1. Inicie y active firewalld:
sudo systemctl start firewalld

sudo systemctl enable firewalld

sudo firewall-cmd --permanent --zone=public --add-service=http

sudo firewall-cmd --permanent --zone=public --add-service=https

sudo firewall-cmd --reload
  1. Activar Fail2ban:
sudo systemctl enable fail2ban
  1. Inicie su editor de texto para editar el archivo de configuración:
sudo nano /etc/fail2ban/jail.conf

Cómo instalar WordPress desde la línea de comandos

  1. Comente iptables y agregue firewalld:
#banaction = iptables-multiport

#banaction_allports = iptables-allports

banaction = firewallcmd-multiport

banaction_allports = firewallcmd-allports
  1. Desplácese hacia abajo hasta sshd y cambie a habilitado:

Cómo instalar WordPress desde la línea de comandos

[sshd]

enabled = true
  1. Salga de su editor con ‘Ctrl + x’, presione ‘y’ y luego ‘Enter’ para guardar.
  2. Reinicie fail2ban después de la configuración:
sudo systemctl restart fail2ban
  1. Compruebe si fail2ban está funcionando. Los clientes bloqueados deberían ser cero por ahora. Sin embargo, si verifica con estos comandos una vez completada la instalación, debería haber varias direcciones IP prohibidas, ya que los robots de vulnerabilidad automáticos escanean todo.
sudo tail -n 100 /var/log/secure | grep -i failed | tail -n 5

sudo fail2ban-client status sshd

Cómo instalar WordPress desde la línea de comandos

  1. Inicie y active Apache, Mariadb e inicie la instalación segura de MySQL:
sudo systemctl start httpd

sudo systemctl start mariadb

sudo systemctl enable httpd

sudo systemctl enable mariadb

sudo mysql_secure_installation

Cómo instalar WordPress desde la línea de comandos

  1. Debe asegurar su instalación de SQL con las siguientes entradas y asegurarse de cambiar la contraseña por una compleja. En serio.
Answers to mysql secure installation:

Set root password? [Y/n] Y 3iMC2GVavHJ^u8#rx#mA

Remove anonymous users? [Y/n] y

Disallow root login remotely? [Y/n] y

Remove test database and access to it? [Y/n] y

Reload privilege tables now? [Y/n] y

Create database for mariadb, you should use different password for both root mariadb password
 and wordpress database password:

mysql -u root -p

CREATE DATABASE wordpress;

GRANT ALL PRIVILEGES on wordpress.* to 'wordpress_user'@'localhost' identified by 
'UyWqwqrK5rysYXFQGoNHF';

FLUSH PRIVILEGES;

Exit
  1. Cree un archivo de configuración SSL y genere el certificado Let’s Encrypt:
grep DocumentRoot /etc/httpd/conf.d/ssl.conf

sudo certbot certonly --webroot -w /var/www/html/ --renew-by-default --email 
webmaster@example.com --text --agree-tos  -d example.com -d www.example.com

sudo ls /etc/letsencrypt/live/example.com/
  1. Configuremos el plan de renovación:
crontab -e
  1. Inserte un programa que se ejecute semanalmente:
0 0 * * 0 /usr/bin/certbot renew >> /var/log/certbot-renew.log

Cómo instalar WordPress desde la línea de comandos

  1. Configure la configuración SSL:
sudo nano /etc/httpd/conf.d/ssl.conf

Cómo instalar WordPress desde la línea de comandos

  1. Reenvíe HTTP a HTTPS en el archivo de configuración SSL.
  2. Agregue el siguiente código para reenviar http a https:
<VirtualHost *:80>

  ServerName example.com

  ServerAlias www.example.com

  Redirect permanent / https://example.com/

</VirtualHost>

Cómo instalar WordPress desde la línea de comandos

  1. Comente la configuración SSL creada previamente, especifique las ubicaciones de los archivos del certificado SSL y defina los protocolos SSL y los conjuntos de cifrado. Así es como nos aseguramos de obtener una puntuación alta en las pruebas posteriores.
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem

SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:
ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:
DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:
ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:
ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:
DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:
DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:
AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:
!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

SSLHonorCipherOrder     on

SSLOptions +StrictRequire

Cómo instalar WordPress desde la línea de comandos

  1. Después de establecer la configuración de SSL, reinicie los servicios de Apache.
  2. Reinicie los servicios de Apache:
sudo apachectl -t

sudo systemctl restart httpd
  1. Para garantizar la seguridad, recomendaría probar su configuración SSL con ssllabs.com.

Cómo instalar WordPress desde la línea de comandos

  1. Instalar WordPress
  1. Obtenga WordPress:
sudo wget http://wordpress.org/latest.tar.gz
  1. Extraiga el archivo:
tar -xzvf latest.tar.gz
  1. Crea un directorio de WordPress:
sudo cp -avr wordpress/* /var/www/html/
  1. Restaure los contextos de seguridad predeterminados de SELinux:
restorecon -r /var/www/html
  1. Crear directorio de carga:
sudo mkdir /var/www/html/wp-content/uploads
  1. Se muestran los permisos correctos para los directorios:
sudo chown -R apache:apache /var/www/html/

sudo chmod -R 755 /var/www/html/

cd /var/www/html/
  1. Copie la configuración de muestra de WordPress en un nuevo archivo de configuración de WordPress:
sudo mv wp-config-sample.php wp-config.php
  1. Edite el archivo de configuración de WordPress:
sudo nano wp-config.php

Cómo instalar WordPress desde la línea de comandos

  1. Ingrese el usuario y la contraseña de la base de datos previamente definidos:
define( 'DB_NAME', 'wordpress' );

/** MySQL database username */

define( 'DB_USER', 'wordpress_user' );

/** MySQL database password */

define( 'DB_PASSWORD', 'UyWqwqrK5rysYXFQGoNHF' )
  1. Sal y hash las contraseñas de WordPress. Este es un paso importante para asegurarse de que nadie tenga una estimación de lo que ha estado haciendo con respecto a las contraseñas y claves. Obtenga sal y hachís solo en https://api.wordpress.org/secret-key/1.1/salt/.
  1. Cómo instalar WordPress desde la línea de comandos
  2. Copie y pegue los secretos del sitio.
  1. Su instalación de WordPress ahora está parcialmente completa, por lo que ahora debería poder completar la instalación desde su navegador.
  1. Cómo instalar WordPress desde la línea de comandos
  2. Una vez que aterrice, su primer punto de contacto debería ser verificar las actualizaciones disponibles.
  3. Cómo instalar WordPress desde la línea de comandos

Próximos pasos

Personalmente, le recomiendo que use WPSEC para verificar su instalación en busca de vulnerabilidades y problemas de seguridad. WPSEC es un gran sitio web que puede utilizar para ejecutar análisis de vulnerabilidades de forma gratuita. Pruébelo y haga lo que sea necesario para solucionar lo que surja, ya que son las mismas fallas de seguridad que los piratas informáticos y otros usarán para piratear su sitio web o alquilar su sitio web como parte de una botnet.

Conclusión

WordPress es una de las plataformas más versátiles para crear sitios web atractivos y divertidos. Su flexibilidad y el hecho de que sea de código abierto también es el arma de doble filo, por así decirlo, ya que significa que se convierte en un objetivo para los malos actores. La clave para mitigar esta amenaza omnipresente es tener actualizaciones y actualizaciones periódicas y descargar un complemento llamado Wordfence para que pueda mantenerse protegido y prohibir a los malos actores que llaman a su puerta.