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
| Servei | Mesures aplicades |
|---|---|
| SSH | Port 2222, sense root, max 3 intents, nomes usuari vagrant |
| DHCP | Restringit a interficie LAN, permisos fitxer 640 |
| DNS | Consultes restringides a xarxes internes, versio oculta, transferencies limitades |
| FTP | Sense anonim, chroot, restringit a LAN, limit connexions |
| NFS | Exportacions restringides a 10.10.1.0/24, root_squash, nomes lectura |
| LDAP | Sense acces anonim, restringit a interficie LAN |