Linux iptables não funciona

1

Eu atualizei meus iptables no Ubuntu 10.04, mas não parece ter nenhum efeito nas portas abertas.

Quando executo iptables --list , a linha a seguir é exibida

Chain INPUT (policy DROP)
target   prot opt source              destination
ACCEPT   all  --  anywhere            anywhere         tcp dpt:smtp

No entanto, quando tento fazer uma varredura de porta para ver se a porta 25 está aberta, ela responde como fechada. Poderia haver algo mais upstream que está bloqueando a porta? Ou preciso fazer algo para 'reiniciar' o firewall depois de modificar as tabelas de IP?

Linux Noob aqui, se não for bem recebido ...

    
por jerhinesmith 16.07.2010 / 02:02

8 respostas

2

Se netstat -tapnl | grep 25 não retornar algo como 0: 0: 0: 0: 25 (ou o IP paticular que você consulta), significa que nada está escutando nessa porta e o IPTables não é o problema - ou pelo menos não o problema somente .

    
por 16.07.2010 / 02:13
0

Ele provavelmente responde como fechado porque você não tem um serviço escutando nessa porta.

    
por 16.07.2010 / 02:08
0

Algumas distribuições do Linux (estou olhando para minha instalação do RHEL principalmente) definem o sendmail para escutar apenas no host local. Então, se eu estivesse fazendo meu portscan de outro computador, ele retornaria como fechado.

Além disso, alguns provedores (estou olhando para minha Cox aqui) bloquearão entrada 25. Então, se eu estava digitalizando de um scanner baseado na web como GRC's Shields Up, ele retornará como se eu tivesse definido para DROP vez de aceitar. Eles fazem isso como uma maneira de combater o spam em toda a Internet. Seu ISP pode ter uma política para enviar de volta uma mensagem de porta fechada em vez de permitir que você atenda.

    
por 16.07.2010 / 02:32
0

A sugestão anterior de que você não tem um serviço ouvindo na porta 25 é a mais provável.

Outra sugestão é verificar as regras e as interfaces. Por exemplo, execute:

iptables -L -v

também mostrará as interfaces. Portanto, pode haver regras diferentes para interfaces diferentes (especialmente a interface lo que normalmente será ACCEPT para todo o tráfego).

    
por 16.07.2010 / 03:11
0

Apenas para fornecer um pouco mais de informações sobre o uso do netstat. A opção de linha de comando -p (como sugerido acima) fará com que o netstat exiba o programa que está associado ao soquete / porta. Neste caso o exim deve aparecer na saída indicando que é responsável pela conexão da porta 25. Mas há um detalhe um pouco sutil sobre o uso dessa opção. Devido à segurança, o netstat mostrará apenas os nomes dos programas para os aplicativos que você possui. Então, se você ainda não está fazendo seus testes como root, o netstat não mostrará qual aplicativo possui a porta 25. Em geral, não se deve criar o hábito de correr como root, mas neste caso é um passo útil.

Outro detalhe um pouco relacionado aqui é o uso do telnet. Esta aplicação é uma ferramenta de análise de rede muitas vezes perdida. Um teste muito rápido para ver se a porta 25 está fazendo alguma coisa é simplesmente fazer o telnet (isso funciona muito bem para qualquer número de outras portas de serviço). Tente telneting para localhost, 127.0.0.1, seu IP e seu hostname. A razão pela qual eu apontei é que o exim pode estar rodando e pode ter aberto a porta 25 de alguma forma, mas se algo for quebrado sobre o exim (digamos que alguém mexeu com o arquivo de configuração de uma maneira desajeitada) o uso do netstat não diga-lhe a porta 25 não está falando. E um telnet rápido na vontade.

Se você quiser se sentir unixy old school, você pode usar o nc para o mesmo propósito. Ou, se você preferir a abordagem sledge hammer, olhe a man page do nmap (na verdade, eu não recomendo olhar esta página man para um usuário mais novo, o nmap é terrivelmente complicado). E para mais diversão, tente fazer telnet na porta ssh, é instrutivo.

    
por 16.07.2010 / 06:48
0

Tente

$ lsof -i :25

Se você não obtiver nenhum resultado, não terá um servidor de e-mail em execução (ou qualquer tipo de serviço em execução nessa porta).

    
por 16.07.2010 / 07:14
0

Eu me lembro de ter um problema parecido com o postfix. Embora o postfix estivesse em execução, a varredura de porta não mostrava a porta 25 como aberta. O problema foi a seguinte linha foi comentada no arquivo

/etc/postfix/master.cf

smtp      inet  n       -       -       -       -       smtpd

remova o comentário.

    
por 16.07.2010 / 08:02
0
Chain INPUT (policy DROP)
target   prot opt source              destination
ACCEPT   all  --  anywhere            anywhere         tcp dpt:smtp

Quais conexões devem ser permitidas? O que já é permitido?

  • SYN - entrada, permitido
  • SYN / ACK - Saída, verifique a cadeia de SAÍDA - > ACEITAR?
  • ACK - entrada, permitido
  • Conexão de dados - Não é executado na porta 25. O que significa que para permitir esse tráfego, temos que criar uma regra que também aceite as conexões RELATED ou ESTABLISHED.

Basicamente, você pode alterar sua regra para o seguinte:

iptables -A INPUT -p tcp --dport 25 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
    
por 09.06.2011 / 12:17