Доброго времени суток.
В системе 2 интерфейса, eth0 и lo, на lo запущен сквид, на этой же машине запущен браузер, запросы из которого ухочят с eth0. Нужно завернуть 443 и 80 порты на lo в сквид а затем выпустить это через eth0. если сделать так:
iptables -t nat -A OUTPUT -p tcp -s 192.168.1.3 --dport 80 -j DNAT --to-destination 127.0.0.1:3130
iptables -t nat -A OUTPUT -p tcp -s 192.168.1.3 --dport 443 -j DNAT --to-destination 127.0.0.1:3131
образуется петля, может есть способ это решить?
Пока видится это так, сделать в системе br0, навесить на него ip, удалить маршрут поумолчанию, прописать маршрут по умолчанию в dev br0, маркировать пакеты вылетающие из br0 и заворачивать их выше упомянутыми правилами, а пакеты которые уже промаркированы отправлять в другую таблицу маршрутизации в которую предварительно добавлен eth0 и маршрут по умолчанию в него.
Но что-то не мне нравится такой вариант т.к. с iptables и iproute не очень и через полгода можно не вспонить что и зачем сделано (хотя можно добавить комментарии).
Пользователь добавил сообщение 27 Июня 2017, 14:05:33:
Попробовал так:
iptables -t nat -A OUTPUT -m mark --mark 2 -j ACCEPT
iptables -t nat -A OUTPUT -p tcp -m tcp --dport 80 -j DNAT --to-destination 127.0.0.1:3130
iptables -t nat -A OUTPUT -p tcp -m tcp --dport 443 -j DNAT --to-destination 127.0.0.1:3131
iptables -t mangle -A OUTPUT -s 127.0.0.1 -j MARK --set-mark 2
всеравно петля..
промаркированный пакет на выходе lo почемуто не попадает в правило, или что-то работает не так как я думаю )
iptables -L -nv -t nat
Chain OUTPUT (policy ACCEPT 16 packets, 982 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x2
0 0 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:127.0.0.1:3130
516 30960 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 to:127.0.0.1:3131
Пользователь добавил сообщение 27 Июня 2017, 14:14:29:
Какието пакеты начали появляться после очистки filter, было лишнее правило, теперь весь iptables состаит из 4х вышеуказанных правил, но всеравно петля, система уходит в swap.
Chain OUTPUT (policy ACCEPT 16 packets, 1012 bytes)
pkts bytes target prot opt in out source destination
24 1440 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x2
0 0 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:127.0.0.1:3130
1112 66720 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 to:127.0.0.1:3131
Пользователь добавил сообщение 27 Июня 2017, 14:24:46:
Заменил:
iptables -t mangle -A OUTPUT -s 127.0.0.1 -j MARK --set-mark 2
на
iptables -t mangle -A INPUT -i lo -j MARK --set-mark 2
и пакетов снова не видно:
Chain OUTPUT (policy ACCEPT 47 packets, 2731 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x2
0 0 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:127.0.0.1:3130
508 30480 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 to:127.0.0.1:3131
Пользователь добавил сообщение 27 Июня 2017, 14:25:46:
Какоето колдовство.. Где ошибка?