
Sou novo no Linux e iptables
. Eu tenho uma distribuição Ubuntu Server (12.04) em um PC que possui 2 interfaces de rede ( eth0
e eth1
). Eu também tenho 2 laptops, um está conectado eth0
e 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 INPUT
e OUTPUT
regras? Ou uma FORWARD
regra também?
Eu tentei isso sem sucesso:
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
Responder1
Você pode usar tcpdump
para 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 ACCEPT
política padrão. Se você já adicionou regras, para permitir o ping, serão necessárias regras adicionadas à FORWARD
cadeia.
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_forward
como 1
. O Ubuntu deve ter /etc/sysctl.conf
onde você pode configurar itens /proc/sys
automaticamente:
# 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
.