Знаю, тема популярная, много обсуждаемая, и пр.
Однако прочитав Руководство по Iptables 1.1.9(opennet.ru),
ряд найденных статей, обсуждений на форумах, решения
своей проблемы не нашёл.
Собственно ситуация.
Есть у меня 2 ноута, соединяю их через WIFI.
Допустим, ip шлюза 192.168.1.5, ip клиента 192.168.1.6.
WiFi интерфейс на шлюзе - wlan0.
Во внешнюю сеть(уже другую) на шлюзе смотрит eth0.
На шлюзе настраиваю iptables. Применяю простейшие правила:
Код: Выделить всё
# Очищаем таблицу правил
iptables -F -t mangle
iptables -F -t nat
iptables -F -t filter
# Политики по умолчанию в таблице filter
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# Собственно NAT
iptables -t nat -A POSTROUTING -s 192.168.1.6 -o eth0 -j MASQUERADEВ /proc/sys/net/ipv4/ip_forward стоит 1
На клиенте:
Делаю route add -net <сеть, в которую смотрит eth0 на шлюзе> gw 192.168.1.5
/etc/resolv.conf копирую со шлюза.
Что происходит:
когда я делаю ping на ip адрес какой-нибудь машины во внешней сети, всё нормально.
когда я делаю ping на имя хоста(например, той же машины), пакеты к клиенту не доходят.
Вставив в правила iptables -j LOG в соответствующих местах, я обнаружил, что пакеты преспокойно
проходят через FORWARD. И запросы на DNS сервер, и ответы от него. А на клиенте глухо.
Аналогично не работает доступ по http, ftp и пр. к машинам из внешней сети, несмотря на
явное прописывание ip адреса.
Такое чувство, что кроме ICMP, никакие другие типы траффика не проходят.
Я в недоумении...
Если нужны конфиги, опции ядра, пр. - спрашивайте.
Да, чуть не забыл, дистрибутив - CRUX