Nunca permita o bit 'exec' em sistemas de arquivos onde usuários não confiáveis podem gravar arquivos! Atualize seu / etc / fstab e remonte, ou melhor reinicie o servidor.
Aqui você (finalmente) percebeu que o firewall não é algo extravagante para apenas "proteger" você contra alguns ataques idiotas de fora. Você também deve ter regras de firewall para o tráfego de saída! Ou pelo menos você deve ter algum monitoramento do tráfego de saída. OK, o wordpress gostaria de se atualizar via http (?), Mas por que algum aplicativo da web deve se conectar ao ssh, irc etc ...?
Próxima coisa ... Ah, é executado todos os seus sites em "www-data". Isso é muito bom. Você deve projetá-lo de uma maneira melhor. Execute cada usuário-cliente sob seu próprio uid separado. Você poderia usar php-fpm ou algo similar. Desta forma você teria uma melhor visão sobre a atividade de seus usuários e você poderia até mesmo filtrar via tráfego iptables baseado em userid ... Será que um usuário 'foobar' precisa que seu aplicativo da web se conecte a um servidor irc? Então, nada mais simples do que adicionar uma regra apenas para esse usuário específico.
Outro ponto ... Portos < 1024 pode ser ligado apenas pelo usuário root. Então você deve ter algum tipo de monitoramento de portas de escuta > 1024, então um usuário não teria seu próprio daemon escutando em seu servidor.
Você também pode pensar em aplicativos da web de chrooting ...
Se algum usuário não confiável puder executar seus próprios binários, scripts no servidor, haverá acesso ao servidor do usuário ou eles poderão usar seus recursos para outra coisa.
Algumas informações interessantes sobre como proteger a hospedagem PHP: Linux: 25 Práticas recomendadas de segurança do PHP para sistemas Administradores