
Я новичок в Linux и iptables
. У меня есть дистрибутив Ubuntu Server (12.04) на ПК с 2 сетевыми интерфейсами ( eth0
и eth1
). У меня также есть 2 ноутбука, один подключен к , eth0
а другой к eth1
.
Конфигурация ip ноутбука1: 172.16.221.120 - 255.255.252.0 Конфигурация ip ноутбука2: 192.168.222.250 - 255.255.255.0
Я хочу успешно пропинговать laptop2 с laptop1.
Мне нужно создать INPUT
правила OUTPUT
? Или FORWARD
правило тоже?
Я пробовал это, но безуспешно:
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
решение1
tcpdump
Чтобы узнать, как далеко доходят ваши пинги, вы можете использовать :
tcpdump -i eth0 -n icmp
tcpdump -i eth1 -n icmp
Более того, недостаточно разрешить пинги на сервере; ноутбуки необходимо настроить так, чтобы они знали, что могут связаться друг с другом через сервер (маршрутизация).
Вероятно, ваш брандмауэр имеет правило, которое разрешает пакеты, которые являются ответом. Если нет, то вам также нужно
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
что в любом случае имеет смысл, так как вы, вероятно, хотите разрешить обоим ноутбукам пинговать друг друга. Вы можете ограничить это пингами и понгами, хотя:
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
Последняя проблема — это сами ноутбуки: если хотя бы один из них имеет собственный брандмауэр, то он может блокировать пинги (в целом или из-за исходного адреса за пределами сети интерфейсов).
решение2
По умолчанию вам не нужны никакие правила, так как цепочки netfilter пусты с ACCEPT
политикой по умолчанию. Если вы уже добавили правила, то для разрешения ping нужно будет добавить правила в FORWARD
цепочку.
Вам также потребуется настроить сервер как маршрутизатор и убедиться, что на каждом ноутбуке сервер указан в качестве маршрута по умолчанию (или, по крайней мере, маршрут для подсети другого ноутбука).
Чтобы включить маршрутизацию (IP-пересылку), вам нужно установить /proc/sys/net/ipv4/ip_forward
значение 1
. В Ubuntu должно быть место, где вы можете автоматически /etc/sysctl.conf
настраивать элементы :/proc/sys
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
Если вы это измените, вам нужно будет загрузить изменения в ядро:
sudo sysctl -p /etc/sysctl.conf
Изменение будет автоматически загружено при следующей загрузке, поэтому вам нужно будет запустить эту команду вручную только один раз после изменения /etc/sysctl.conf
.