Решено: squid+iptables (проблема с перенаправлением портов pop3 и smtp)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

capsnail
Сообщения: 25

Решено: squid+iptables

Сообщение capsnail »

Здравствуйте.
Архитектура сети такая: eth0 - смотрит в локальную сеть, eth1 - инет
У меня slackware 12.2, запущен squid 3, в squid.conf ничего не менял кроме:

Код: Выделить всё

acl all src
http_access allow all
visible_hostname host

Интернет заработал, но на локальных машинах не получается принимать-отправлять почту через почтовую программу(по smpt, pop3 протоколам)

Перенаправление делаю с помощью iptables
Решил для проверки разрешить все:

Код: Выделить всё

$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -F FORWARD

Но почту все равно не принимает и не отправляет, пробовал писать правили конкретно для этих портов, но все равно не работает :(
Не могу понять в чем причина :( Что я делаю не так?
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Решено: squid+iptables

Сообщение IMB »

Как только Вам удасться настроить получение почты через squid, не сочтите за труд, отпишите. ;)

user@localhost

$ aptitude show squid3 ..................................................... Description: A full featured Web Proxy cache (HTTP proxy) Squid is a high-performance proxy caching server for web clients, supporting FTP, gopher, and HTTP data objects.
Спасибо сказали:
capsnail
Сообщения: 25

Re: Решено: squid+iptables

Сообщение capsnail »

Я и знаю, что squid работает только с http, поэтому использую iptables для обхода сквида. В чем может быть проблема?
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Решено: squid+iptables

Сообщение Alex2ndr »

capsnail писал(а):
19.01.2010 16:34
Я и знаю, что squid работает только с http, поэтому использую iptables для обхода сквида. В чем может быть проблема?

Сам по себе iptables ничего не делает. Вам надо с его помощью настроить NAT для ваших pop3 и smtp. Я конечно могу вам дать правила - но может вам самому стоит почитать инструкцию к iptables? Имхо в линуксе лучше понимать как работает используемый инструмент.
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Решено: squid+iptables

Сообщение IMB »

Из заголовка и содержимого темы этого не ясно.
Форвардинг у Вас включён?
Спасибо сказали:
capsnail
Сообщения: 25

Re: Решено: squid+iptables

Сообщение capsnail »

форвардинг включен:

Код: Выделить всё

echo "1" > /proc/sys/net/ipv4/ip_forward

я пытался использовать следующую конфигурацию:

Код: Выделить всё

echo "1" > /proc/sys/net/ipv4/ip_forward

$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
$IPTABLES -t nat -F

$IPTABLES -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -o eth1 -j ACCEPT
$IPTABLES -A FORWARD -j LOG

$IPTABLES -t nat -A POSTROUTING -o eth1 -j MASQUERADE

но почта все равно не принимается-отправляется :(

Сорри, если из топика не понятно, что я НЕ хочу пытаться связать squid с smtp и pop3
Alex2ndr, если не сложно, может подскажите решение?
Спасибо сказали:
Zelik
Сообщения: 9

Re: Решено: squid+iptables

Сообщение Zelik »

но почта все равно не принимается-отправляется

Сайты _без прокси_ открываются из локалки? Если нет - то попробуйте вместо маскарада использовать
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source ip_интернет_интерфейса (заменив адрес на свой диапазон)
Спасибо сказали:
qwerta
Сообщения: 137
ОС: Debian oldstable

Re: Решено: squid+iptables

Сообщение qwerta »

А начинал я с Xebian
Спасибо сказали:
Zelik
Сообщения: 9

Re: Решено: squid+iptables

Сообщение Zelik »

А вообще http://iptables.ru/
Спасибо сказали:
Аватара пользователя
watcher
Сообщения: 396
Статус: интересующийся
ОС: openSUSE,Mandriva

Re: Решено: squid+iptables

Сообщение watcher »

Код: Выделить всё

echo "1" > /proc/sys/net/ipv4/ip_forward

$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

$IPTABLES -t nat -F

$IPTABLES -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -o eth1 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -j LOG

$IPTABLES -t nat -A POSTROUTING -o eth1 -j MASQUERADE


может как-то так
"Я просто пытаюсь растить свой сад и не портить прекрасный вид.
И начальник заставы поймёт меня и беспечный рыбак простит" Б.Г.

http://zooom.com.ua/
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Решено: squid+iptables

Сообщение Alex2ndr »

capsnail писал(а):
19.01.2010 17:33
Alex2ndr, если не сложно, может подскажите решение?

Да вообще то вы его уже применили - ничего сложного я не планировал - обычный нат -
$IPTABLES -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Сайты без сквида из локалки работают? а 194.87.0.50 (он же www.ru) пингуется?

А почта может не приниматься по куче причин - например что у вас с днс? Попробуйте по telnet пообщаться с вашим почтовым сервером( FAQ по работе электронной почты и настройке серверов. ) - если все получится будем думать дальше.
Спасибо сказали:
capsnail
Сообщения: 25

Re: Решено: squid+iptables

Сообщение capsnail »

Спасибо всем, кто откликнулся.
Завтра обязательно попробую, тогда отпишусь, а пока продолжаю читать маны :)

А шлюз то указан?

шлюз на машинах в локальной сети? да, указан, он такой же как ip-адрес eth0(интерфейса, который смотрит в локальную сеть)
Спасибо сказали:
capsnail
Сообщения: 25

Re: Решено: squid+iptables

Сообщение capsnail »

Пробовал со следующей конфигурацией:

Код: Выделить всё

echo "1" > /proc/sys/net/ipv4/ip_forward

$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

$IPTABLES -t nat -F

$IPTABLES -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -o eth1 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -j LOG

$IPTABLES -t nat -A POSTROUTING -o eth1 -j MASQUERADE


так же пробовал вместо маскарда, перед этим сбросив nat:

Код: Выделить всё

iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 193.34.11.179


Сайты без сквида из локалки работают? а 194.87.0.50 (он же www.ru) пингуется?

сайты без сквида из локалки не работают и так и так, 194.87.0.50 из локалки пингуется
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Решено: squid+iptables

Сообщение Alex2ndr »

capsnail писал(а):
20.01.2010 10:51
Пробовал со следующей конфигурацией:

Код: Выделить всё

echo "1" > /proc/sys/net/ipv4/ip_forward

$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

$IPTABLES -t nat -F

$IPTABLES -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -o eth1 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -j LOG

$IPTABLES -t nat -A POSTROUTING -o eth1 -j MASQUERADE


так же пробовал вместо маскарда, перед этим сбросив nat:

Код: Выделить всё

iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 193.34.11.179


Сайты без сквида из локалки работают? а 194.87.0.50 (он же www.ru) пингуется?

сайты без сквида из локалки не работают и так и так, 194.87.0.50 из локалки пингуется

Значит у вас проблема с днс. А точнее с перенаправлением запросов к днс от ваших клиентов из локалки. Чтобы наверняка убедиться попробуйте без сквида из локалки открыть такое - http://87.250.251.3/
Спасибо сказали:
capsnail
Сообщения: 25

Re: Решено: squid+iptables

Сообщение capsnail »

Проблема решена!
Спасибо всем, отдельное спаибо Alex2ndr, проблема была действительно с перенаправлением запросов
Поправил ДНС на локальной машине и все заработало, правда пока без сквида.
Может кому пригодится, использую следующий конфиг iptables:

Код: Выделить всё

echo "1" > /proc/sys/net/ipv4/ip_forward

$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

$IPTABLES -t nat -F

$IPTABLES -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -o eth1 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -j LOG

$IPTABLES -t nat -A POSTROUTING -o eth1 -j MASQUERADE


Вопрос теперь другой: я так понимаю, сейчас у меня FORWARD делает перенаправление всех пакетов. Как бы сделать так, чтобы перенаправление шло только для 25 и 110 портов (или для конкретных pop и smtp, например pop3.yandex.ru, smtp.yandex.ru), а весь http шел через сквид?
Попробовал включить следующее правило:

Код: Выделить всё

iptables -A FORWARD -i eth1 -s 192.168.1.0/24 -p tcp -m tcp -m multiport --dports 25,110 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -m state --state RELATED,ESTABLISHED -j ACCEPT

но почта с ним не работает, может я что-то сделал неправильно?
Спасибо сказали:
Аватара пользователя
watcher
Сообщения: 396
Статус: интересующийся
ОС: openSUSE,Mandriva

Re: Решено: squid+iptables

Сообщение watcher »

capsnail что-то я не догоняю. Через squid как я понимаю и так идёт всё http поступающее на 80 порт или я ошибаюсь?
такое ведь правило?
iptables -t nat -A PREROUTING -p tcp --dport 80 -i $LAN_IFACE -j REDIRECT --to-ports 3128
"Я просто пытаюсь растить свой сад и не портить прекрасный вид.
И начальник заставы поймёт меня и беспечный рыбак простит" Б.Г.

http://zooom.com.ua/
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Решено: squid+iptables

Сообщение Alex2ndr »

capsnail писал(а):
20.01.2010 15:31
Вопрос теперь другой: я так понимаю, сейчас у меня FORWARD делает перенаправление всех пакетов. Как бы сделать так, чтобы перенаправление шло только для 25 и 110 портов (или для конкретных pop и smtp, например pop3.yandex.ru, smtp.yandex.ru), а весь http шел через сквид?
Попробовал включить следующее правило:

Код: Выделить всё

iptables -A FORWARD -i eth1 -s 192.168.1.0/24 -p tcp -m tcp -m multiport --dports 25,110 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -m state --state RELATED,ESTABLISHED -j ACCEPT

но почта с ним не работает, может я что-то сделал неправильно?

По моему вы просто опечатались - надо так -
iptables -A FORWARD -i eth0 -s 192.168.1.0/24 -p tcp -m tcp -m multiport --dports 25,110 -j ACCEPT
ну а второе правило я бы порекомендовал сделать менее секьюрным - так имхо проще (хотя бы для начала)
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Решено: squid+iptables

Сообщение Alex2ndr »

watcher писал(а):
20.01.2010 20:31
capsnail что-то я не догоняю. Через squid как я понимаю и так идёт всё http поступающее на 80 порт или я ошибаюсь?
такое ведь правило?
iptables -t nat -A PREROUTING -p tcp --dport 80 -i $LAN_IFACE -j REDIRECT --to-ports 3128


Я думаю вы ошибаетесь. Приведенное вами правило применяется при прозрачном проксировании - а т к в конфиге сквида, приведенном в 1-м посте ничего такого нет и ТС ничего об этом не упоминал, то тут скорее всего обычное проксирование. Соответственно чтоб это заработало надо разрешить 80(или на каком там прокся - 8080, 3128 и тд) порт в INPUT и разрешить установленные соединения.
Спасибо сказали:
capsnail
Сообщения: 25

Re: Решено: squid+iptables

Сообщение capsnail »

Сорри, что так долго молчал. Еще раз спасибо, Alex2ndr. Мне надо быть внимательнее, ну а вообще просто глаз наверное уже замыливается :)
Почта работает, а проксирование у меня действительно обычное... Прозрачный мне и не нужен, сеть небольшая
Спасибо сказали: