El hardering és el procés de configurar sistemes i serveis per reduir la seva superfície d'atac i minimitzar vulnerabilitats. Es basa a aplicar el mínim privilegi, tancar accessos innecessaris i reforçar la seguretat per fer el servidor molt més difícil de comprometre.
Per aquest projecte, hem fet el hardering a tots els serveis que fem servir i estan especificats a la rubrica:
SSH
DNS (BIND9)
FTP (vsftpd)
DHCP
LDAP (OpenLDAP)
Nota: Tota aquesta configuració que veuràs a continuació ha sigut ideada gràcies al GEM del repte, seguint les instruccions estrictes de la rúbrica.
SSH (Secure Shell)
Les tècniques de hardering que aplicarem al servei SSH són les següents:
- Canviar el port; del 22 al 2222.
- Prohibir l’accés a la màquina des de SSH amb root, per evitar cap usuari amb superprivilegis en remot.
- Afegir l’opció de “AllowUsers” per escollir qui farà servir el servei.
Per aconseguir-ho, editarem el seru arxiu de configuració:
sudo nano /etc/ssh/sshd_config
E inclourem les línies pertinents:
Port 2222
PermitRootLogin no
AllowUsers [usuari1] [usuari2]
S’hauria de veure similar a la captura:
Ja correctament configurat amb aquestes tècniques de hardering, confirmem que el servei funcioni correctament.
systemctl status sshd.service # <- Veiem l’estat del dimoni
sudo ss -tulnp | grep 2222 # <- Confirmem que esta corrent al port 2222
(Això mateix s’ha replicat a les màquines que porten SSH també).
DNS (Domain Name Service)
La tècnica que aplicarem al servei DNS és molt simple però molt útil. Ocultarem la seva versió. Això ens serveix si algú està fent enumeració d’aquest servei en concret no sàpiga que versió tenim evitant possibles vulneracions de seguretat de no estar actualitzada.
sudo nano /etc/bind/named.conf.options
version “No disponible”; # <- No mostrem la versió
Comprovem que funcioni el servei i en consultar no ens doni la versió:
systemctl status bind9.service # <- Veiem l’estat del dimoni
ping -c 4 google.com # <- Confirmem que esta funcionant correctament
FTP (File Transport Protocol)
Limitarem el servei FTP perquè l’usuari no es pugui moure de la seva home. També que pugi i descarregar arxius a part de desactivar l’inici de sessió anònimament perquè només usuaris autoritzats puguin accedir.
sudo nano /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
write_enable=YES
I reiniciem: el servei després d’editar la seva configuració:
sudo systemctl restart vsftpd.service
Si ara ens provem de connectar i tractar de sortir de la home o iniciar sessió anònimament, a causa de la configuració no ens deixarà.


DHCP (Dynamic Host Configuration Protocol)
Novament, editarem un arxiu de configuració, ara per evitar que el tràfic del nostre DHCP surti per una targeta de xarxa incorrecta.
sudo nano /etc/default/isc-dhcp-server
I veurem si a la línia de INTERFACESv4 aquesta escollida la targeta correcta, si no és així, la canviem.
I tornem a reiniciar serveis
sudo systemctl restart isc-dhcp-server
LDAP (Lightweight Directory Access Protocol)
No volem que les contrasenyes viatgin en text pla per la xarxa.
Força TLS: Se sol fer mitjançant fitxers .ldif. El més senzill és configurar el dimoni perquè només escolti a la interfície local o mitjançant ldaps.
/etc/default/slapd
SLAPD_SERVICES=”ldap://127.0.0.1:389/ ldaps:/// ldapi:///”
(Això fa que el port 389 només sigui accessible des del propi servidor i obliga a fer servir LDAPS per a la resta).
I tornem a reiniciar el servei per veure si funciona tot correctament després de la nova configuració:
sudo systemctl restart slapd.service
sudo systemctl status slapd.service