Eu acho que você está soltando respostas incomming. Tente adicioná-lo com
-m state --state RELATED,ESTABLISHED -j ACCEPT
para VZ_INPUT
O firewall no meu VPS parece estar impedindo meu site de enviar e-mail. Estava funcionando bem até o final do mês passado. Meu provedor de hospedagem (Webfusion) foi quase inútil.
Eu posso enviar e-mail se eu abrir as portas INPUT 32768-65535, mas não se essas portas estiverem fechadas. Por que isso seria?
Eu tenho as seguintes regras no meu firewall ( N.B. eu excluí as regras que são limitadas ao meu IP, por exemplo, ssh, etc):
# sudo iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
VZ_INPUT all -- anywhere anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
VZ_FORWARD all -- anywhere anywhere
Chain OUTPUT (policy DROP)
target prot opt source destination
VZ_OUTPUT all -- anywhere anywhere
Chain VZ_FORWARD (1 references)
target prot opt source destination
Chain VZ_INPUT (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:www
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT tcp -- anywhere anywhere tcp dpt:smtp
ACCEPT tcp -- anywhere anywhere tcp dpt:ssmtp
ACCEPT tcp -- anywhere anywhere tcp dpt:pop3
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpts:32768:65535
ACCEPT udp -- anywhere anywhere udp dpts:32768:65535
ACCEPT tcp -- localhost.localdomain localhost.localdomain
ACCEPT udp -- localhost.localdomain localhost.localdomain
Chain VZ_OUTPUT (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere
ACCEPT udp -- anywhere anywhere
O VPS está executando o Plesk 10.4.4
Editar: O servidor de e-mail é o qmail
Editar: As regras são criadas pelo módulo de Firewall de " Painel de Energia Virtuozzo "
(por favor, pergunte se você precisar de mais informações técnicas para me ajudar)
Eu acho que você está soltando respostas incomming. Tente adicioná-lo com
-m state --state RELATED,ESTABLISHED -j ACCEPT
para VZ_INPUT
Acho que você precisa ler as portas efêmeras para entender um pouco mais sobre como sua máquina faz a saída conexões.
Quando o servidor faz uma conexão SMTP de saída (porta de destino 25, permitida pela regra de saída muito permissiva), as respostas retornam à porta efêmera de origem do seu servidor. Por padrão, o intervalo de portas efêmeras do Linux é de 32768 a 61000. Quando você não está permitindo o tráfego INPUT nas portas 32768 a 65535, está bloqueando as respostas do servidor SMTP remoto.
Essas regras de firewall parecem pouco convencionais para mim. É bastante atípico, pelo menos na minha experiência, ver regras de firewall que não tiram proveito da filtragem ip_conntrack e stateful. Alguns procurando pelos nomes "VZ_FORWARD", "VZ_INPUT", etc, mostram que esses são um conjunto de regras bastante típico que alguns pacotes de gerenciamento de servidores virtuais estão criando. Eu usaria a filtragem de estado, pessoalmente, mas pode haver um argumento de desempenho contra isso para o provedor de VPS.
Editar:
Se você estiver interessado em aprender mais sobre o netfilter, a documentação oficial não é um mau lugar para começar, embora alguns essa doucmentação é um pouco datada. Você não menciona qual distribuição está usando, mas pode encontrar alguma documentação específica da distribuição por aí. Você menciona em outro comentário que deseja limitar suas modificações ao gerenciador de GUIs que está usando. Isso pode limitar sua capacidade de fazer alterações significativas na configuração. Mesmo se você não for modificar manualmente a configuração, você provavelmente obterá um conhecimento útil lendo um pouco sobre o netfilter.
re: sua cadeia OUTPUT - Um administrador preocupado com a segurança desejaria bloquear o tráfego OUTPUT para que, caso invasores mal-intencionados ganhassem o controle do computador servidor em uma capacidade de não-superusuário, eles são limitados em quais tipos de tráfego podem saída da máquina para a Internet. Alguns worms, por exemplo, esperam poder fazer solicitações HTTP (ou FTP, ou TFTP) de volta à Internet para baixar seus componentes de "segundo estágio". Quando você remove a capacidade do servidor de fazer solicitações arbitrárias à Internet, pode limitar o que um invasor mal-intencionado pode fazer com que sua máquina faça isso. (Obviamente, se eles obtiverem acesso de super usuário, então "game over" - eles podem apenas modificar as regras de firewall).
Olhando para VZ_INPUT:
ACEITAR tcp - qualquer lugar em qualquer lugar tcp dpt: smtp
Isso permite conexões de entrada para o seu servidor SMTP.
Suas regras de saída permitem qualquer coisa.
Mas quando você está enviando e-mails, sua máquina age como o CLIENTE e não como o servidor.
Assim, quando você tenta enviar e-mail, o pacote SYN sai da porta 32768 para a porta 25 e, em seguida, a resposta retorna da porta 25 para a porta 32768 - que corresponde apenas à regra boba adicionada no final.
portanto, adicionar uma regra reversa a VZ_INPUT permitirá o tráfego:
ACCEPT tcp -- anywhere anywhere tcp spt:smtp
Ou, como o Mose sugere, permita tráfego relacionado em VZ_INPUT. O último é, na verdade, uma solução melhor, já que a versão sem estado acima não bloqueará o acesso às portas dos seus servidores por um invasor que force sua porta de cliente para 25.
Você deve implementar a filtragem de saída adequada em seu servidor - portanto, você deve (como Dennis diz) permitir estabelecido, relacionado a vz_output, juntamente com protocolos de cliente válidos, como DNS, SMTP e NTP, juntamente com uma política DENY padrão.
BTW: como você obtém um shell no sistema quando ele não permite ssh / rsh / telnet?