O fato de o assassino da OOM estar funcionando pode estar relacionado aos seus problemas, e definitivamente não o ajuda. Aumente a troca ou instale mais RAM. Se nada mais, você certamente não quer que seu servidor ande por aí matando processos; quando o killer da OOM do kernel começa a procurar por vítimas, é ruim .
Dito isso, noto que você, por exemplo, não permita em ICMP ou DNS sobre UDP (ou TCP). Um host bem-comportado na Internet precisa aceitar pacotes ICMP e, se você estiver executando um servidor DNS, precisará abrir a comunicação via TCP e UDP para a porta 53 para que ele funcione.
Uma alteração mínima que deve aproximar você de uma configuração razoável sem afetar quais serviços estão disponíveis a terceiros pode ser simplesmente
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp -m state --state RELATED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
(Não testado, então a sintaxe da linha de comando pode estar um pouco fora, mas essa é a essência disso.)
Normalmente, por razões de desempenho, tais regras podem estar no topo da cadeia iptables em questão. Estes permitirão em qualquer resposta a qualquer saída que o servidor tenha iniciado sobre TCP ou UDP, bem como mensagens ICMP. Observe que o ICMP é crucial para um host bem-comportado na Internet; se você quiser bloquear, e. ping
, você pode usar uma regra mais muito para bloquear solicitações de eco ICMP e nada mais, mas quando você tem algo tão conhecido como a porta 80 aberta que não compra muito em você prática e torna a resolução de problemas mais complicada.
As regras da cadeia de saída também são todas redundantes, pois não fazem nada que a política da cadeia não faça. Apenas iptables -F OUTPUT
para removê-los; eles complicam a configuração e custam um pouco de desempenho para cada pacote de saída sem fornecer qualquer benefício. Eles também especificam a maioria das portas de origem privilegiadas, que quase garantidamente não correspondem ao que você deseja.