Qualsiasi servizio esterno è un rischio per la sicurezza. Hai indicato che stai utilizzando uno stack LAMP, quindi presumo che tu abbia almeno i seguenti servizi in esecuzione:
1. SSHd
2. Apache/Nginx
3. PHP
4. MySQL
MySQL per impostazione predefinita non è rivolto all'esterno, e non dovresti farlo a meno che non sei coinvolto in un ambiente di clustering o di replica (nel qual caso ci sono alternative a metterlo sul wide web, come una VPN.)
Apache / Nginx + PHP non può essere realizzato internamente se intendi fornire contenuti a persone sul Web, quindi questi saranno i tuoi punti principali di ingresso.
SSHd stesso deve essere pubblico (non sempre, ma per semplicità in questo caso). L'uso di una coppia di chiavi per l'autenticazione e la disattivazione completa dell'autenticazione della password è il tuo miglior sistema per impedire alle persone di ottenere l'accesso tramite questo servizio.
Parliamo di servizi web. Apache, Nginx e PHP. Questi sono i servizi che le persone tenteranno di sfruttare per ottenere l'accesso alla tua macchina, quindi parliamo di come proteggerli.
In primo luogo, vorrai isolare i servizi. Se li hai installati tu stesso significa che assicurati che Apache e Nginx siano in esecuzione come utenti non root.
In secondo luogo, vorrai dare un'occhiata a php-fpm o suphp, che consentono a PHP di operare come utente separato dal tuo server web anche a livello di virtualhost o di directory.
Questo porta a due cose, estrapolando i permessi di root da Apache / Nginx, se qualcuno ottiene il controllo di quel servizio non può influire su nulla tranne l'operazione di quel servizio specifico.
Cambiare l'utente di php (soprattutto su base per sito) isola il modulo PHP dall'interazione con altri siti sulla macchina e con il server web stesso, quindi se hai un client o un sito web con codice sfruttabile su di esso, il tuo intero servizio, altri siti e il tuo computer non sono a rischio.