Ping: sendmsg: operação não permitida erro após a instalação do iptables no Arch GNU / Linux


15

Ontem, recebi um novo computador como meu servidor doméstico, um HP Proliant Microserver. Instalou o Arch Linux nele, com a versão 3.2.12 do kernel.

Após instalar o iptables (1.4.12.2 - a versão atual AFAIK) e alterar a net.ipv4.ip_forwardchave para 1, e habilitar o encaminhamento no arquivo de configuração do iptables (e a reinicialização), o sistema não poderá usar nenhuma de suas interfaces de rede. O ping falha com

Ping: sendmsg: operation not permitted

Se eu remover o iptables completamente, a rede estará correta, mas preciso compartilhar a conexão com a Internet com a rede local.

NIC eth0 - wan integrado na placa-mãe (Broadcom NetXtreme BCM5723).

eth1 - LAN NIC em um slot PCI Express (Intel 82574L Gigabit Network)

Como ele funciona sem o iptables (o servidor pode acessar a Internet e eu consigo fazer o login com o ssh na rede interna), presumo que ele tenha algo a ver com o iptables. Como não tenho muita experiência com o iptables, usei-os como referência (separados um do outro, é claro ...):

wiki.archlinux.org/index.php/Simple_stateful_firewall#Setting_up_a_NAT_gateway

revsys.com/writings/quicktips/nat.html

howtoforge.com/nat_iptables

No meu servidor anterior, usei o guia revsys para configurar o nat, funcionou como um encanto.

Alguém experimentou algo assim antes? O que estou fazendo de errado?

Respostas:


23

A mensagem de erro:

Ping: sendmsg: operation not permitted

significa que seu servidor não tem permissão para enviar pacotes ICMP. Você precisa permitir que seu servidor envie tráfego por uma ou mais das interfaces configuradas. Você pode fazer isso:

  1. Defina a OUTPUTpolítica da cadeia ACCEPTpara permitir todo o tráfego de saída da sua caixa:

    sudo iptables -P OUTPUT ACCEPT
    
  2. Defina a OUTPUTpolítica da cadeia como DROPe, em seguida, permita seletivamente o tipo de tráfego necessário.

Isso se aplica a todas as cadeias, não apenas à OUTPUTcadeia. INPUTA cadeia controla o tráfego recebido pela sua caixa. FORWARDA cadeia lida com o tráfego encaminhado através da caixa.


Ping foi apenas um exemplo, não poderia enviar pacotes UDP, nem TCP pacotes ...
estol

Mesmo assim, a mesma ideia se aplica
Khaled

Tentei o que você disse, mesmos resultados. Obteve as regras do servidor antigo, isso parcialmente funciona. Qualquer cliente pode procurar nomes de domínio, mesmo capaz de executá-los, mas não pode navegar na web. Instalei um proxy como solução alternativa (já que a conexão no servidor é boa, assim como a conexão com o servidor), mas muitos serviços não funcionam (Trillian, Skype) dessa maneira.
estol

Qual é o comando para definir a política da cadeia de saída para aceitar?
Joseph Astrahan

4
@JosephAstrahan:sudo iptables -P OUTPUT ACCEPT
Khaled

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.