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

squid3-transparent, iptables, ssl - нужна консультация


0

0

нужна помощь. Есть сервер 192.168.5.110 на нем крутится dhcp + dns proxy + squid transparetn iptables заворачивает 80 и 8080 на порт сквида 5555

Нужно в iptables задать обработку ssl т.е. т.к. squid с ssl в прозрачном режиме не работает то запросы на 443 порт нужно пускать мимо сквида. Просто форвардить напрямую.

есть sh файл который срабатывает при каждом поднятии pppoe

#!/bin/sh
PATH=/usr/sbin:/sbin:/bin:/usr/bin
#
# удалить все действующие правила
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
# Всегда принимать трафик на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT
# Разрешить соединения, которые инициированы изнутри (eth0)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! $IFACE -j ACCEPT
iptables -A FORWARD -i $IFACE -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Разрешить доступ из LAN-сети к внешним сетям
iptables -A FORWARD -i eth0 -o $IFACE -j ACCEPT
# Masquerade.
iptables -t nat -A POSTROUTING -o $IFACE -j MASQUERADE
# Запретить forward извне во внутреннюю сеть
iptables -A FORWARD -i $IFACE -o eth0 -j REJECT
# Включить forward
echo 1 > /proc/sys/net/ipv4/ip_forward
# to squid
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5555
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-port 5555

есть список ip которым можно в интернет 192.168.5.2 - 192.168.5.10

Задача не конкретно в ssl, а в 21, 22, 24, 222, 443, 5190, 5222, 5223 портах. Я ищу решение как пропускать напрямую все порты кроме 80 и 8080 (эти два заворачивать на прозрачный сквид) остальные просто форвардить.

p.s. Понимаю что вопрос из разряда вызывающих оскомину, но пришел сюда просто от безысходности.


Может кто другой расскажет тут, я посоветую читать:
1. man iptables
2. google home router howto
3. gentoo-wiki.com

В общем, вопрос тривиальный.

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

Курил поиск очень долго. Просто от всех вариантов правил тупо крышу уже сносит. Кто глянет трезвым взглядом - может сразу определить что мне требуется. За совет спасибо.

Ar3s ()
Ответ на: комментарий от Ar3s

Нужен MASQUERADE или SNAT в таблице nat
И правила в цепочке FORWARD в дефолтной таблице.

CyberTribe ★★ ()

Чтобы пропускать трафик на tcp/443 мимо сквида, нужно его НЕ заворачивать на сквид. Всё.

Я очень не люблю разбираться в приведённых чужих конфигах. Вам нужно сделать маскарадинг или SNAT пакетов при выходе их наружу (лучше, SNAT, если внешний адрес - не динамический); разрешить прохождение forward-трафика (для отладочных целей сделайте политику ACCEPT для FORWARD) и сказать ядру ip_forward=1.

Не стану расписывать - изучите http://www.opennet.ru/docs/RUS/iptables/

markevichus ★★★ ()

на первый взгляд все и так должно работать. Если нужно ограничить все машины, кроме 192.168.5.2 - 192.168.5.10, или любых, сделайте вместо:

iptables -t nat -A POSTROUTING -o $IFACE -j MASQUERADE
что то типа:
 
 IPS=`cat ips.conf` 
 for IP in $IPS 
 do 
 iptables -t nat -A POSTROUTING -s ${IP}/32 -o $IFACE -j MASQUERADE 
 done 
 
ну и соответственно создайте файл ips.conf с ip, каждый из которых разделен пробелами, табами или переводом каретки. Если что то другое, то вам сюда: http://bugtraq.ru/forum/faq/general/smart-questions.html

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

забыл совсем

root@proxy:/etc/network/if-up.d# iptables-save
# Generated by iptables-save v1.4.4 on Thu Mar  4 12:41:03 2010
*mangle
:PREROUTING ACCEPT [228270:118285845]
:INPUT ACCEPT [225832:118160683]
:FORWARD ACCEPT [2321:120490]
:OUTPUT ACCEPT [254703:125347482]
:POSTROUTING ACCEPT [257010:125466908]
COMMIT
# Completed on Thu Mar  4 12:41:03 2010
# Generated by iptables-save v1.4.4 on Thu Mar  4 12:41:03 2010
*nat
:PREROUTING ACCEPT [4400:423667]
:POSTROUTING ACCEPT [15021:910869]
:OUTPUT ACCEPT [15363:936021]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 5555
-A PREROUTING -i eth0 -p tcp -m tcp --dport 8080 -j REDIRECT --to-ports 5555
-A POSTROUTING -o ppp1 -j MASQUERADE
COMMIT
# Completed on Thu Mar  4 12:41:03 2010
# Generated by iptables-save v1.4.4 on Thu Mar  4 12:41:03 2010
*filter
:INPUT ACCEPT [563:32521]
:FORWARD ACCEPT [2203:114770]
:OUTPUT ACCEPT [254690:125346974]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT ! -i ppp1 -m state --state NEW -j ACCEPT
-A FORWARD -i ppp1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o ppp1 -j ACCEPT
-A FORWARD -i ppp1 -o eth0 -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Thu Mar  4 12:41:03 2010

Ar3s ()
Ответ на: комментарий от Ar3s

Блин, ты задачу то опиши по порядку. У тебя сейчас как работает и что? Что ты хочешь получить на выходе, вывод ifconfig, route покажи.

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

Все. Нашел загвоздку. Она в ppp1. Нужно на ppp0 было форвардить. Неправильно интерфейс определялся. Всем кто откликнулся - огромное спасибо!

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