The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"помогите с iptables, пожалуйста"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"помогите с iptables, пожалуйста"
Сообщение от kmxb emailИскать по авторуВ закладки on 27-Янв-03, 01:28  (MSK)
Здравствуйте все.
Помогите решить одну задачу с перенаправлением почты.
Уж не знаю, насколько это возможно, но ответа в результате поиска и вопросов я пока не нашел. Извините, если плохо искал и приходится спрашивать заново. Линукс использовал раньше только как рабочую станцию, а как мост между www и localnet ни разу не настраивал. Чтение iptables tutorial и прочая не помогли...:(

Попробую объяснить:
1. Комп с линуксом (обзову его server1) подключается к интернету через модем, получает динамический IP. Кроме того, в локальной сети эта машина имеет реальный IP, например 192.168.8.1.
2. Поставил на этой машине сквид. Через него ходят в интернет с клиентских машин. С этим все нормально.
3. Хотелось бы, чтоб с клиентских машин почта забиралась оутлуком (откуда-нибудь с pop.mailru.com) ну и отправлялась, соответственно.

Пример: Раньше (под виндой) я запускал что-то вроде ProxyPlus или BrowseGate на такой машине (server1) и делал маппинг портов. Т.е. все, что поступало на порт, скажем - 625  компьютера server1 - отправлялось на smtp.mailru.com:25, а запрос на server1:6110 отправлялся на imap.mailru.com:110. Ну так далее... В общем были назначены порты для нескольких почтовых серверов.

А как сделать это сейчас - не понимаю. Как перенаправить запрос с порта на порт, в общем более-менее понятно, но вот чтоб именно на smtp.mailru.com:25, а не просто на 25(и т.д.) - не въезжаю...:)
Может есть другие способы, пока не знаю. Посоветуйте, пожалуйста, каким образом это сделать. Заранее спасибо.

На всякий случай: kernel v2.4.20, iptables v1.2.6a, ipchains v1.3.10

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: помогите с iptables, пожалуйста"
Сообщение от harlan emailИскать по авторуВ закладки on 27-Янв-03, 09:43  (MSK)
Если я правильно понял, то тебе необходимо, что бы пользователь из сети мог использовать твой канал в интернет?
В таком случае поднимаешь маскарадинг:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
где ppp0 - твой интерфейс с провайдером.
В этом случае, каждый пользователь сможет выходить во-вне.

Если же тебе необходимо перенаправлять с порта на другой порт и подругому  IP-адресу, то используй DNAT

iptables -t nat -A PREROUTING -p TCP -d 192.168.8.1 --dport 6110 -j DNAT --to-destination 1.2.3.4:25
где 1.2.3.4 - IP-адрес smtp.mailru.com
В этом случае, пакеты отправленные на sever1:6110 будут автоматом перенаправляться на smtp.mailru.com:25, но опять же, в этом случае нужно будет включить маскарадинг, что бы тот сервер не путался с серыми адресами.
Обратное преобразование (при ответе сервера) будет происходить автоматически и дополнительных записей в iptables не требуется.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: помогите с iptables, пожалуйста"
Сообщение от teebot Искать по авторуВ закладки on 27-Янв-03, 11:06  (MSK)
1) дайлап - это динамический адрес, динамический адрес - это маскарадинг
если напишешь вот так
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
получишь полный маскарадинг, и если раб.станции настроены неодинково то может быть такое что половина клиентов будт [одить через маскарадинг, а половина через сквид. Если ты пользователей не контролируешь тогда все ОК.
Если же недопустимо пускать юзеров мимо сквида , нужно замаскарадить только почту:
iptables -t nat -A POSTROUTING -o ppp0 --dport 25 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 --dport 110 -j MASQUERADE

Поправьте если я ошибаюсь, самому интересно.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: помогите с iptables, пожалуйста"
Сообщение от harlan emailИскать по авторуВ закладки on 27-Янв-03, 11:35  (MSK)
ИМХО, --dport с MASQUERADE не работает (во всяком случае у меня не пролезло).
Если это так, то можно наложить маскарадинг, а потом разрешить выход только на порт 25.
А вообще, почитай http://www.opennet.me/docs/RUS/iptables/
Написано по-русски, очень доступно и с картинками. :-)
Удачи.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: помогите с iptables, пожалуйста"
Сообщение от teebot Искать по авторуВ закладки on 27-Янв-03, 13:35  (MSK)
>ИМХО, --dport с MASQUERADE не работает (во всяком случае у меня не
>пролезло).
>Если это так, то можно наложить маскарадинг, а потом разрешить выход только
>на порт 25.
>А вообще, почитай http://www.opennet.me/docs/RUS/iptables/
>Написано по-русски, очень доступно и с картинками. :-)
>Удачи.

я тоже думал что нельзя использовать --dport.
но у меня так работает маскарадинг ФТП.
Смотри топик "Трафик идет мимо сквид, как замаскаридть только ФТП".

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "спасибо всем, сейчас буду пробовать"
Сообщение от kmxb Искать по авторуВ закладки on 27-Янв-03, 12:30  (MSK)
Да, нужно сделать именно так:
маскарадить только почту, все остальное через сквид,
причем допускать к почте только определенные локальные машины.
Сегодня поэкпериментирую о результатах сообщу.
Спасибо.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "ура! спасибо :) заработало! но еще есть вопрос."
Сообщение от kmxb emailИскать по авторуВ закладки on 27-Янв-03, 18:08  (MSK)
Спасибо всем, более-менее заработало.
Просто хотелось кое-что уточнить.

>Обратное преобразование (при ответе сервера) будет происходить автоматически и дополнительных записей в
>iptables не требуется.

вот это непонятно :(

у меня заработало так:
пусть IP smtp.mailru.com будет x.x.x.x, а imap.mailru.com - y.y.y.y
тогда запускаем:

iptables -t nat -A PREROUTING -p TCP -d 192.168.8.1 --dport 1325 -j DNAT --to-destination x.x.x.x:25
iptables -t nat -A PREROUTING -p TCP -d 192.168.8.1 --dport 13110 -j DNAT --to-destination y.y.y.y:110
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

в аутлуках ставлю smtp = 192.168.8.1:1325 и pop3 = 192.168.8.1:13110
почта с mailru.com принимается и отсылается! ок.

НО! Есть одно но... Я так понял, что перед этим нужно загрузить модули ядра, ответственные за поддержку nat, masquarade и т.п., которые по умолчанию у меня не грузятся. Ну и еще сделать что-то вроде:
iptables -A INPUT .......
iptables -A OUTPUT ......

Днем я так и сделал.
Машину приходилось на некоторое время выключать. Вечером, совершенно забыв про модули и т.п. - включаю комп, коннектюсь и отсылаю-принимаю почту. И опять все работает! Странно как-то...
Мне кажется, что такого быть не должно. Ладно, почитаю мануалы на ночь, может пойму в каком месте я тупой:)

Спасибо за ответы и внимание.
Пока.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: ура! спасибо :) заработало! но еще есть вопрос."
Сообщение от teebot Искать по авторуВ закладки on 27-Янв-03, 18:55  (MSK)
Мне просто интересно, неужелди ни у кого не работатет в цепочке POSTROUTING --dport?
Если да, то почему тогда работает у меня?

Может опять все те же модули?

Хотелось бы понять.

Я сам недавно занимался этой темой, и выкрутился именно таким способом.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру