La respuesta corta es SÍ , un atacante aún puede abrir un shell a pesar de estas condiciones.
Usando iptables puede negar todas las entradas entrantes, excepto tcp 80 y 443 para http y https respectivamente. Además, puede negar todo el tráfico saliente (pero aún así desearía permitir actualizaciones). Pero esto solo puede hacer mucho. Desea proteger su aplicación web y sería más beneficioso utilizar un Firewall de aplicaciones web (WAF) como mod_security .
En una plataforma de aplicaciones web debería estar más preocupado por el owasp top 10 y exploits de aplicaciones web . Una preocupación importante es que un atacante explota su sistema y luego instala una puerta trasera como el C99 shell . En este caso, iptables no significa nada, tiene que permitir http / https y eso es todo lo que necesita el atacante.
El bloqueo del acceso con iptables hace que el sistema sea más difícil de comprometer con un desbordamiento de búfer. Por ejemplo, download + exec shellocde es muy común porque es un ataque directo donde la víctima descarga y ejecuta una puerta trasera. Sin embargo, el atacante no necesita una conexión para cargar y ejecutar un archivo. Al utilizar un egg-hunter como puesta en escena una vulnerabilidad de desbordamiento de búfer, el atacante puede incluir una gran cantidad de complejidad en la carga útil. Por ejemplo, esto permitiría al atacante cargar su ejecutable en la memoria y luego escribirlo en un archivo.
La línea de fondo es Defensa en profundidad y seguridad en capas. Utilice los conjuntos de reglas de firewall más restrictivos que pueda.