La risposta breve è SÌ un utente malintenzionato può ancora aprire una shell nonostante queste condizioni.
Usando iptables puoi negare tutto in arrivo ma tcp 80 e 443 rispettivamente per http e https. Inoltre è possibile negare tutto il traffico in uscita (ma si desidera comunque consentire aggiornamenti). Ma questo può solo fare molto. Vuoi proteggere la tua applicazione web e sarebbe più vantaggioso utilizzare un Web Application Firewall (WAF) come mod_security .
In una piattaforma di applicazioni web dovresti essere più preoccupato di owasp top 10 e exploit di applicazioni web . Una delle maggiori preoccupazioni è che un utente malintenzionato sfrutti il sistema e quindi installi una backdoor come il C99 shell . In questo caso iptables non significa nulla, devi consentire http / https e questo è tutto ciò di cui l'hacker ha bisogno.
Il blocco dell'accesso con iptables rende il sistema più difficile da compromettere con un buffer overflow. Ad esempio download + exec shellocde è molto comune perché è un attacco semplice in cui la vittima scarica ed esegue una backdoor. Tuttavia, l'autore dell'attacco non ha bisogno di una connessione per caricare ed eseguire un file. Usando un cacciatore di uova come allestimento un exploit di overflow del buffer, l'aggressore può includere una discreta quantità di complessità nel carico utile. Ad esempio ciò consentirebbe all'utente malintenzionato di caricare il suo eseguibile in memoria e quindi di scriverlo su un file.
La linea di fondo è Defense in Depth e sicurezza nei livelli. Usa le regole del firewall più restrittive che puoi.