Primo problema lampante: ssh root @
Non farlo. Non eseguire ssh come root . Mai. SSH come root è una cattiva pratica, è peggio di sudo su -
. Se la tua password o chiave è compromessa in qualche modo, l'intero server DB è sparito. Separazione dei privilegi, autorizzazioni severe, crittografia completa del disco ... tutto inutile.
Se qualcuno ottiene una shell sul server delle applicazioni, può connettersi al servizio di database (servizio, non server) senza bisogno delle chiavi SSH. Perché? È un tunnel TCP! Possono connettersi direttamente al database utilizzando la porta locale. Non hanno nemmeno bisogno di scoprire che stai facendo un tunnel, basta guardare le porte aperte con netstat
. O guardando i tuoi file di configurazione. E cos'altro ci sarà nei file di configurazione? Le credenziali del database.
Se le chiavi SSH non sono protette da password, possono accedere all'intero server come root. Avevano già le credenziali del database, ora anche loro hanno accesso root.
Vorrei utilizzare Wireguard o un altro servizio VPN per le richieste di tunnel e configurare il firewall sul server di database per consentire solo le connessioni dalla VPN alla porta del database.
E cambierei la porta predefinita SSH 22 in qualcos'altro, e mettere un honeypot sulla porta 22, qualcosa come SSH-Pot : Un server ssh che non si autentica mai . Questo fa sì che i robot di scansione casuale non si accorgano del tuo server.
E come diceva Mark, indurimento e privilegio minimo. Disabilitare il più possibile. Se non hai bisogno di e-mail, disabilita l'email. Disabilita tutti i servizi che puoi, finché il servizio non smette di funzionare. Configurare il firewall sul server di database per non consentire alcuna connessione in entrata, ad eccezione del servizio VPN stesso e della porta DB all'interno della VPN e non consentire le connessioni in uscita. Fare lo stesso sul server delle applicazioni: consentire le porte 22, 80, 443 e la nuova porta ssh (l'hai modificata, vero?) E non consentire le connessioni in uscita ad eccezione del servizio VPN sul server DB e del servizio DB .