LINUX.ORG.RU
решено ФорумAdmin

и снова нат, и снова странный


0

0

Разобраться с mtu мне вчера уже помогли, все работает, но только до момента, когда пытаюсь настроить фаервол средствами iptables. Вот настройки:

INT='eth0'
EXT='ppp0'

echo "1" > /proc/sys/net/ipv4/ip_forward

# Flush all rules
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -F -t nat

# Set default actions
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Forward all packets from internal network to the internet
iptables -A FORWARD -i $INT -o $EXT -j ACCEPT

# Forward packets that are part of existing connections
iptables -A FORWARD -i $EXT -o $INT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $EXT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow all inputs from local network
iptables -A INPUT -i $INT -s 0/0 -d 0/0 -j ACCEPT
iptables -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT

# Enable NAT and tweak MTU
iptables -t nat -A POSTROUTING -o $EXT -j MASQUERADE
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Deny all spoofed source packets
iptables -A INPUT -i $EXT -s 192.168.255.0/24 -j DROP
iptables -A INPUT -i $EXT -s 127.0.0.1/8 -j DROP

Некоторое время все равботает как часы, а потом как отрезает - снова открываются только гугл с яндексом (и еще мочему-то блог на mygorod.ru), при том что пингуется исправно все. Помогает скинуть на минимальные настройки (две строчки после # Enable NAT and tweak MTU), а потом опять применить полные. Нормально проработать может и пару часов, а может и всего пару минут.

Господа, что за хрень?



Последнее исправление: oxcd8o (всего исправлений: 1)

вот это отправит все пакеты в цепочке FORWARD в обход всего что ниже

# Forward all packets from internal network to the internet
iptables -A FORWARD -i $INT -o $EXT -j ACCEPT

# Forward packets that are part of existing connections
iptables -A FORWARD -i $EXT -o $INT -m state --state ESTABLISHED,RELATED -j ACCEPT

это надо поставить раньше потому, что как только для пакета в цепочке сделано ACCEPT - пакет считается принятым и дальше по цепочке не обрабатывается

# Enable NAT and tweak MTU
iptables -t nat -A POSTROUTING -o $EXT -j MASQUERADE
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

AnyKey
()

iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

man iptables говорит мне на счет цели TCPMSS следующее:

It is only valid in the mangle table.

azure ★★
()
Ответ на: комментарий от AnyKey

> это надо поставить раньше потому, что как только для пакета в цепочке сделано ACCEPT - пакет считается принятым и дальше по цепочке не обрабатывается

# Enable NAT and tweak MTU >iptables -t nat -A POSTROUTING -o $EXT -j MASQUERADE >iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

тоже уже успел предположить и поменять местами. ничего не изменилось и по прежнему все плохо.

man iptables говорит мне на счет цели TCPMSS следующее:

It is only valid in the mangle table.

полагаю, что раз никаких ошибок нет, то правило применяется только к указанной таблице. впрочем, явное указание -t mangle все равно ничего не меняет.

oxcd8o
() автор топика

господи, я идиот =)

перенося часть с маскарадом и мту вверх списка правил я написал, цитирую, «iptables -t nat -A POSTROUTING -o $EXT -j ACCEPT» - и разумеется нифига же никакого ната не получалось... теперь вроде, тьфу-тьфу, все работает.

oxcd8o
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.