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

Задача стоит в том что бы пользователи могли пользоваться внешней почтой > сидя при этом за squid`ом

 , ,


0

1

Здравствуйте. В Squid3 ето не помагает.
acl SSL_ports port 995 # POP3
acl SSL_ports port 993 # IMAP
cl SSL_ports port 456 #SMTP

# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports



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

Ответ на: комментарий от Pinkbyte

Может я туплю, но с каких это пор почту (IMAP, POP3, SMTP) забирают через прокси сервер? Я что-то пропустил в этой жизни?
И, если я таки туплю, расскажите мне, как настроить <ваш любимый e-mail клиент>, чтобы он ходит через прокси?

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

Outlook Express в оффтопике ходит через настройки IE. Mozilla Thunderbird - через свои настройки прокси, которые доступны на вкладке «Сеть». Вылезай из криокамеры - почти все почтовые клиенты умеют ходить через HTTP-прокси.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Simamura
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8

# Добавляем описание нашей подсети:
acl localnet src IP/24
#acl localnet src IP/24
acl SSL_ports port 443

acl SSL_ports port 465 #smtps
acl SSL_ports port 993 #imaps
acl SSL_ports port 995 #pop3s

acl Safe_ports port 465 #smtps
acl Safe_ports port 993 #imaps
acl Safe_ports port 995 #pop3s

acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

# Этой строчкой разрешаем использование squid из локальной сети:
http_access allow localnet
http_access allow localhost
http_access deny all
icp_access deny all
htcp_access deny all

http_port 3128
http_port IP:3128 transparent

hierarchy_stoplist cgi-bin ?

access_log /var/log/squid3/access.log squid

url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf

icp_port 3130

error_directory /usr/share/squid3/errors/Russian-1251
Simamura
() автор топика
Ответ на: комментарий от Simamura

Во-первых, какой почтовик?
Во-вторых, может проще пустить почту напрямую? Или через свой релей, если паранойя мучает

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

Почтовики The Bat! и Outlook Express
Во-вторых, может проще пустить почту напрямую? Или через свой релей, если паранойя мучает
А как можно пустить на прямую???

Simamura
() автор топика
Ответ на: комментарий от dada
Chain INPUT (policy ACCEPT 6025 packets, 3077K bytes)
 pkts bytes target     prot opt in     out     source               destination
12061 2541K ACCEPT     tcp  --  eth1   *       10.0.1.0/24          0.0.0.0/0           tcp dpt:3128
 4452 3132K ACCEPT     tcp  --  eth0   *      !10.0.1.0/24          0.0.0.0/0           tcp spt:80 ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  eth1   *       10.0.1.0/24          0.0.0.0/0           tcp dpt:80

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  eth1   eth0    0.0.0.0/0           !10.0.1.0/24         tcp multiport dports 53,123,443,993,465
    0     0 ACCEPT     tcp  --  eth0   eth1   !10.0.1.0/24          0.0.0.0/0           tcp multiport sports 53,123,443,993,465 ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     udp  --  eth1   eth0    0.0.0.0/0           !10.0.1.0/24         udp multiport dports 53,123
    0     0 ACCEPT     udp  --  eth0   eth1   !10.0.1.0/24          0.0.0.0/0           udp multiport sports 53,123 ctstate RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT 6681 packets, 1268K bytes)
 pkts bytes target     prot opt in     out     source               destination
12471 6269K ACCEPT     tcp  --  *      eth1    0.0.0.0/0            10.0.1.0/24         tcp spt:3128 ctstate RELATED,ESTABLISHED
 4907 1381K ACCEPT     tcp  --  *      eth0    0.0.0.0/0           !10.0.1.0/24         tcp dpt:80
    0     0 ACCEPT     tcp  --  *      eth1    0.0.0.0/0            10.0.1.0/24         tcp spt:80 ctstate RELATED,ESTABLISHED

Simamura
() автор топика
Ответ на: комментарий от dada

Извините совсем забыл про iptables. Устал ужас 3 день сервак собираю и настраиваю. Сроки давит пипец.

Simamura
() автор топика
Ответ на: комментарий от uspen
Chain PREROUTING (policy ACCEPT 1714 packets, 86953 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 REDIRECT   tcp  --  eth1   *       10.0.1.0/24         !10.0.1.0/24         tcp dpt:80 redir ports 3128

Chain POSTROUTING (policy ACCEPT 922 packets, 55876 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 SNAT       all  --  *      eth0    10.0.1.0/24         !10.0.1.0/24         to:91.196.159.215

Chain OUTPUT (policy ACCEPT 922 packets, 55876 bytes)
 pkts bytes target     prot opt in     out     source               destination

Simamura
() автор топика
Ответ на: комментарий от uspen

У меня уже крыша едет почему не работает??

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

Брррр.... Какая ересь в правилах!

Сначала делаем так(первым правилом):

-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

Потом:

-A FORWARD -p tcp -m multiport --destination-ports 443,456,465,993,995 -j ACCEPT
Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 3)

1 ) в приведёных правилах squid не было разрешающего правала.

Т.е. ты запрещаешь подключаться к не-SSL_ports. Но потом нужно разрешить что-то пользователям, т.к. по умолчанию - http_access deny all

Например

acl office network src 10.10.10.0/24
acl mail_port port 995
acl mail_port port 993
http_access allow office_network mail_port

2 ) вот это правило

0 0 REDIRECT tcp  — eth1 * 10.0.1.0/24 !10.0.1.0/24 tcp dpt:80 redir ports 3128

подразумевает ПРОЗРАЧНЫЙ прокси. Во-первых, для работы в прозрачном ( interception, transparent ) режиме прокси нужно явно настраивать

http_port 3128 transparent

во-вторых, прозрачный прокси НЕ ПОЗВОЛИТ работать с SSL соединениями, только голый http

Мой совет - настрой на прокси два порта. На одном - «обычный» прокси, на другом - прозрачный

Работу через обычный прокси нужно настраивать - явно указать в клиентском приложении прокси. На прозрачный прокси можно направлять тех, кто забыл настроить прокси.

router ★★★★★
()
Последнее исправление: router (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Outlook Express в оффтопике ходит через настройки IE. Mozilla Thunderbird - через свои настройки прокси, которые доступны на вкладке «Сеть». Вылезай из криокамеры - почти все почтовые клиенты умеют ходить через HTTP-прокси.

Не верю (C).

Про аутлук нашел только вот такое. Короче, это одна из фич Exchange сервера, которая при этом является банальной RPC over HTTP. Еще - да, Outlook действительно использует настройки IE, но только для того, чтобы подгружать внешние ресурсы (картинки) в полученных письмах, но не для получания/отправки почты.

SMTP, POP3, IMAP не проксируется (вчастности squid)!

Если нет - дай пруф!

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

А как быть тогда если надо так зделать.???

Для всего что в браузере - squid. Для почты - банальный ip форвардинг.

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

SMTP, POP3, IMAP не проксируется (вчастности squid)!

При чём тут проксирование протокола? Можно использовать CONNECT, тем более для POP3+SSL, IMAP+SSL

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

SMTP, POP3, IMAP не проксируется (вчастности squid)!

Да, ты прав, это я напутал. Для почты у меня в свое время был отдельный SOCKS proxy, посыпаю голову пеплом...

Pinkbyte ★★★★★
()
Ответ на: ТАК КАК ВСЕТАКИ ЗДЕЛАТЬ ПРОБРОС????? от Simamura

Выпустить напрямую?

# разрешаем форвардинг в принципе
echo 1 > /proc/sys/net/ipv4/ip_forward

# маскарадинг ( SNAT при неизвестном заранее адресе )
iptables -t nat -A POSTROUTING -i <интерфейс в LAN> -o <интерфейс в internet> -j MASQUERADE

# исправляем MSS. На всякий случай, вдруг у тебя VPN
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

#
# задаём правила, кому можно, а кому - нет
#

# мы не релей для всего инета
iptables -A FORWARD -i <интерфейс в internet> -o <интерфейс в internet> -j DROP
# установленные соединения пропускаем
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# разрешаем POP3+SSL из локальной сети в интернет
iptables -A FORWARD -i <интерфейс в LAN> -o <интерфейс в internet> -p tcp -m tcp --dport 995 -j ACCEPT
# разрешаем IMAP+SSL из локальной сети в интернет
iptables -A FORWARD -i <интерфейс в LAN> -o <интерфейс в internet> -p tcp -m tcp --dport 993 -j ACCEPT
# остальное запрещено
iptables -A FORWARD -i <интерфейс в LAN> -o <интерфейс в internet> -j MASQUERADE  -j REJECT

Правила писал на память. Всё нужно проверять. man iptables

router ★★★★★
()
Ответ на: ТАК КАК ВСЕТАКИ ЗДЕЛАТЬ ПРОБРОС????? от Simamura

ТАК КАК ВСЕТАКИ ЗДЕЛАТЬ ПРОБРОС?????

1. На шлюзе: гасишь полностью iptables.
2. На шлюзе: делаешь: sudo echo 1 > /proc/sys/net/ipv4/ip_forward
3. На машине в локалке делаешь: ping http://www.google.com.
Если пинги идут - значит форвардинг работает. Значит поднимаешь iptables, и, если после это не работает - проблема в iptables.
Если пинги не работают - анализируешь на клиенте таблицу маршрутизации, настройки DNS и т. п., добиваешься того, чтобы пинг на гугл проходил.
Ok?

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

Возник новый вопрос как автоматом подгружать после reboot
echo 1 > /proc/sys/net/ipv4/ip_forward
ipitables-restote /etc/ipitables.conf

Simamura
() автор топика
Ответ на: комментарий от Pinkbyte

Mozilla Thunderbird - через свои настройки прокси

Он html письма со ссылками через прокси показывает, а ходить на pop3/imap4 он через прокси не умеет, по крайней мере под виндой.

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

Возник новый вопрос как автоматом подгружать после reboot
echo 1 > /proc/sys/net/ipv4/ip_forward

Пропиши в /etc/sysctl.conf (а точнее раскомментируй)
net.ipv4.ip_forward = 1

ipitables-restote /etc/ipitables.conf

Смотри маны к своему дистру. Обычно так же как и добавить службу в автозапуск. Я знаю как сделать в Генте.

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

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

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

Пропиши в /etc/sysctl.conf (а точнее раскомментируй)
net.ipv4.ip_forward = 1
Вот за ето спс..
Все уже решил.
(/etc/network/interfaces)

auto lo [br]
 iface lo inet loopback [br]
 post-up iptables-restore </etc/iptables.conf[br]

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

МОЖЕТ надо будет кому все работает

iptables -t nat -A POSTROUTING -o eth0 -s <!--сеть--> ! -d <!--сеть--> -j SNAT --to <!--инет-->
iptables -A FORWARD -p udp -m udp -i eth1 -o eth0 ! -d <!--сеть--> -m multiport --dports 53,123,443,993,465,25 -j ACCEPT
 iptables -A FORWARD -p udp -m udp -i eth0 -o eth1 ! -s <!--сеть--> -m multiport --sports 53,123,443,993,465,25 -j ACCEPT -m conntrack --ctstate RELATED,ESTABLISHED

 iptables -A FORWARD -p tcp -m tcp -i eth1 -o eth0 ! -d <!--сеть--> -m multiport --dports 53,123,443,993,465,25 -j ACCEPT
 iptables -A FORWARD -p tcp -m tcp -i eth0 -o eth1 ! -s <!--сеть--> -m multiport --sports 53,123,443,993,465,25 -j ACCEPT -m conntrack --ctstate RELATED,ESTABLISHED
###SQUID3.conf
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src <!--сеть-->
acl SSL_ports port 443
acl SSL_ports port 25 #smtps
acl SSL_ports port 465 #smtps
acl SSL_ports port 993 #imaps
acl SSL_ports port 995 #pop3s
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # ICQ
acl Safe_ports port 5522 # QIP
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access allow localhost
http_access deny all
icp_access deny all
htcp_access deny all
http_port 3128
http_port <!--сеть-->:3128 transparent

hierarchy_stoplist cgi-bin ?

access_log /var/log/squid3/access.log squid

url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf

icp_port 3130

error_directory /usr/share/squid3/errors/Russian-1251


Единственое что надо на клиенте прописовать DNS сервера.

Simamura
() автор топика
Ответ на: комментарий от Kroz

Все спасибо :)

Буду теперь Web сервак поднимать.

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