Geosan: Запутался со squid'ом (а, может и не с ним)

15 сообщений / 0 new
Последнее сообщение
Гость
Geosan: Запутался со squid'ом (а, может и не с ним)

Идея была такова - машина, смотрящая в инет имеет внутренний IP 195.168.0.1 наружный 85.158.ххх.yyy
на ней установил squid, настроил раздачу инета внутренним машинам.
И еще на адресе 192.168.0.3:80 висит apache и на той же машине 192.168.0.3 почтовый сервер - не получается пустить их в инет.
Где и что подкрутить?

probeerka (не проверено)

[blockquote]cat /var/log/squid/access.log
cat /var/log/messages[/blockquote]
Что выводы говорят?

frug (не проверено)

[quote]Где и что подкрутить?[/quote]

нужно сделать проброс портов (port map) с внешнего интерфейса, глядящего в инет, на интерфейс 192.168.0.3, и поднять на нём NAT для обратного взаимодействия, так:

[color=green]# Проброс для почтового сервера
iptables -t nat -A PREROUTING -i eth0 --protocol tcp --destination-port 25 -j DNAT --to-destination 192.168.0.3
# То же самое для WEB-сервера
iptables -t nat -A PREROUTING -i eth0 --protocol tcp --destination-port 80 -j DNAT --to-destination 192.168.0.3
# Теперь S'NAT для того что бы серверы могли отвечать на запросы из инета
iptables -t nat -A POSTROUTING -o eth0 --source 192.168.0.3 --protocol tcp --source-port 25 -j SNAT --to-source 85.158.ххх.yyy
# Тоже самое для Apache
iptables -t nat -A POSTROUTING -o eth0 --source 192.168.0.3 --protocol tcp --source-port 80 -j SNAT --to-source 85.158.ххх.yyy
# Обязательно ip_forward; Но желательно то же самое в конфигурации сети, в зависимости от дистрибутива.
echo "1" > /proc/sys/net/ipv4/ip_forward[/color]

Теперь на машине 192.168.0.3 указываешь шлюзом по умолчанию 192.168.0.1 и ,вроде бы ничего не забыл, всё. Ещё говорят squid умеет быть SMTP-relay, тоже можно попробовать, в качестве ретранслятора почты, как именно не знаю.

cin
Не в сети
Зарегистрирован: 21/09/2010

[quote=Geosan]Идея была такова - машина, смотрящая в инет имеет внутренний IP 195.168.0.1 наружный 85.158.ххх.yyy
на ней установил squid, настроил раздачу инета внутренним машинам.
[/quote]
А ты клиентам выставил параметры прокси-сервера?

[quote=Geosan]И еще на адресе 192.168.0.3:80 висит apache и на той же машине 192.168.0.3 почтовый сервер - не получается пустить их в инет.
Где и что подкрутить? [/quote]
Что значит "...не получается пустить их в инет"?

Апач должен у тебя слушать запросы на внешнем ip. Если хочешь по имени сайта, то тебе надо регистрировать домен. Через регистрацию домена и имя в инете обретёшь и почту на тот домен сможешь получать.

Geosan (не проверено)

[quote=frug][quote]Где и что подкрутить?[/quote]

нужно сделать проброс портов (port map) с внешнего интерфейса, глядящего в инет, на интерфейс 192.168.0.3, и поднять на нём NAT для обратного взаимодействия, так:

[color=green]# Проброс для почтового сервера
iptables -t nat -A PREROUTING -i eth0 --protocol tcp --destination-port 25 -j DNAT --to-destination 192.168.0.3
# То же самое для WEB-сервера
iptables -t nat -A PREROUTING -i eth0 --protocol tcp --destination-port 80 -j DNAT --to-destination 192.168.0.3
# Теперь S'NAT для того что бы серверы могли отвечать на запросы из инета
iptables -t nat -A POSTROUTING -o eth0 --source 192.168.0.3 --protocol tcp --source-port 25 -j SNAT --to-source 85.158.ххх.yyy
# Тоже самое для Apache
iptables -t nat -A POSTROUTING -o eth0 --source 192.168.0.3 --protocol tcp --source-port 80 -j SNAT --to-source 85.158.ххх.yyy
# Обязательно ip_forward; Но желательно то же самое в конфигурации сети, в зависимости от дистрибутива.
echo "1" > /proc/sys/net/ipv4/ip_forward[/color]

Теперь на машине 192.168.0.3 указываешь шлюзом по умолчанию 192.168.0.1 и ,вроде бы ничего не забыл, всё. Ещё говорят squid умеет быть SMTP-relay, тоже можно попробовать, в качестве ретранслятора почты, как именно не знаю.[/quote]

ок спасибо, сейчас порпробую.

Geosan (не проверено)

[quote=cin][quote=Geosan]Идея была такова - машина, смотрящая в инет имеет внутренний IP 195.168.0.1 наружный 85.158.ххх.yyy
на ней установил squid, настроил раздачу инета внутренним машинам.
[/quote]
А ты клиентам выставил параметры прокси-сервера?

[quote=Geosan]И еще на адресе 192.168.0.3:80 висит apache и на той же машине 192.168.0.3 почтовый сервер - не получается пустить их в инет.
Где и что подкрутить? [/quote]
Что значит "...не получается пустить их в инет"?

Апач должен у тебя слушать запросы на внешнем ip. Если хочешь по имени сайта, то тебе надо регистрировать домен. Через регистрацию домена и имя в инете обретёшь и почту на тот домен сможешь получать.[/quote]
Ладно уж, я конечно, ламер, но не до такой степени, есть имя www.nce.ru. Я , просто, с винды на Linux перехожу, из-за этого столько глупых вопросов. :-)
Хуже того, контора 4й день без почты и сайт не работает, клиенты весе телефоны оборвали....

<span class='smallblacktext'>[ Редактирование 14.03.2006 - 17:46:12 ]</span>

Geosan (не проверено)

[quote=frug][quote]Где и что подкрутить?[/quote]

[color=green]# Проброс для почтового сервера
iptables -t nat -A PREROUTING -i eth0 --protocol tcp --destination-port 25 -j DNAT --to-destination 192.168.0.3
# Теперь S'NAT для того что бы серверы могли отвечать на запросы из инета
iptables -t nat -A POSTROUTING -o eth0 --source 192.168.0.3 --protocol tcp --source-port 25 -j SNAT --to-source 85.158.ххх.yyy
[/quote]
Эта штуковина заработала, НО как теперь прописать, что бы почтовый сервер мог достучаться до DNS сервера, иначе нехочет отсылать почту и отфутболивает входящую из-за невозможности разрешить имя отрапавляющего сервера.

<span class='smallblacktext'>[ Редактирование 14.03.2006 - 18:37:02 ]</span>

frug (не проверено)

[b]Geosan[/b], DNS у тебя тоже на 192.168.0.3 ?
Если так, то его желательно тоже перенести на линух, а проброс делается подобным образом только по протоколам udp и tcp на порт 53.
стучись в асю, номер в профиле.
<span class='smallblacktext'>[ Редактирование 14.03.2006 - 18:58:32 ]</span>

cin
Не в сети
Зарегистрирован: 21/09/2010

[quote=Geosan]Ладно уж, я конечно, ламер, но не до такой степени, есть имя www.nce.ru.
[/quote]
Ну, ламером я на тебя не обзывался :-)
Просто не сразу понял суть твоей задачи. Так что сорри, что вмешался неразобравшись.

Geosan (не проверено)

[quote=frug][b]Geosan[/b], DNS у тебя тоже на 192.168.0.3 ?
Если так, то его желательно тоже перенести на линух, а проброс делается подобным образом только по протоколам udp и tcp на порт 53.
стучись в асю, номер в профиле.
[/quote]
DNS у провайдера.
В асю постучался бы, но ее тоже перебросить через iptab надо. :-(
Счас попробую сделать аналогичный проброс для 53 порта.
Блин, времени нет нормально сесть, описание iptab почитать. ~:-(

frug (не проверено)

[quote]В асю постучался бы, но ее тоже перебросить через iptab надо.[/quote]
С асей всё тоже типично и аналогично...

[color=green]iptables -t nat -A POSTROUTING -o eth0 --source 192.168.0.0/24 --protocol tcp --destination-port 5190 -j SNAT --to-source 85.158.ххх.yyy[/color]

Заметь, параметр --source указывает на сеть 192.168.0.0/255.255.255.0, предполагаю, что у тебя она такая, если нет то правь как надо, это для того, что бы все компы из этой сети могли ходит в асю через NAT.

[quote]DNS у провайдера.[/quote]
Он твой домен обслуживает ? Тогда разреши своим серверам обращаться к нему напрямую (через NAT) или же поставь у себя на шлюзе DNS-forwarder.

Можешь просто сделать полный NAT для того, что бы не указывать явно протоколы и порты, но не советую, много лишнего можно приобрести...

[color=green]iptables -t nat -A POSTROUTING -o eth0 --protocol ALL -j SNAT --to-source 85.158.ххх.yyy[/color]

Geosan (не проверено)

Если я не хочу открывать всем АСЮ, а направлю только на мой комп, могу я вместо --source 192.168.0.0/24 написать --source 192.168.0.2?
пишу iptables -t nat -A POSTROUTING -o eth0 --protocol ALL -j SNAT --to-source 85.158.ххх.yyy, все равно почтовик до DNS не добирается и дальше IP адреса eth0 наружу не пингуется.
Как можно посмотреть состояние iptables? --list показывает пустые строки.

frug (не проверено)

[blockquote]Если я не хочу открывать всем АСЮ, а направлю только на мой комп, могу я вместо --source 192.168.0.0/24 написать --source 192.168.0.2?[/blockquote]
Именно так.

[blockquote]пишу iptables -t nat -A POSTROUTING -o eth0 --protocol ALL -j SNAT --to-source 85.158.ххх.yyy, все равно почтовик до DNS не добирается и дальше IP адреса eth0 наружу не пингуется. [/blockquote]
А ты разрешил маршрутизацию пакетов ? (ip_forward) ?
[color=green]cat /proc/sys/net/ipv4/ip_forward[/color]
если покажет "1" то да, если нет, то делай.... как я уже говорил выше
далее загляни в тему [url=http://www.nclug.ru/forum_viewtopic.php?10.968]"Настройка IpTables"[/url], там много полезного.

[blockquote]Как можно посмотреть состояние iptables? --list показывает пустые строки. [/blockquote]
[color=green]iptables -L | --list[/color]
Естесственно "пустые строки" потому что по умолчанию --list отображает цепочки INPUT, OUTPUT, FORWARD таблицы filter, а так как ты использовал только таблицу nat, то её и укажи:
[color=green]iptables --list -t nat[/color]

Geosan (не проверено)

В теме "Настройка IpTables" самой полезной оказалась инфа о том, что в ASPlinux echo "1" > /proc/sys/net/ipv4/ip_forward не фунциклирует. Изменил /etc/sysctl.conf и все заработало.
Вот только не знаю как удалить неправильно записанное правило из iptables

probeerka (не проверено)

iptables -D 'имя цепочки' 'номер правила'. Счет правил в цепочках начинается не с 0, а с 1.

RSS-материал