Портал информационной и технической поддержки ПО образовательных учреждений РФ

SPO HELP
  • Новости
  • Продукты
  • Поддержка
  • Учебный центр
  • Документация
  • Сообщество
  • Форумы
       
  • Вход
  • Регистрация

Форумы → Свободное Программное Обеспечение → Как заставить работать почтовые программы в обход прокси-сервера?
Последние записи

Как заставить работать почтовые программы в обход прокси-сервера?

Подписаться на Как заставить работать почтовые программы в обход прокси-сервера? Сообщений: 24, участников: 6

  • Участвуют:
  • Денис Павелко
  • Viktor
  • iop572
  • Сергей Паранюшкин
  • Илья Барабаш
  • Вячеслав Бондарчук
Ответить


27 октября 2010, 11:06
11m_medium Денис Павелко Записей: 26

Добрый день! ПРосмотрел готовые решения, перебрал кучу вариантов, но все равно не заставил работать почтовые программы в обход прокси-сервера. У меня шлюз на ubuntu с интерфейсами eth0 (172.16.14.ххх) - интернет, eth1 (192.168.0.1) - смотрит во внутреннюю сеть. На шлюзе стоит squid. Машины во внутренней сети получают ip по dhcp. Требуется чтобы в локальной сети работали почтовые программы и соединялись с почтовыми серверами mail.ru и др.

Конфигурация iptables такая:

Chain INPUT (policy ACCEPT)target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)target     prot opt source               destination 

NAT-таблица:

Chain PREROUTING (policy ACCEPT)target     prot opt source               destination         
Chain POSTROUTING (policy ACCEPT)target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)target     prot opt source               destination  

Помогите, пожалуйста, настроить файрволл.

 
27 октября 2010, 13:30
Custom_Аватар_medium Viktor Записей: 1327

Для начала проверьте получают ли клиенты по dhcp адреса работающих dns-серверов. Какие почтовые программы Вы имеете в виду: MUA, MTA? Конфигурация iptables приведена никакая. Он Вам вообще зачем? Например:

Таблица: nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 192.168.0.3 anywhere
ACCEPT all -- 192.168.0.4 anywhere
loc_dnat all -- anywhere anywhere
loc_dnat all -- anywhere anywhere

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
eth0_masq all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
all -- 192.168.0.3 anywhere
all -- 192.168.0.4 anywhere
RETURN tcp -- anywhere anywhere tcp dpt:http owner UID match squid
REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 3128

Chain eth0_masq (1 references)
target prot opt source destination
MASQUERADE all -- 192.168.0.0/24 anywhere

Chain loc_dnat (2 references)
target prot opt source destination
REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 3128

 
27 октября 2010, 13:36
11m_medium Денис Павелко Записей: 26

Viktor писал(а):

Для начала проверьте получают ли клиенты по dhcp адреса работающих dns-серверов. Какие почтовые программы Вы имеете в виду: MUA, MTA?

​Я  имею ввиду mozilla thunderbird. 
вот что у меня написано в dhcp.conf
subnet 192.168.0.0 netmask 255.255.255.0 {option routers 192.168.0.1;option subnet-mask 255.255.255.0;option domain-name "school"; range 192.168.0.216 192.168.0.254;}
 
27 октября 2010, 13:44
Custom_Аватар_medium Viktor Записей: 1327

option domain-name-servers dns1, dns2;. Без этого MUA будет трудно.
А адрес прокси Вы на клиенте указаваете?

 
27 октября 2010, 14:15
11m_medium Денис Павелко Записей: 26

Viktor писал(а):

А адрес прокси Вы на клиенте указаваете?

​На клиенте я пишу адрес прокси 192.168.0.1 и ставлю галочку "для всех" (в т.ч. для ssl и socks)
 
27 октября 2010, 14:36
Custom_Аватар_medium Viktor Записей: 1327

Добавьте в dhcp.conf указанную выше опцию, а там посмотрим.

 
28 октября 2010, 14:09
11m_medium Денис Павелко Записей: 26

В dhcp.conf опцию добавил. Адресом dns что указывать: адрес сервера (eth1) или dns для сервера (от провайдера)? С обеими вариантами дело никак не сдвигается.

 
29 октября 2010, 06:31
Icon_missing_medium iop572 Записей: 163

а на машинах настроено, что бы они прокси использовани для всего? Не вижу, с чего Вы взяли, что почтовые клиенты через прокси работают.

iptables -n -L -v -t nat покажите.

 
29 октября 2010, 09:53
11m_medium Денис Павелко Записей: 26

iop572 писал(а):

а на машинах настроено, что бы они прокси использовани для всего? Не вижу, с чего Вы взяли, что почтовые клиенты через прокси работают.

iptables -n -L -v -t nat покажите.

​Почтовый клинет через прокси не будет работать. Прокси обрабатывет только http трафик через порт 8080.
Но в почтовой программа для чего-то стоит опция указать http, ssl прокси и узел socks. Наверно для обновления программы или еще для чегото.

iptables -n -L -v -t nat:
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target     prot opt in     out     source               destination         
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target     prot opt in     out     source               destination         
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target     prot opt in     out     source               destination
 
29 октября 2010, 11:58
Icon_missing_medium iop572 Записей: 163

Денис Павелко писал(а):

все равно не заставил работать почтовые программы в обход прокси-сервера.

тога не понял, что мы тут настраиваем?
 
29 октября 2010, 13:06
Custom_Аватар_medium Viktor Записей: 1327

> У меня шлюз на ubuntu с интерфейсами eth0 (172.16.14.ххх) - интернет, eth1 (192.168.0.1) - смотрит во внутреннюю сеть
Почему Вы решили, что это шлюз. nat не работает.

В  /etc/sysctl.conf должно быть net.ipv4.ip_forward=1

В /etc/iptables.up.rules должно быть что-то типа.

*nat
:eth0_masq - [0:0] #eth0_masq - имя цепочки
:loc_dnat - [0:0] #loc_dnat - имя цепочки
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

-A POSTROUTING -o eth0 -j eth0_masq

-A OUTPUT -p tcp -m tcp -m owner --dport 80,8080 --uid-owner squid -j RETURN

-A eth0_masq -s 192.168.0.0/24 -j MASQUERADE

-A loc_dnat -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

-A OUTPUT -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

-A PREROUTING -i eth1 -j loc_dnat

 

Другой вариант. Создаем файл, например /etc/nat и делаем его исполняемым.

В него пишем

#!/bin/sh

# Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

# Разрешаем трафик на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT

# Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

# Включаем NAT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE

# Разрешаем ответы из внешней сети
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i eth0 -o eth1 -j REJECT

# Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i eth1 -d ! 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128

 

В /etc/network/interfaces после настроек сетевых интерфейсов добавляем post-up /etc/nat
Примечание: Если в /etc/sysctl.conf net.ipv4.ip_forward=1, то echo 1 > /proc/sys/net/ipv4/ip_forward можно не писать.

См. http://ru.wikipedia.org/wiki/NAT, http://ru.wikipedia.org/wiki/Прокси-сервер, http://interface31.ru/tech_it/2009/11/linux-nas...,
http://www.bible-mda.ru/soft/debian-4.0-firewal...
https://help.ubuntu.com/community/IptablesHowTo
http://www.opennet.ru/docs/RUS/iptables/

В ubuntu есть еще ufw. Будьте внимательны.

PS Установите webmin, в нем через web-интерфейс можно многое настроить, в том числе и firewall. Более конкретно о применении правил netfilter говорить сложно, т.к. инициализация того-же iptables зависит от дистрибутива (хотя синтаксис правил стандарт).

 
29 октября 2010, 15:31
Icon_missing_medium iop572 Записей: 163

маскарадинг

 
29 октября 2010, 15:46
Custom_Аватар_medium Viktor Записей: 1327

Имел ввиду *nat (таблицу), а не snat.

 
02 ноября 2010, 09:51
11m_medium Денис Павелко Записей: 26

Сделал. Помогли такие команды:

iptables -A POSTROUTING -t nat -j MASQUERADE -o eth0

iptables -P FORWARD ACCEPT

и net.ipv4.ip_forward=1 в  /etc/sysctl.conf

Хотя я так и не разбираюсь, как там пакеты ходят и не знаю как насчет безопасности сервера при вышеприведенных правилах.

 
03 ноября 2010, 08:19
Custom_Аватар_medium Viktor Записей: 1327

Теперь любой из локалки может выйти в инет минуя прокси.

PS Тема больше похоже на настройку шлюза+прокси.

 
03 ноября 2010, 14:25
11m_medium Денис Павелко Записей: 26

Пробовал задействовать вашу команду

# Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i eth1 -d ! 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128
Система выдает мне такое сообщение:

Using intrapositioned negation (`--option ! this`) is deprecated in favor of extrapositioned (`! --option this`).

Сделал так:

sudo iptables -t nat -A PREROUTING -i eth1 ! -d  192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:8080

(передвинул ! и указал порт 8080 для dansguardian) - Заработало

 
14 октября 2011, 09:59
Paranyushkin_medium Сергей Паранюшкин Записей: 144

Возникла проблема с приемом почты:

AltLinux Server 5.0.2 с двумя сетевыми интерфейсами: eth0 (192.168.0.1) в локальной сети, к eth1(192.168.1.1) подключен ADSL модем, который в режиме бриджа работает. Ну и создается PPPoE соединение на интерфейсе eth1.

Предыдущий провайдер воткнул в eth1 шнурок, назначил серверу ip-адрес и всё было здорово и почтовые клиенты почту принимали успешно.

А теперь провайдер новый, он АДСЛ модем дал, ну и высокоскоростное соединение надо создавать.

Итог: почему-то почтовые клиенты работать перестали, ping pop.mail.ru из локалки не работает, а с сервера всё пингуется. Ниже правила которые я в iptables добавляю, чтоб мимо squid и dg никто не ходил в инет.

[root@server ~]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
REDIRECT   tcp  --  anywhere             anywhere            tcp dpt:squid redir ports 8085
DNAT       tcp  --  anywhere            !192.168.0.0/24      multiport dports http,webcache to:192.168.0.1:3128

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[root@server ~]#

Почему почтовые клиенты не связываются с pop.mail.ru и smtp.mail.ru? Где хоть искать?

 
14 октября 2011, 10:46
Icon_missing_medium Илья Барабаш Записей: 421

Ставьте тандерберд, он умеет работать через прокси.

Или настраивайте фаэрфол что бы он пропускал 25 и 110 порты. а остальное заворачивал.

 
14 октября 2011, 11:00
Paranyushkin_medium Сергей Паранюшкин Записей: 144

клиент: thunderbird 3.1.10pre, союз "или" подразумевает что этого достаточно, однако и с настроенным прокси не работает.
а может ли дело быть в том, что у нового провайдера тоже свой прокси? или в PPPoE?
Вернул сейчас шнурок первого провайдера... убрал из настроек thunderbird прокси и всё опять работает.
как добавить правило, чтоб пакеты на 25 и 110 порты мимо squid шли? Я вроде в iptables указал чтоб 80 и 8080 порт на сквид перенаправлялись а затем на DG.

 
14 октября 2011, 12:29
Icon_missing_medium Илья Барабаш Записей: 421

У меня вот так

# Generated by iptables-save v1.4.10 on Fri Oct 14 12:26:25 2011
*nat
:PREROUTING ACCEPT [400235:45080179]
:INPUT ACCEPT [353854:41095794]
:OUTPUT ACCEPT [396709:40048262]
:POSTROUTING ACCEPT [395965:39015793]
-A PREROUTING -i eth0 -p tcp -m iprange --src-range 192.168.0.11-192.168.0.254 -m multiport --dports 80,443,8080,3128 -j REDIRECT --to-ports 3128
-A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
COMMIT
# Completed on Fri Oct 14 12:26:25 2011
# Generated by iptables-save v1.4.10 on Fri Oct 14 12:26:25 2011
*filter
:INPUT DROP [13770:5571663]
:FORWARD DROP [134276:7971103]
:OUTPUT ACCEPT [17807246:12137840867]
:common-check - [0:0]
:icmp-in - [0:0]
:statefull - [0:0]
-A INPUT -j common-check
-A INPUT -j icmp-in
-A INPUT -i eth0 -j ACCEPT
-A INPUT -d 127.0.0.0/8 -i lo -j ACCEPT
-A INPUT -j statefull
-A FORWARD -j common-check
-A FORWARD -i eth0 -m iprange --src-range 192.168.0.2-192.168.0.10 -j ACCEPT
-A FORWARD -i eth0 -p tcp -m iprange --src-range 192.168.0.11-192.168.0.20 -m multiport --dports 20,21,25,26,53,110,5190,16258:65535 -j ACCEPT
-A FORWARD -j statefull
-A OUTPUT -j common-check
-A common-check -m state --state INVALID -j DROP
-A common-check -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
-A common-check -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A common-check -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP
-A common-check -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
-A common-check -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,ACK,URG -j DROP
-A common-check -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A common-check -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A common-check -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A icmp-in -p icmp -m state --state NEW -m icmp --icmp-type 8 -j ACCEPT
-A icmp-in -p icmp -m state --state NEW -m icmp --icmp-type 11 -j ACCEPT
-A icmp-in -p icmp -m state --state NEW -m icmp --icmp-type 3 -j ACCEPT
-A statefull -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Fri Oct 14 12:26:25 2011
# Generated by iptables-save v1.4.10 on Fri Oct 14 12:26:25 2011
*mangle
:PREROUTING ACCEPT [20257123:12872658206]
:INPUT ACCEPT [18521847:11943368728]
:FORWARD ACCEPT [1576363:906505577]
:OUTPUT ACCEPT [17808206:12138934647]
:POSTROUTING ACCEPT [19273793:13042619852]
COMMIT
# Completed on Fri Oct 14 12:26:25 2011

 
26 октября 2011, 13:49
Paranyushkin_medium Сергей Паранюшкин Записей: 144

Проблема была в том, что я не отметил ppp1, как внешний интерфейс. После этого + перехода от "прозрачного" режима свыида к "обычному" + настройки на отправку по 587 порту, вместо 25, всё заработало. Проблем еще добавил прокс-сервер нового провайдера, но после настройки клиентов на него, всё теперь кое-как работает.

 
05 апреля 2013, 12:43
Icon_missing_medium Вячеслав Бондарчук Записей: 10

Добрый день !!! Ничего не получается

AltLinux Server 6.0.0 с двумя сетевыми интерфейсами: eth1 (192.168.5.1) в локальной сети, к eth0 подключен ADSL модем настроен прокси как обычный. Задача 1 - дать определенному клиенту полный доступ к интернету, задача 2 - получать почтовыми клиентами Thunderbird  почту с mail. Перепробовал множество рецептов результат ноль. При переводе squid в прозрачный режим , клиенты с непрописанными настройками прокси в интернет не ходят. Включение режима шлюз ситуацию не меняет. Помогите!

 
05 апреля 2013, 13:32
Custom_Аватар_medium Viktor Записей: 1327

> клиенты с непрописанными настройками прокси в интернет не ходят.

http://www.spohelp.ru/forums/12-svobodnoe-progr...

 
05 апреля 2013, 16:01
Icon_missing_medium Вячеслав Бондарчук Записей: 10

Viktor писал(а):

> клиенты с непрописанными настройками прокси в интернет не ходят.

http://www.spohelp.ru/forums/12-svobodnoe-progr...

​ходят , проблема решена , разобрался

Войдите чтобы ответить на тему

Форумы → Свободное Программное Обеспечение → Как заставить работать почтовые программы в обход прокси-сервера?
  • Главная
  • О проекте
  • Справка
  • Теги
  • Карта сайта

©2015 Все права защищены. Портал информационной и технической поддержки ПО образовательных учреждений РФ.
Cо всеми проблемами и пожеланиями по работе портала и службы технической поддержки вы можете обратиться по адресу .