URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 3717
[ Назад ]

Исходное сообщение
"СБиС через прокси/файрвол"

Отправлено pecheroviy , 19-Мрт-08 12:15 
Доброго времени суток!

Дано:
1.программа СБиС - передача данных в налоговую, работает по принципу почтовика (использует порты 25,110, можно изменить например на 8110, 8025).
2.Компьютер на который она установлена 192.168.0.250
3.Прокси-сервер с авторизацией 192.168.0.247, порт 3128 остальное закрыто. Почтовики на внешние почтовые адреса из нашей сети не работатают (так и должно быть)

Нужно: что бы программа СБиС заработала. Как я понимаю понимаю, что необходимо сделать туннель с

194.186.72.201:110 на 192.168.0.247:8110
194.186.72.201:25 на 192.168.0.247:8025

и тогда, как я понимаю, программа будет работать.. если в настройках ее почтового ящика установить в качестве серверов входящей/исходящей почты 192.168.0.247:8110 и 192.168.0.247:8025

Хотелось бы сделать это средствами IPTables путем пересылки пакетов... но что-то я запутался.

Прошу сильно не пинать - администрирование сетей немного не моя специфика, но сделать надо.


Содержание

Сообщения в этом обсуждении
"СБиС через прокси/файрвол"
Отправлено leon55 , 19-Мрт-08 15:17 
>[оверквотинг удален]
>
>и тогда, как я понимаю, программа будет работать.. если в настройках ее
>почтового ящика установить в качестве серверов входящей/исходящей почты 192.168.0.247:8110 и 192.168.0.247:8025
>
>
>Хотелось бы сделать это средствами IPTables путем пересылки пакетов... но что-то я
>запутался.
>
>Прошу сильно не пинать - администрирование сетей немного не моя специфика, но
>сделать надо.

Насколько я понял, порт 25 юзается на локальном (родном) смтп сервере?


"СБиС через прокси/файрвол"
Отправлено pecheroviy , 19-Мрт-08 15:23 
>Насколько я понял, порт 25 юзается на локальном (родном) смтп сервере?

локальный SMTP и прокси это разные компьютеры, с разными внешними и внутренними IP. поэтому на прокси можно с 25 портом делать все что угодно
Единственное, что не хотелось бы что бы эти порты были доступны для всех пользователей... т.е. я хотел бы пустить одну программу с одного внутреннего IP в внешний мир через 25 и 110 IP.



"СБиС через прокси/файрвол"
Отправлено Junior , 19-Мрт-08 15:37 
>>Насколько я понял, порт 25 юзается на локальном (родном) смтп сервере?
>
>локальный SMTP и прокси это разные компьютеры, с разными внешними и внутренними
>IP. поэтому на прокси можно с 25 портом делать все что
>угодно
>Единственное, что не хотелось бы что бы эти порты были доступны для
>всех пользователей... т.е. я хотел бы пустить одну программу с одного
>внутреннего IP в внешний мир через 25 и 110 IP.

Так разрешите правилами iptables работу с этими портами только указанному адресу.
Дел на 2 минуты. Можете даже включить добавление в логи когда программа отработает по этим портам.

IPTABLES="/sbin/iptables"  #или где там он у вас находится.
MAIL_PORTS="25,110"
IP="192.168.0.250"
SITE="194.186.72.201"

$IPTABLES -A FORWARD -p tcp -s $PC -d $SITE -m multiport --dports $MAIL_PORTS -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d $PC -s $SITE -m multiport --sports $MAIL_PORTS -j ACCEPT

Ну и далее в таком же духе откройте, что вам необходимо.


"СБиС через прокси/файрвол"
Отправлено pecheroviy , 19-Мрт-08 16:18 
>$IPTABLES -A FORWARD -p tcp -s $PC -d $SITE -m multiport --dports
>$MAIL_PORTS -j ACCEPT
>$IPTABLES -A FORWARD -p tcp -d $PC -s $SITE -m multiport --sports
>$MAIL_PORTS -j ACCEPT

Я и сам думал примерно так. Не заработало.
Сейчас сделал в точности как написано. СБиС не работает (пишет не могу соединиться с сервером).
Насколько я понимаю - в настройках СБиС менять ничего не надо, так она и должна обращаться к 194.186.72.201 (25 и 110 порты). при этом СБиС должен считать что компьютер где он установлен подключен к инету напрямую (хотя внешне от этого параметра ничего не зависит)?
Единственное, как я понимаю, надо указать на машине где стоит СБиС в качестве шлюза удаленной сети (в настройках винды) машину используемую как прокси сервер?
Ведь мы же прокси не используем как таковой, а получается что-то типа прозрачного прокси для данной программы?


"СБиС через прокси/файрвол"
Отправлено Junior , 19-Мрт-08 16:35 
>[оверквотинг удален]
>соединиться с сервером).
>Насколько я понимаю - в настройках СБиС менять ничего не надо, так
>она и должна обращаться к 194.186.72.201 (25 и 110 порты). при
>этом СБиС должен считать что компьютер где он установлен подключен к
>инету напрямую (хотя внешне от этого параметра ничего не зависит)?
>Единственное, как я понимаю, надо указать на машине где стоит СБиС в
>качестве шлюза удаленной сети (в настройках винды) машину используемую как прокси
>сервер?
>Ведь мы же прокси не используем как таковой, а получается что-то типа
>прозрачного прокси для данной программы?

Клиентской машине указать шлюз и ДНС.
Также на сервере разрешить для указанного адреса пересылку пакетов и маскарадинг (или SNAT).
Не забыть посмотреть разрешено или нет в цепочках INPUT & OUTPUT соединения для этого случая.
Лучше поставить логирование перед запретами в цепочках, чтобы отследить что куда
ходит и разрешить, что нужно.


"СБиС через прокси/файрвол"
Отправлено Andrey Mitrofanov , 19-Мрт-08 18:52 
>Нужно: что бы программа СБиС заработала. Как я понимаю понимаю, что необходимо
>сделать туннель с

Это называется port-forwarding.
http:/openforum/vsluhforumID10/3591.html#4
На этом можно было бы и закончить, но... B-))

>194.186.72.201:110 на 192.168.0.247:8110
>194.186.72.201:25 на 192.168.0.247:8025
>
>и тогда, как я понимаю, программа будет работать.. если в настройках ее
>почтового ящика установить в качестве серверов входящей/исходящей почты 192.168.0.247:8110 и 192.168.0.247:8025

Можно упомянуть прокси tcp соединений - redir, simpleproxy и пр.

redir - просто форвардит соединения: соответственно пускать на прокси-сервере.
simpleproxy умеет то же самое + "проброс" соединеия через http прокси, пропускающий CONNECT: можно пускать локально и настроить squid пускать его к портам 25+110 на "том" сервере.

>Хотелось бы сделать это средствами IPTables путем пересылки пакетов... но что-то я
>запутался.

Но запускать сервисы там, где можно обойтись кучей строчек в netfilter-е... не по-взрослому. ;*)

У меня это сделано на firehol - обёртке над iptables - так:

--->8---
THAT_MAIL="212.4.6.8"
PUBLIC_MYIP="213.214.215.216"

#Forward ports: pop3+smtp
FWDMAILFROM=
fwd_mail() {
  dnat to "${THAT_MAIL}" proto tcp src "$1" dst "$2" dport "110 25" inface "$3"
  snat to "$PUBLIC_MYIP" proto tcp src "$1" dst "${THAT_MAIL}"
  FWDMAILFROM="$FWDMAILFROM${FWDMAILFROM:+ }$1"
  }
fwd_mail "10.0.0.5 10.0.0.7 10.0.0.34" "10.0.0.33" eth1
fwd_mail "192.168.101.115 192.168.101.96" "192.168.101.14" eth0

###
router mailpass src "$FWDMAILFROM" dst "${THAT_MAIL}"
        server "smtp pop3" accept
---8<---

Ни шлюзов, ни DNS на клиентах не надо, они коннектятся на порты pop3/smtp на локальном адресе прокси сервера. Если надо в виде вызовов iptables -- `firehol $config_file debug` или explain - ещё подробнее.

>>поэтому на прокси можно с 25 портом делать все что угодно
>>Единственное, что не хотелось бы что бы эти порты были доступны для всех пользователей... т.е. я хотел бы пустить одну программу с одного внутреннего IP в внешний мир через 25 и 110 IP.

У меня внутри 2 интерфейса, с них ходят 2+3 "пользователя" (по ip) на 1 внешний почтовый сервер.

...решение по первой ссылке неполное: нужно ещё явно пропускать трафик в цепочке FORWARD (секция `router mailpass` у меня) и ip_forward включать (firehol делает "неявно").
http:/openforum/vsluhforumID13/413.html#3


"СБиС через прокси/файрвол"
Отправлено Сергей , 24-Мрт-11 11:03 
Подобная ситуация, но осложнена ещё и тем, что интернет у меня - спутниковый. Используются 2 интерфейса - ppp0 и dvb0_0. Управляет соединением программа Sprint, являющаяся http и socks прокси-сервером. Т.е. можно сказать, на входе прокси (127.0.0.1:3128 - это http и 127.0.0.1:3129 - это Socks). На выходе надо получить маппинг портов 25 и 110 для СБИС:

удалённый_адрес:25 --> мой_адрес:8025
удалённый_адрес:110 --> мой_адрес:8110

как тут использовать iptables - ума не приложу


"СБиС через прокси/файрвол"
Отправлено pecheroviy , 20-Апр-11 11:50 
Готовое решение для ipfw. Может не самое правильное, но работает и может быть полезным другим.

192.168.0.89 - адрес компа со СБиС в локальной сети
195.191.64.20 = otchet.vintech.ru (см. сами куда вам надо отправлять)
195.191.64.19 = nalog.vintech.ru
193.148.44.225 = f4.fss.ru

ed0 - интерфейс смотрящий в интернет

#!/bin/sh

ipfw -q add 091 divert natd ip from 192.168.0.89 to 195.191.64.20 out via ed0
ipfw -q add 092 allow tcp from 195.191.64.20 110 to 192.168.0.89 in recv ed0
ipfw -q add 093 allow tcp from 192.168.0.89 to 195.191.64.20 25 out recv ed0

ipfw -q add 094 divert natd ip from 192.168.0.89 to 195.191.64.19 out via ed0
ipfw -q add 095 allow tcp from 195.191.64.19 110 to 192.168.0.89 in recv ed0
ipfw -q add 096 allow tcp from 192.168.0.89 to 195.191.64.19 25 out recv ed0

ipfw -q add 097 divert natd ip from 192.168.0.89 to 193.148.44.225 out via ed0
ipfw -q add 098 allow tcp from 193.148.44.225 110 to 192.168.0.89 in recv ed0
ipfw -q add 099 allow tcp from 192.168.0.89 to 193.148.44.225 25 out recv ed0