squid + iptables, НЕ прозрачный прокси

Автор layabout, 20 Января 2014, 10:44

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

layabout

Здравствуйте. имеется проблемка на которую у меня знаний не хватает, уже пару месяцев гуглю, решение как бы нашел , но оно не устраивает. Есть ли другие решения или только это - весь трафик 8080 через iptables на прозрачный прокси.
Имеется squid с вбитыми ip-пользователями (инет получают не все на предприятии).
Iptables - стандартные правила открытия и закрытия портов.
Шлюз настроен.
lan eth0 1.1.1.1
wan eth1 2.2.2.2

На клиентах прокси работает отлично, но вот по шлюзу ничего не идет, вернее идет, только с таким правилом -A POSTROUTING -s 1.1.1.0/24 -o eth1 -j MASQUERADE
как я понимаю, это я клиента 1,1,1,2 выпускаю в интернет через нат.
боюсь если дам всю сеть в нат, то не смогу следить за трафиком, ведь прокси даже прописывать не надо будет, Интернет будет работать через шлюз.
решение такое - завернуть в iptables весь трафик на прозрачный squid. Является ли это решение правильным ?
смогу ли я так отслеживать статистику посещение, будет ли блокирован торрент и подобные вредные кушалки трафика?

Хотелось бы так - Обычный прокси, с работающим шлюзом, где юзеры могут через него отправлять почту через этот шлюз, без НАТа.
а тут либо всю сеть в нат, либо еще пицот часов гугла :(

Подскажите. пишите, любой конфиг выложу, дедлайн сдачи сервера уже прошел (((((




Vicpo

Цитата: layabout от 20 Января 2014, 10:44
Хотелось бы так - Обычный прокси, с работающим шлюзом, где юзеры могут через него отправлять почту через этот шлюз, без НАТа.

Ну первое - почта через прокси сервер не пойдет (имеется ввиду SMTP, POP3, IMAP) тут нужен разрешенный доступ на шлюзе/firewall и тд.
Если нужен прозрачный прокси - то в сети куча документации по squid в режиме transparent.
Как вариант настроить port mapping для почты (если используется один внешний сервер для работы с почтой) и прокси сервер в обычном режиме.

B@F

Я думаю для начала выложите конфиг прокси и правила фаервола. Это один и тот же сервер?
Поправьте, если я ошибаюсь, буду тока рад.

layabout

squid и iptables на 1 серdере, squid настроен просто, разрешить одним интернет, другим запретить. ничего лишнего.

iptables

-A POSTROUTING -p tcp -m tcp -m multiport -j MASQUERADE --dports 110,25

-A INPUT -p tcp -m tcp -i eth0 --dport 22 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp -i eth0 --dport 80 -j ACCEPT
-A INPUT -p udp -m multiport -i eth0 --ports 135,136,137,138,139,445 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 443 -j ACCEPT

-A FORWARD -m state -i eth1 --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o eth1 -j ACCEPT
-A FORWARD -p tcp -m tcp --dport 25 -j ACCEPT

-A FORWARD -p tcp -m tcp --dport 110 -j ACCEPT

-A FORWARD -p udp -m udp --dport 53 -j ACCEPT
-A FORWARD -p udp -m udp --sport 53 -j ACCEPT
-A FORWARD -p tcp -m tcp -s 1.1.1.0/24 --dport 25 -j ACCEPT

-A FORWARD -p tcp -m tcp -s 1.1.1.0/24 --dport 110 -j ACCEPT

-A OUTPUT -p udp -m udp --sport 53 -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT


ЦитироватьНу первое - почта через прокси сервер не пойдет (имеется ввиду SMTP, POP3, IMAP) тут нужен разрешенный доступ на шлюзе/firewall и тд.

про это знаю, вот не получилось ниразу настроить проходить через шлюз почтового трафика, и интернет сайты не пингуются, шлюз на сервере включен.

ЦитироватьКак вариант настроить port mapping для почты (если используется один внешний сервер для работы с почтой) и прокси сервер в обычном режиме.
вот тут поподробнее, копать надо тут, но не хватает знаний, сколько всего перепробовал, миллион разных правил с инета брал,  и никак (((

если весть трафик завернуть с iptables  на squid, и сделать правило -A POSTROUTING -s 1.1.1.0/24 -o eth1 -j MASQUERADE. то все работает, но есть ли это правильно???? не могу понять и получается что всем юзерам даем НАТ. а как быть с блокировками torrent, и прочих сетевых программ которые работают не по 8080 порту.



B@F

http://linuxforum.kz/index.php/topic,5489.0.html - отправка почты из локальной сети.

В нате нужно запретить все, а разрешить только нужные хосты и порты.

Прокси должен быть настроен как транспорент. У вас так? А у вас не прозрачный, ну тогда тем более запретить форвардинг и вырубить нат, а трафик заворачивать у клиента, путем прописывания ручками в каждой программе, что она должна работать через прокси.
Кстате в том же торрент клиенте есть настройка работать через прокси.
А вот как быть с другим трафиком то я бы в офисе его запретил, нефиг торрентами фильмы пиратские качать.

Что бы не парится и получить максимум пользы и удовольствия советую поставить Zentyal или любой другой аналогичный дистрибутив. Там и просто и скорость будет шейпить сразу по всем портам и программам.
Поправьте, если я ошибаюсь, буду тока рад.

layabout

ЦитироватьПрокси должен быть настроен как транспорент. У вас так?
у меня НЕТ. вот думаю это хорошая идея, подскажите? правильно ли так сделать. Это быстрое решение проблем. Сейчас везде прокси прописано ручками на клиентах.
в нете натолкнулся на "заворачивать трафик с 21,80,81,82,83,88,8080,443 портов на squid"  будут ли эти порты работать через squid,
такие правила прописать что бы завернуть трафик на squid по нужным портам?
в гугле полно всяких правил, вот примеры

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables добавил iptables -t nat -A PREROUTING -s 192.168.x.x -p tcp -m multiport --dport 80,81,82,83,88, 8080 -j DNAT --to 192.168.x.x:3128
iptables -t nat -A PREROUTING -i eth2 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A PREROUTING -i eth2 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 8080 -j REDIRECT --to-ports 3128

запутали еще больше, мне ведь надо просто определенные порты перенаправить c eth0 (lan)  на eth1 (wan)
понял одно, надо ставить транспарент, заворачивать трафик на squid и не мучатся :)

з.ы
ЦитироватьЧто бы не парится и получить максимум пользы и удовольствия советую поставить Zentyal или любой другой аналогичный дистрибутив.

скачал как то его, но руки не дошли попробовать. не стал ставить аналогичные сервера по причине что компания на 300 пользователей, которых сейчас надо выпустить в нет, в будущем настроить днс сервер и почтовый сервер. сейчас ДНС и почта крутится на стареньком сервере novell netware 4. не думаю что зентиал и подобные подходят для такого сегмента, хотя возможно ошибаюсь

кстати скоро создам темку по настройке секондари днс ))))))

Yuriy_Y

Zentyal как раз для этого и предназначен. Я пробовал. Мне просто не подошел потому, что на шлюзах у меня стоит астериск, чтоб его запустить, пришлось бы слишком много перепахивать. А чисто для шлюза и почтового сервера этот дистр как нельзя лучше подходит. Я его щупал немного. Мне понравился. Я бы даже продонатил разработку немного, если б применял его где.
С уважением, Юрий

НаРазДва

21 Января 2014, 22:35 #7 Последнее редактирование: 21 Января 2014, 22:56 от НаРазДва
При транспоренте SSL(HTTPS) не проходит. Нужно ручками у клиента прокси прописывать(в браузере или в скайпе).  Я на фряхе транспорент подымал и НАТил пакеты приходящие на 80 порт на порт сквида (к примеру 8080). Отлично работало.

Vicpo

Цитата: НаРазДва от 21 Января 2014, 22:35
При транспоренте SSL(HTTPS) не проходит. Нужно ручками у клиента прокси прописывать(в браузере или в скайпе).  Я на фряхе транспорент подымал и НАТил пакеты приходящие на 80 порт на порт сквида (к примеру 8080). Отлично работало.

Кто мешает занатить таким же образом 443-й порт?

Yuriy_Y

А я чет везде читал, что кальмарчик не умеет проксить ssl. Мож потому, что никто не пробовал? :-)
С уважением, Юрий

Vicpo

Он его не проксирует, а создает сквозь себя туннель через метод CONNECT - соответственно он не видит, что внутри SSL туннеля происходит

Yuriy_Y

А тада смысл заворачивать его на squid? Можно просто iptables'ами выпустить наружу. На моих шлюзах все запросы наружу разрешены по всем портам, строгих правил нет. И только 80-й порт на кальмара идет.
С уважением, Юрий

layabout

спасибо за ответы, параллельно на другом компутере попробую поставить zentyal, подробности сообщу позже. :)

Yuriy_Y

Зачем на другом? Virtualbox никто не отменял. И проще, и проблем меньше.
С уважением, Юрий

НаРазДва

Цитата: Yuriy_Y от 22 Января 2014, 10:32
А я чет везде читал, что кальмарчик не умеет проксить ssl. Мож потому, что никто не пробовал? :-)


я это проверял, не умеет, но кто мешает прописывать кальмара у клиента, если ssl необходим.

B@F

Цитата: Vicpo от 22 Января 2014, 10:35
Он его не проксирует, а создает сквозь себя туннель через метод CONNECT - соответственно он не видит, что внутри SSL туннеля происходит

А вот оно как работает!!!! Вот теперь многое что проясняется в работе кальмара.  А зачем? А затем что тогда кальмар будет вести статистику, резать скорость. Все делаю так.
Поправьте, если я ошибаюсь, буду тока рад.

Yuriy_Y

Цитата: B@F от 22 Января 2014, 21:51А зачем? А затем что тогда кальмар будет вести статистику, резать скорость.

Кстати да, об этом не подумал. Надо у себя попробовать.
С уважением, Юрий

layabout

squid перешел на второй план.
здох основной сервер, почта днс и шлюз, за полдня поставил zentyal, понравился, но пота ващпе ужасно ходит. но это в другую тему вопросы http://linuxforum.kz/index.php?topic=5920.0