Доброго времени суток!Дано:
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 путем пересылки пакетов... но что-то я запутался.
Прошу сильно не пинать - администрирование сетей немного не моя специфика, но сделать надо.
>[оверквотинг удален]
>
>и тогда, как я понимаю, программа будет работать.. если в настройках ее
>почтового ящика установить в качестве серверов входящей/исходящей почты 192.168.0.247:8110 и 192.168.0.247:8025
>
>
>Хотелось бы сделать это средствами IPTables путем пересылки пакетов... но что-то я
>запутался.
>
>Прошу сильно не пинать - администрирование сетей немного не моя специфика, но
>сделать надо.Насколько я понял, порт 25 юзается на локальном (родном) смтп сервере?
>Насколько я понял, порт 25 юзается на локальном (родном) смтп сервере?локальный SMTP и прокси это разные компьютеры, с разными внешними и внутренними IP. поэтому на прокси можно с 25 портом делать все что угодно
Единственное, что не хотелось бы что бы эти порты были доступны для всех пользователей... т.е. я хотел бы пустить одну программу с одного внутреннего IP в внешний мир через 25 и 110 IP.
>>Насколько я понял, порт 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Ну и далее в таком же духе откройте, что вам необходимо.
>$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 порты). при этом СБиС должен считать что компьютер где он установлен подключен к инету напрямую (хотя внешне от этого параметра ничего не зависит)?
Единственное, как я понимаю, надо указать на машине где стоит СБиС в качестве шлюза удаленной сети (в настройках винды) машину используемую как прокси сервер?
Ведь мы же прокси не используем как таковой, а получается что-то типа прозрачного прокси для данной программы?
>[оверквотинг удален]
>соединиться с сервером).
>Насколько я понимаю - в настройках СБиС менять ничего не надо, так
>она и должна обращаться к 194.186.72.201 (25 и 110 порты). при
>этом СБиС должен считать что компьютер где он установлен подключен к
>инету напрямую (хотя внешне от этого параметра ничего не зависит)?
>Единственное, как я понимаю, надо указать на машине где стоит СБиС в
>качестве шлюза удаленной сети (в настройках винды) машину используемую как прокси
>сервер?
>Ведь мы же прокси не используем как таковой, а получается что-то типа
>прозрачного прокси для данной программы?Клиентской машине указать шлюз и ДНС.
Также на сервере разрешить для указанного адреса пересылку пакетов и маскарадинг (или SNAT).
Не забыть посмотреть разрешено или нет в цепочках INPUT & OUTPUT соединения для этого случая.
Лучше поставить логирование перед запретами в цепочках, чтобы отследить что куда
ходит и разрешить, что нужно.
>Нужно: что бы программа СБиС заработала. Как я понимаю понимаю, что необходимо
>сделать туннель сЭто называется 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
Подобная ситуация, но осложнена ещё и тем, что интернет у меня - спутниковый. Используются 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 - ума не приложу
Готовое решение для 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.rued0 - интерфейс смотрящий в интернет
#!/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 ed0ipfw -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 ed0ipfw -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