iptables -A FORWARD -i eth1 --source 192.168.5.0/24 --destination 0.0.0.0/0 --match state --state NEW,EST$
iptables -A FORWARD -i eth0 --destination 192.168.5.0/24 --match state --state ESTABLISHED -j ACCEPT
Ничего что там знак $ в конце первой строки... ? Недолжно быть так.
В цепи FORWARD не вижу правил разрешающих новые соединения, есть только правила для
уже установленных соединений. А уже установленных соединений не возникает, т.к. новые-то не разрешены.
Нужно добавить что-то вроде этого:
iptables -A FORWARD -i eth1 --source 192.168.5.0/24 -j ACCEPT
Аналогично в других цепях.
Рекомендую не пренебрегать логами
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died: "
Очень экономит время при отладке. Пишет логи в
/var/log/messagesСмотреть логи через
sudo cat /var/log/messages | grep "IPT FORWARD packet died"Кроме того из внешней сетевушки eth0 не могут появиться "--destination 192.168.5.0/24", а если появились, то это злоумысел, если позади eth0 интернет. Посмотрите в схеме
http://www.docum.org/docum.org/kptd/ где делается DE-MASQUERADE, а где находится FORWARD...
P.S. Цельно всё описано в
http://www.opennet.ru/docs/RUS/iptables/http://www.docum.org/docum.org/kptd/