Правила iptables — ввод и вывод

Правила iptables — ввод и вывод

Я новичок в 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.

Связанный контент