regras de iptables - entrada e saída

regras de iptables - entrada e saída

Sou novo no Linux e iptables. Eu tenho uma distribuição Ubuntu Server (12.04) em um PC que possui 2 interfaces de rede ( eth0e eth1). Eu também tenho 2 laptops, um está conectado eth0e o outro eth1.

ipconfig do laptop1: 172.16.221.120 - 255.255.252.0 ipconfig do laptop2: 192.168.222.250 - 255.255.255.0

Quero fazer ping no laptop2 do laptop1 com êxito.

Tenho que criar INPUTe OUTPUTregras? Ou uma FORWARDregra também?

Eu tentei isso sem sucesso:

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

Responder1

Você pode usar tcpdumppara descobrir até onde chegam seus pings:

tcpdump -i eth0 -n icmp
tcpdump -i eth1 -n icmp

Além disso, não basta permitir pings no servidor; os laptops devem ser configurados para que saibam que podem acessar o outro através do servidor (roteamento).

Provavelmente o seu firewall possui uma regra que permite pacotes que são uma resposta. Se não, você também precisa

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

o que faz sentido de qualquer maneira, já que você provavelmente deseja permitir que ambos os laptops façam ping no outro. Você pode limitar isso a pings e pongs:

iptables -A FORWARD -i eth1 -o eth0 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p icmp --icmp-type echo-reply -j ACCEPT

O último problema são os próprios laptops: se pelo menos um deles tiver seu próprio firewall, ele poderá bloquear pings (em geral ou devido ao endereço de origem fora da rede de interfaces).

Responder2

Por padrão, você não precisa de nenhuma regra, pois as cadeias do netfilter estão vazias com uma ACCEPTpolítica padrão. Se você já adicionou regras, para permitir o ping, serão necessárias regras adicionadas à FORWARDcadeia.

Você também precisará configurar o servidor como um roteador e certificar-se de que cada laptop tenha o servidor como rota padrão (ou pelo menos tenha uma rota para a sub-rede do outro laptop).

Para ativar o roteamento (encaminhamento de IP), você precisa definir /proc/sys/net/ipv4/ip_forwardcomo 1. O Ubuntu deve ter /etc/sysctl.confonde você pode configurar itens /proc/sysautomaticamente:

# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1

Se você alterar isso, precisará carregar as alterações no kernel:

sudo sysctl -p /etc/sysctl.conf

A alteração será carregada automaticamente na próxima inicialização, portanto, você só precisará executar este comando manualmente uma vez após a alteração /etc/sysctl.conf.

informação relacionada