HARDERING DE SERVEIS

1. SSH — Totes les màquines

Què protegim i per què: SSH és el servei més exposat. Per defecte usa el port 22 que és el primer que escanegen els atacants.

 

sudo nano /etc/ssh/sshd_config

Afegir o modificar les seguents lineas:

# Canvi de port per dificultar escannejos automatitzats
Port 2222

# Desactivar login com a root directament
PermitRootLogin no

# Maxim d’intents de password abans de desconnectar
MaxAuthTries 3

# Temps maxim per autenticar-se
LoginGraceTime 30

# Desactivar autenticacio per password, nomes claus SSH
PasswordAuthentication yes

# Limitar usuaris que poden connectar-se per SSH
AllowUsers vagrant

# Desactivar reenvio X11 (innecessari en servidors)
X11Forwarding no

# Desactivar reenvio TCP
AllowTcpForwarding no

Reiniciar servei:

sudo systemctl restart sshd

2. DHCP — debian5 i debian6

Què protegim i per què: El servidor DHCP per defecte escolta a totes les interfícies. Cal restringir-lo a la interfície LAN per evitar que respongui peticions de xarxes no autoritzades.

 

sudo nano /etc/default/isc-dhcp-server

# Nomes escolta per la interficie LAN interna
INTERFACESv4=”enp0s8″
INTERFACESv6=””

Restringir permisos per el fitxer de configuració:

sudo chmod 640 /etc/dhcp/dhcpd.conf sudo chown root:root /etc/dhcp/dhcpd.conf

Reiniciar servei:

sudo systemctl restart isc-dhcp-server

3. DNS — debian1 i debian2

Què protegim i per què: Per defecte BIND9 respon consultes de qualsevol origen. Cal restringir les transferències de zona per evitar que atacants obtinguin el mapa complet de la xarxa, i limitar les consultes recursives.

sudo nano /etc/bind/named.conf.options

options {
directory “/var/cache/bind”;

// Nomes escolta a la interficie LAN
listen-on { 10.10.1.10; 127.0.0.1; };

// Desactivar escolta IPv6
listen-on-v6 { none; };

// Nomes permet consultes des de xarxes de confianca
allow-query { 10.10.1.0/24; 10.10.2.0/24; 127.0.0.1; };

// Nomes permet recursivitat des de xarxes internes
allow-recursion { 10.10.1.0/24; 10.10.2.0/24; 127.0.0.1; };

// Desactivar transferencies de zona per defecte
allow-transfer { none; };

// Amagar la versio de BIND per dificultar fingerprinting
version “none”;

forwarders { 8.8.8.8; 8.8.4.4; };
dnssec-validation no;
};

A la zona del fitxer /etc/bind/named.conf.local permitir transferencia nomes al slave:

zone “smx.lan” {
type master;
file “/etc/bind/zones/db.smx.lan”;
// Nomes permet transferencia al servidor slave
allow-transfer { 10.10.1.11; };
notify yes;
};

Aplicar i reiniciar

sudo systemctl restart bind9

 

4. FTP — debian2

Què protegim i per què: FTP per defecte transmet les credencials en text pla. Cal restringir els usuaris que poden accedir, confinar-los al seu directori (chroot) i desactivar l’usuari anònim.

 

sudo nano /etc/vsftpd.conf

Afegir o modificar:

# Desactivar acces anonim
anonymous_enable=NO

# Permetre usuaris locals
local_enable=YES

# Permetre escriptura
write_enable=YES

# Confinar usuaris al seu directori home (chroot)
chroot_local_user=YES
allow_writeable_chroot=YES

# Nomes permetre usuaris de la llista
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

# Restringir a interficie LAN
listen_address=10.10.1.11

# Desactivar FTP actiu, usar passiu
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000

# Amagar informacio del sistema
ftpd_banner=FTP Server

# Limitar connexions simultanees per IP
max_per_ip=3

Llista de usuaris permessos:

echo “vagrant” | sudo tee /etc/vsftpd.userlist

Reiniciar:

sudo systemctl restart vsftpd

5. NFS — debian4

Què protegim i per què: NFS per defecte exporta els directoris a totes les IPs. Cal restringir les exportacions a les IPs de confiança i muntar amb opcions de seguretat per evitar escalada de privilegis.

 

sudo nano /etc/exports

# Nomes permet acces des de la xarxa interna de servidors
# ro = nomes lectura
# no_root_squash = desactivat (root del client no te privilegis de root al servidor)
# root_squash = root del client es mapa a nobody (seguretat)
# sync = escriptures sincrones (evita corrupcio de dades)
/srv/nfs 10.10.1.0/24(ro,sync,root_squash,no_subtree_check)

Restringir permissos del directori exportat

sudo chmod 755 /srv/nfs
sudo chown nobody:nogroup /srv/nfs

Reiniciar

sudo exportfs -ra
sudo systemctl restart nfs-kernel-server

 

6. LDAP — debian3

Què protegim i per què: LDAP per defecte permet connexions sense xifrar i pot acceptar consultes anonimes. Cal desactivar l’acces anonim i restringir les interficies d’escolta.

 

Desactivar accés anonim:

cat > /tmp/disable-anon.ldif << EOF
dn: cn=config
changetype: modify
add: olcDisallows
olcDisallows: bind_anon
EOF

sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/disable-anon.ldif

Restringir interficie d’escolta

sudo nano /etc/default/slapd

# Nomes escolta a la interficie LAN i localhost
SLAPD_SERVICES=”ldap://10.10.1.12/ ldapi:///”

Restringir permissos de la base de dades 

sudo chmod 700 /var/lib/ldap
sudo chown openldap:openldap /var/lib/ldap

Reiniciar

sudo systemctl restart slapd

Resum de mesures aplicades

ServeiMesures aplicades
SSHPort 2222, sense root, max 3 intents, nomes usuari vagrant
DHCPRestringit a interficie LAN, permisos fitxer 640
DNSConsultes restringides a xarxes internes, versio oculta, transferencies limitades
FTPSense anonim, chroot, restringit a LAN, limit connexions
NFSExportacions restringides a 10.10.1.0/24, root_squash, nomes lectura
LDAPSense acces anonim, restringit a interficie LAN