Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   *nix системы (https://forum.antichat.xyz/forumdisplay.php?f=124)
-   -   не ходит pop/imap/smtp через squid (https://forum.antichat.xyz/showthread.php?t=191847)

Kavabango 30.03.2010 18:12

не ходит pop/imap/smtp через squid
 
Добрый день, форумчане:) Собственно столкнулся с такой проблемой(сабж). У меня интернет через прокси(gentoo+squid) Подскажите как реализовать чтоб через прокси ходили почтовики. Перенаправление с одного сервиса сделать не могу, так как клиентов много почты разные(mail.ru, gmail.com, etc) Клиенты и прокси в разных сегментах сети, авторизация по IP.

krypt3r 31.03.2010 09:25

Навскидку добавьте 25 и 110 порты в список разрешенных портов (в squid.conf)

Туплю: squid не кэширует SMTP/POP/IMAP. Смотрите правила iptables

Kavabango 31.03.2010 17:39

Чтоб наглядней было кусок squid.conf
Код:

########open ports ##############
acl icq_ports port 443 445 563 5190
acl open_ports port 80 8000
acl open_ports port 21 25
acl mail_ports port 995 465 587 # pop.gmail.com
acl mail_ports port 993        # imap.gmail.com
acl mail_ports port 110 2525    # pop.mail.ru
acl open_ports port 1025-65535  #unregistred ports
......
######## access rules ###########
http_access allow localhost
http_access allow free_user
http_access allow icq_ports
http_access allow open_ports
http_access allow mail_ports
http_access deny all
icp_access deny all
miss_access allow free_user
miss_access deny all#

в iptables тоже все открыто. Где то нашел инфу что squid не может проксировать pop3 сессии, но при этом пишут что у кого то на прозрачном прокси все работает, почта ходит.
Сам понять че куда завернуть на файерволе/сквиде как то не могу...

Hobba 31.03.2010 22:11

iptables:

LOCALNET=192.168.1.0/24
MAILSERVER=87.250.251.37

iptables -A FORWARD -p tcp -s $LOCALNET -d $MAILSERVER --dport 25 -j ACCEPT
iptables -A FORWARD -p tcp -s $MAILSERVER -d $LOCALNET --sport 25 -j ACCEPT
iptables -A FORWARD -p tcp -s $LOCALNET -d MAILSERVER --dport 110 -j ACCEPT
iptables -A FORWARD -p tcp -s MAILSERVER -d $LOCALNET --sport 110 -j ACCEPT

iptables -t nat -A POSTROUTING -p tcp -s $LOCALNET --dport 110 -j MASQUERADE
iptables -t nat -A POSTROUTING -p tcp -s $LOCALNET --dport 25 -j MASQUERADE

Примерно так

Kavabango 01.04.2010 21:35

Hobba: спасибо, я примерно о этом же думал. Но проблемма в том что почтовых сервисов несколько. Как тогда быть?

shellz[21h] 01.04.2010 22:06

Код:

#!/bin/bash
LOCALNET=192.168.1.0/24
for MAILSERVER in 87.250.251.37 87.250.251.37 ... ; do
        iptables -A FORWARD -p tcp -s $LOCALNET -d $MAILSERVER --dport 25 -j ACCEPT
        iptables -A FORWARD -p tcp -s $MAILSERVER -d $LOCALNET --sport 25 -j ACCEPT
        iptables -A FORWARD -p tcp -s $LOCALNET -d MAILSERVER --dport 110 -j ACCEPT
        iptables -A FORWARD -p tcp -s MAILSERVER -d $LOCALNET --sport 110 -j ACCEPT

        iptables -t nat -A POSTROUTING -p tcp -s $LOCALNET --dport 110 -j MASQUERADE
        iptables -t nat -A POSTROUTING -p tcp -s $LOCALNET --dport 25 -j MASQUERADE
done

:D

S][amaN 04.04.2010 04:29

хм насколько я знаю squid http-прокси и почта через него никак неходит, здесь нужно iptables разруливать, shellz[21h] нагладно показал у меня на паре серваков что то похожее есть, я там банк клиент разруливал)

Kavabango 05.04.2010 13:00

Да. На самом деле так и есть. Squid не поддерживает pop3 сессии это точно. Разруливать все это дело надо через iptables. А тут у меня видимо не хватает знаний:( Я не совсем понимаю как это все будет происходить...Я поставлю переброс портов на iptables на локальные порты с почтовиков(Естественно работает squid и на локальных машинах прописан адрес прокси).
Теперь основная непонятка. Когда машина полезет в инет за почтой, откуда она узнает с какого компа ее собирать. На squid она не идет(как я понимаю), а клиенты и прокси сервер вообще в разных сегментах сети..(типа у клиентов 192.168.0.0/24 а на сервере 10.187.0.0/16. Цифры взяты из головы просто для примера)
Буду благодарен, если кто поможет обьяснить.
за контактами(ICQ,jabber etc.) в личку

Kavabango 14.04.2010 11:25

Сделал примерно как предлагали
кусок кода
Код:

$IPTABLES -A FORWARD -p tcp -s 10.2.0.0/16 -d pop.gmail.com --dport 995 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s pop.gmail.com -d 10.3.0.0/16 --sport 995 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s 10.2.0.0/16 -d smtp.gmail.com --dport 465 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s smtp.gmail.com -d 10.3.0.0/16 --sport 465 -j ACCEPT
...
$IPTABLES -t nat -A POSTROUTING -p tcp -s 10.2.160.217 --dport 25 -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -p tcp -s 10.2.160.217 --dport 110 -j MASQUERADE

не помогает...
И еще один вопрос. iptables ругается на любые команды с ключем -m(типа -m mac;-m state;-m multiport...). покурил маны говорят надо в ядре опции типа
CONFIG_IP_NF_MATCH_MAC ; CONFIG_IP_NF_MATCH_MULTIPORT ;
CONFIG_IP_NF_MATCH_STATE;
установить. Открыл конфига там из подобного только
Код:

# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
# CONFIG_IP_NF_MATCH_AH is not set
# CONFIG_IP_NF_MATCH_ECN is not set
# CONFIG_IP_NF_MATCH_TTL is not set

но это немного не то по моему. Как быть?

Kavabango 15.04.2010 09:34

Сегодня посмотрел внимательней конфиг ядра, нашел немного в другой секции
Код:

#
# Core Netfilter Configuration
#
....
# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_MAC is not set
# CONFIG_NETFILTER_XT_MATCH_MARK is not set
# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
# CONFIG_NETFILTER_XT_MATCH_STATE is not set
...

Очень похоже на то что нужно, но все таки смущает что не так как в руководстве...


Время: 15:04