Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
tecnica:anotaciones_tecnicas_servidoresvirtuales [2020/03/29 20:20] fmolinuevo [Backup de bases de datos] |
tecnica:anotaciones_tecnicas_servidoresvirtuales [2023/05/01 12:19] (actual) fmolinuevo [Sobre la configuración inicial] |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
====== Anotaciones técnicas sobre servidores en máquinas virtuales ====== | ====== Anotaciones técnicas sobre servidores en máquinas virtuales ====== | ||
+ | |||
+ | //Por Félix Molinuevo, [[axrglobal>|AXR Global]]// **:::** //Fecha creación: **20200329**// | ||
===== Introducción ===== | ===== Introducción ===== | ||
Línea 7: | Línea 9: | ||
Sin embargo, es imprescindible realizar varios trabajos que posibiliten la recuperación en caso de desastres, incluyendo avisos de errores y backups remotos. | Sin embargo, es imprescindible realizar varios trabajos que posibiliten la recuperación en caso de desastres, incluyendo avisos de errores y backups remotos. | ||
+ | Los pasos que indico acá someramente, son los que realizamos en AXR ((https://axrglobal.com/)) cuando instalamos un nueva instancia virtual. | ||
===== Sobre la configuración inicial ===== | ===== Sobre la configuración inicial ===== | ||
- | Instalado el sistema operativo básico, y los utilitarios estándares, se instalará por ejemplo, si será destinado a hosting, un sistema de administración de los clientes y hosts virtuales, como Virtualmin ((https://www.virtualmin.com/)). | + | Instalado el sistema operativo básico, y los utilitarios estándares, se instalará por ejemplo, si será destinado a hosting, un sistema de administración de los clientes y hosts virtuales, como **Virtualmin** ((https://www.virtualmin.com/)). |
+ | |||
+ | Para que los servicios funcionen adecuadamente, es imprescindible poner como hostname un FQDN (Fully Qualified Domain Name), por ejemplo srv01.dominio.com. Y ese FQDN debe tener su correspondiente registro A en el DNS, apuntando a la IP de la instancia. | ||
Virtualmin instalará todo lo necesario para un servidor de hosting, correo electrónico, scripting, bases de datos y muchos otros servicios. | Virtualmin instalará todo lo necesario para un servidor de hosting, correo electrónico, scripting, bases de datos y muchos otros servicios. | ||
- | Adicionalmente, instalo habitualmente: | + | Adicionalmente, instalo habitualmente varios utilitarios que facilitan la administración y el trabajo día a día: |
- | apt install screen zsh htop mc iptraf-ng bsd-mailx mutt rsync ccze aptitude | + | apt install screen zsh htop mc iptraf-ng bsd-mailx dnsutils mutt rsync ccze aptitude |
La configuración del shell **zsh** es lo que sigue a continuación, copiando el archivo .zshrc de algún servidor existente, y el prompt que utilizo para servidores de hosting virtuales. Luego se copia la configuración de **screen** en el archivo .screenrc y se prueba que todo funcione adecuadamente. | La configuración del shell **zsh** es lo que sigue a continuación, copiando el archivo .zshrc de algún servidor existente, y el prompt que utilizo para servidores de hosting virtuales. Luego se copia la configuración de **screen** en el archivo .screenrc y se prueba que todo funcione adecuadamente. | ||
- | Luego se elimina firewalld y se instala Shorewall y Nagios NRPE: | + | Para monitorear el servidor con Nagios, necesitamos instalar **Nagios NRPE** ((https://exchange.nagios.org/directory/Addons/Monitoring-Agents/NRPE--2D-Nagios-Remote-Plugin-Executor/details)): |
- | apt install shorewall nagios-nrpe-server | + | apt install nagios-nrpe-server |
- | Y se los configura. El último paso es probar que el firewall haya quedado correctamente configurado y no haya puertos innecesarios abiertos. | + | Y se configura Nagios NRPE, tanto en el servidor como en el cliente. |
+ | |||
+ | El último paso es activar el firewall **FirewallD** ((https://firewalld.org/)) y probar desde otra ubicación que haya quedado correctamente configurado y no haya **puertos innecesarios abiertos**. Para ello se puede usar por ejemplo, **Nmap** ((https://nmap.org/)). | ||
+ | |||
+ | Para que cualquier mensaje enviado a root llegue a alguna cuenta de monitoreo, se debe agregar el correspondiente alias en **/etc/aliases**: | ||
+ | |||
+ | root: direcciondemonitoreo@dominio | ||
+ | |||
+ | y ejecutar el comando **newaliases**. | ||
+ | |||
+ | Es necesario también revisar la configuración de **fail2ban** ((https://fail2ban.org/)) para asegurarse que quede como corresponde, activando las jails necesarias según los servicios instalados. Además, configuro el tiempo de bloqueo de IPs en una semana en /etc/fail2ban/jail.conf: | ||
+ | |||
+ | bantime = 7d | ||
+ | |||
+ | En algunos servidores virtuales quizá sea necesario configurar un archivo de swap. Aunque obviamente no es lo ideal, a veces es necesario. Para ello editar /etc/fstab, agregando una línea: | ||
+ | |||
+ | /swapfile none swap sw 0 0 | ||
+ | |||
+ | Y ejecutar los siguientes comandos: | ||
+ | |||
+ | fallocate -l 4G /swapfile | ||
+ | chmod 600 /swapfile | ||
+ | mkswap /swapfile | ||
+ | swapon -a | ||
===== Pasos finales ===== | ===== Pasos finales ===== | ||
Línea 36: | Línea 64: | ||
==== Backup de bases de datos ==== | ==== Backup de bases de datos ==== | ||
- | Para finalizar, copio un script de backup de todas las bases de datos MySQL, que las resguarda cada día, y otro que borra los backups más viejos que un lapso determinado, habitualmente 30 días. Los backups de las bases se guardan en **/srv/backups/mysql** | + | Para finalizar, copio un script de backup de todas las bases de datos MySQL, que las resguarda cada día, y otro que borra los archivos más viejos que un lapso determinado, habitualmente 30 días. Los backups de las bases se guardan en **/srv/backups/mysql** |
10 0 * * * /root/archivos/bkup-mysql | mail correo@dominio -s "servidorXX: DBs backup" 2>&1 > /dev/null | 10 0 * * * /root/archivos/bkup-mysql | mail correo@dominio -s "servidorXX: DBs backup" 2>&1 > /dev/null | ||
Línea 44: | Línea 72: | ||
Se debe agregar en alguno de los servidores de backup un proceso para que cada día se resguarden los datos de la nueva máquina virtual. Se utiliza para ello **Dirvish** ((http://dirvish.org/)), copiando un archivo de configuración de un servidor existente y adaptándolo al nuevo. | Se debe agregar en alguno de los servidores de backup un proceso para que cada día se resguarden los datos de la nueva máquina virtual. Se utiliza para ello **Dirvish** ((http://dirvish.org/)), copiando un archivo de configuración de un servidor existente y adaptándolo al nuevo. | ||
+ | |||
+ | **//Nota//**: es **muy importante** restaurar el backup en caso necesario, usando los mismos parámetros de Rsync que utiliza Dirvish, y que son los siguientes: | ||
+ | |||
+ | rsync -vrltH -D -pgo --numeric-ids --exclude-from=/ruta/al/archivo origen destino | ||
+ |