IPTables apenas permitem acesso localhost

49

Eu tenho lutado ao longo dos anos para obter um entendimento sólido sobre o iptables. Toda vez que tento ler as páginas do homem, meus olhos começam a se esvair.

Eu tenho um serviço que só quero permitir que o host local tenha acesso.

Que termos (ou configuração, se alguém está se sentindo generoso) devo usar o Google para permitir que somente host localhost tenha acesso a uma determinada porta?

    
por iptablessuck 14.03.2011 / 15:37

2 respostas

58

Se por serviço você quer dizer uma porta específica, então as duas linhas seguintes devem funcionar. Mude o "25" para qualquer porta que você esteja tentando restringir.

iptables -A INPUT -p tcp -s localhost --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j DROP
    
por 14.03.2011 / 15:47
26

Eu recomendaria:

iptables -A INPUT -i lo -p tcp --dport $APP_PORT -j ACCEPT
iptables -A INPUT -p tcp --dport $APP_PORT -j DROP

Porque, os pacotes endereçados automaticamente não têm necessariamente 127.0.0.1 como sua origem, mas todos eles 'entram' na interface lo .

Agora, se você realmente quiser entender iptables , a primeira coisa que você deve fazer é baixar e imprimir bons diagramas explicando as relações das tabelas netfilter . Aqui estão dois ótimos:

  • link - muito complexo, mas a referência
  • link - o diagrama superior é muito mais compreensível, embora não tão completo

Por fim, leia muito sobre iptables HOWTO. Os exemplos práticos ajudariam você a se atualizar rapidamente:)

    
por 14.03.2011 / 17:43