1. Rete e hostname
- Imposta hostname chiaro (es.
web01,backup01) - Verifica IP, gateway, DNS
- Controlla che il server risolva nomi e sia raggiungibile
hostnamectl status # se disponibile
hostname
ip a
ip r
cat /etc/resolv.conf
ping -c 3 1.1.1.1
ping -c 3 google.com
hostnamectl non e' presente (es. senza systemd): usa i file di configurazione della distro.
2. Utenti e privilegi
Evita l'uso diretto di root per attivita' quotidiane.
- Crea un utente amministrativo
- Aggiungilo al gruppo sudo/wheel
- Testa i privilegi
useradd -m -s /bin/bash adminuser
passwd adminuser
# Slackware (se sudo configurato via wheel)
usermod -aG wheel adminuser
Verifica:
su - adminuser
id
sudo -v # se sudo e' configurato
3. Sicurezza SSH
Configura accesso con chiavi e riduci la superficie d'attacco.
Passi consigliati
- Usa autenticazione con chiave pubblica
- Disabilita login root via SSH (dopo test)
- Valuta cambio porta (utile solo contro scan automatici, non e' sicurezza forte)
- Limita utenti ammessi
mkdir -p ~/.ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Esempio opzioni in /etc/ssh/sshd_config (adatta al tuo caso):
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers adminuser
Dopo modifica:
sshd -t
systemctl restart sshd # oppure service sshd restart
4. Firewall
Apri solo le porte necessarie al ruolo del server.
Porte comuni (esempio)
22/tcpSSH80/tcpHTTP443/tcpHTTPS25/587SMTP (solo se mail server)
Controlli
- Blocca tutto il resto in ingresso
- Consenti loopback
- Consenti traffico established/related
- Documenta ogni eccezione
Verifica porte in ascolto:
ss -tulpen
netstat -tulpen # se disponibile
5. Aggiornamenti e repository
- Aggiorna il sistema appena installato
- Usa repository ufficiali e fidati
- Pianifica una routine di aggiornamento
- Valuta reboot dopo aggiornamenti critici (kernel, libc, sshd)
Slackware (esempio con slackpkg)
slackpkg update
slackpkg install-new
slackpkg upgrade-all
slackpkg clean-system # attenzione: controlla bene prima di confermare
Su Slackware mantieni attenzione a changelog, pacchetti core e configurazioni nuove/merge dei file .new.
6. Data/ora e sincronizzazione (NTP)
Un orario corretto e' fondamentale per log, certificati TLS, autenticazione e cron.
date
timedatectl status # se disponibile
Installa/abilita un servizio NTP (chrony o ntpd) in base alla distro.
7. Servizi e porte: pulizia iniziale
Disabilita servizi non necessari.
- Server demo, servizi legacy, daemon non usati
- Interfacce admin esposte pubblicamente senza motivo
Controlla processi e unit attive:
ps aux
systemctl list-units --type=service --state=running # se systemd
8. Log e auditing base
- Verifica dove finiscono i log (syslog, journald, file applicativi)
- Configura rotazione log
- Controlla periodicamente errori di avvio e autenticazione
journalctl -p err -b # systemd
journalctl -u sshd -b
tail -n 100 /var/log/messages
tail -n 100 /var/log/secure # o auth.log
Per auditing base, almeno monitora login SSH falliti e tentativi ripetuti.
9. Backup e test di ripristino
Un backup non testato non e' un backup affidabile.
Cosa salvare almeno
- Configurazioni (
/etc) - Dati applicativi
- Database (dump coerenti)
- Script custom / cron / chiavi necessarie
Checklist pratica backup
[ ] Destinazione backup separata dal server
[ ] Pianificazione automatica (cron/systemd timer)
[ ] Retention definita (es. 7/30 giorni)
[ ] Verifica integrita' backup
[ ] Test restore periodico
10. Monitoraggio e alert
Anche un monitoraggio base e' meglio di niente.
- CPU, RAM, disco, load average
- Spazio disco e inode
- Servizi critici (web, db, sshd)
- Certificati TLS in scadenza
uptime
free -h
df -h
df -i
Imposta almeno un alert via mail/Telegram/monitoring tool quando il disco supera una soglia.
11. Hardening extra (consigliato)
- fail2ban per bloccare tentativi brute-force (se supportato e utile al tuo stack)
- sudo con policy minime e tracciabili
- 2FA per pannelli/admin dove possibile
- chiavi SSH con passphrase per accessi sensibili
- separazione servizi (utente dedicato per app e database)
- permessi file corretti su config e chiavi
12. Checklist finale rapida
[ ] Hostname, IP, DNS e routing verificati
[ ] Utente admin creato e privilegi testati
[ ] SSH con chiavi funzionante
[ ] Root login SSH disabilitato (dopo test)
[ ] Firewall attivo con sole porte necessarie
[ ] Sistema aggiornato
[ ] NTP attivo
[ ] Servizi inutili disabilitati
[ ] Log verificati e rotazione presente
[ ] Backup configurato e restore testato
[ ] Monitoraggio/alert minimi attivi