Servidor web Centos 7

Tutorial per instal·lar un servidor LAMP amb sistema operatiu CentOS 7.6 a la meva manera.
Abans de començar, convé recalcar, que és possible que hi hagi comes algun error, o que algú ho faci d’alguna altra manera més fàcil i còmoda; S’accepten crítiques.
Tanmateix és possible que m’hagi explicat com el cul… d’aquí poc podem solucionar… 🙂

1. Requeriments

2. Notes

En aquest exemple d’instal·lació utilitzarem les següents dades

  • hostname gatet.localhost
  • La direcció física de l’equip serà 10.10.10.1
  • La porta d’enllaç 10.10.10.254
  • Els DNS utilitzarem uns interns de la xarxa i els públics de Google

3. Preparació del servidor

A continuació per configurar el servidor, desactivarem temporalment el firewall; Més endavant farem una petita configuració base del firewall, i en un futur post intentaré esplaiar-me una miqueta més.

Executem la següent comanda. La primera comanda instal·larem un paquet d’eines de xarxa. La segona aturem el servei de firewall i la tercera impedeix que el servei es torni a executar després d’un reinici o aturada del servidor.

Verifiquem que el firewall està desactivat amb la següent comanda.

També podem verificar que està aturat el servei amb la següent comanda:

Ara procedim a instal·lar el configurador visual de configuració de xarxa i l’eina per a descarregar contingut des d’un lloc web:

Configurem la targeta de xarxa del servidor amb segunet comanda:

Pulsem sobre “Edita una connexió”:

Seleccionem la targeta de xarxa i “Edita…”

Introduïm les dades que ens convinguin per la nostra instal·lació:

Guardem totes dades, i verifiquem amb la següent comanda que s’han aplicat correctament.

Si la targeta de xarxa no apareix, és molt probable que no estigui habilitat a l’inici, en aquest cas, hauríem d’editar l’arxiu de configuració, que el trobarem a la següent ruta:

Editem l’arxiu amb el nostre editor de textos preferit, en el meu cas el vi, però es podria utilitzar el nano

Verifiquem la línia on posa ONBOOT=”no” i la modifiquem

Desactivar SELinux

Editem l’arxiu config de la següent ruta:

Reiniciem l’equip perquè els canvis tinguin efecte

4. Habilitar repositoris adicionals i instal·lar software

Importem les claus GPG

Instal·lem i habilitem el repositori EPEL

Editem l’arxiu del repositori i modifiquem la seva prioritat

L’arxiu hauria de quedar així …

Actualitzem el sistema

Instal·lem les eines de desenvolupador

5. Instalar Apache, MySQL i phpMyAdmin

Instal·lem els següents paquets

Per evitar que el servidor sigui atacat a través de la vulnerabilitat HTTPOXY, editarem l’arxiu httpd.conf i afegirem la línia per desactivar les capçaleres HTTP_PROXY

Reiniciem el servei

6. Configuració del MySQL

Executem la seguent comanda:

Les respostes de l’instal·lador quedarien així:

7. Configurar phpMyAdmin

Editem l’arxiu de phpMyAdmin.conf i comentarem les dues línies de “Require ip” i afegirem una línia “Requiere all granted” dins de “<Directory /usr/share/phpMyAdmin/>”

Canviem el tipus d’autenticació del phpMyAdmin de cookie a http

Activem l’Apache perquè arranqui a l’inici

8. Instal·lar ClamAV

Editem l’arxiu de configuració de ClamAV a /etc/fresgclam.conf

Verificar que la línia “Example” està comentada

Activar les actualitzacions automàtiques del ClamAV a /etc/sysconfig/freshclam

Verifiquem que la línia FRESHCLAM_DELAY està comentada, si no ho està, la comentem

Activem el ClamAV

Creem un cron, per tal que es realitzin les actualitzacions de la base de dades de ClamAV

Afegim al cron el següent text

Per defecte, els serveis no funcionen.

Canviem el nom de l’arxiu

Modifiquem l’arxiu “[email protected]

Retirem l'”@” de “/lib/systemd/system/[email protected]”. Hauria de quedar quelcom així

Ara canviarem l’arxiu del servei clamd ( /usr/lib/systemd/system/clamd.service ), i comentem les següents línies

Afegim les següents línies i guardem el document

Ens dirigim a la següent carpeta …

Arranquem els serveis

9. Instal·lar Jailkit

Eina molt útil per engabiar a usuaris dins de la distribució de CentOS

Creem la ruta per engabiar als usuaris

Instal·lem l’aplicatiu

Instal·lem les eines necessàries per instal·lar el programari

Afegim un usuari

Vinculem l’engabiat a la “home” de l’usuari

Revisem que l’usuari estigui al chroot

Hi Hauria d’aparèixer quelcom semblant a això

10. Instal·lar Fail2Ban

Una eina molt útil per realitzar bloquejos d’IP mitjançant Iptables dels atacs que es puguin produir al nostre servidor

Creem l’arxiu de configuració

Afegim aquest text dins de jail.local

Configurem l’aplicació perquè arranqui a l’inici

En una altra entrada del bloc profunditzaré una miqueta més aquesta aplicació que realment és molt ben parida.
Deixaré l’enllaç aquí [ Configurar Fail2Ban ]

11. Instalar rkhunter

Una bona eina per detectar els rootkits al nostre sistema Linux

Un cop instal·lat l’aplicatiu, verifiquem la versió que s’ha instal·lat.

El resultat hauria de ser quelcom així…

Un cop verificat que s’ha instal·lat correctament i la versió que tenim, hem de treure una mostra de la situació actual del servidor. Per això, utilitzarem la següent ordre.

Un cop fet això hi hauria d’aparèixer alguna cosa semblant a això:

Ara, un cop feta la fotografia de com està el servidor actualment, podem realitzar una anàlisi complet del sistema amb la següent ordre.

Un cop fet això començarà a fer un “scan” del servidor, i anirà mostrant en pantalla els resultats. En els primers resultats apareixeran alguns warnings, que ometrem, com és el cas de “Checking for passwd file changes” i “Checking for group file changes” , ja que si tornem a realitzar un scan, ja desapareix.

Ens centrem amb el “Warning” que apareix en “Checking if SSH root access is allowed”, ja que l’accés del root per ssh està desactivat.

Per solucionar aquesta aquest warning farem el següent. Verifiquem l’arxiu de configuració de rkhunter.conf i verifiquem que ALLOW_SSH_ROOT_USER està en no

Verifiquem l’arxiu de configuració del ssd_config i comprovem que PermitRootLogin està amb no

Han de coincidir els dos valors. Per tant, hem de modificar el valor de l’arxiu de rkhunter, de unset a no. Un cop fet això tornem a realitzar un “scan” i veurem com ja no apareix el warning.

Creació d’informes diaris

Creem un script perquè rkhunter enviï un informe diari a un compte de correu electrònic.

Creem el següent document

Afegim el següent text, i posem el compte de correu electrònic on volem que enviï l’informe.

Modifiquem els permisos

12. Protegir el SSH

Creació d’una clau publica i una clau privada per accedir al servidor SSH i deshabilitar l’accés al servidor per usuari i paraula clau.

Per a generar les claus utilitzarem la comanda ssh-keygen

ssh-keygen genera dos arxius:
id_rsa és la clau privada, i ha d’anar a l’equip local ( el que conectarà al servidor ) (CLAU).
id_rsa.pub és la clau pública, la que ha d’anar instal·lada en el servidor ( CANDAU )

Copiem la clau pública al servidor remot.

Creem la carpeta i l’arxiu authorized_keys a l’equip remot

Copiem la clau i esborrem els arxius copiats al servidor

Deshabilitarem l’accés amb usuari i paraula clau al servidor, negarem l’accés a l’usuri root, modificarem el port d’accés i habilitarem uns usuaris per accedir.
Modifiquem l’arxiu /etc/ssh/sshd_config

Reiniciem el servei

Comentari final

Segur que he comès algun error o algú ho faria d’una altra manera, no m’ho tingueu en compte. S’accepten sempre millores!!! 🙂

Comproveu també

Root Robot Aspirador Xiaomi STYJ02YM

Si ets propietari d’un robot aspirador de la marca Xiaomi i en concret del Viomi …