Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

ipfw+mail

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix
Предыдущая тема :: Следующая тема  
Автор Сообщение
qwery



Зарегистрирован: 14.11.2002
Сообщения: 394

СообщениеДобавлено: Пт Ноя 18 2005 11:40    Заголовок сообщения: ipfw+mail Ответить с цитатой

момогите плиз, уже просто замучался.
что есть - FreeBSD 5.4+NAT+ipfw+squid12 за этим шлюзом стоит маршрутизатор (маршрутизирует 3 внутренние сетки).
что сделано - настроен файрвол, через прокси в инет все ходят без проблем (http). перерыд кучу доков, но так и не смог сделать так, что бы заработала почта (почтовый клиент).

на маршрутизаторе полностью выключил файрвол (чтоб не мешал). на шлюзе конфиг высылаю. скажите, где ошибка и что сделать, чтоб заработало.... хотелось бы ещё знать как запустить аську, но с этим по аналогии сам разберусь...


ipfw='/sbin/ipfw -q'
ournet='192.168.3.1/24' #сеть между шлюзом и маршрутизатором
ournet2='192.168.2.1/24' #локалка 2
ournet1='192.168.1.1/24' локалка 1
ournet10='192.168.10.1/30' локалка 3
uprefix='192.168.1' просто для упрощения
ifout='rl1' смотрит в мир
ifuser='rl0' смотрит на маршрутизатор


${ipfw} flush

${ipfw} add 100 check-state

${ipfw} add 200 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${ipfw} add 210 reject ip from ${ournet} to any in via ${ifout}
${ipfw} add 220 reject ip from ${ournet1} to any in via ${ifout}
${ipfw} add 230 reject ip from ${ournet2} to any in via ${ifout}
${ipfw} add 240 reject ip from ${ournet10} to any in via ${ifout}

${ipfw} add 300 allow ip from any to any via lo
${ipfw} add 310 allow tcp from me to any keep-state via ${ifout}
${ipfw} add 320 allow icmp from any to any
${ipfw} add 330 allow udp from me to any domain keep-state
${ipfw} add 340 allow udp from any to me domain
${ipfw} add 350 allow ip from me to any

${ipfw} add 400 allow tcp from any to me http,https,ssh
${ipfw} add 401 allow tcp from any to any 53
${ipfw} add 402 allow tcp from any 53 to any

#mail
${ipfw} add 435 allow tcp from any 25,110 to any 25,110


${ipfw} add 510 divert natd all from any to any via ${ifout}

${ipfw} add 1002 allow ip from ${uprefix}.10 to any via ${ifuser}
${ipfw} add 1003 allow ip from ${uprefix}.11 to any via ${ifuser}
${ipfw} add 1004 allow ip from ${uprefix}.12 to any via ${ifuser}


${ipfw} add 1008 allow ip from 192.168.10.2 to any via ${ifuser}

#${ipfw} add 65535 deny ip from any to any
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
a-m-d



Зарегистрирован: 09.09.2004
Сообщения: 1498
Откуда: SPb

СообщениеДобавлено: Пт Ноя 18 2005 12:17    Заголовок сообщения: Re: ipfw+mail Ответить с цитатой

qwery писал(а):

#mail
${ipfw} add 435 allow tcp from any 25,110 to any 25,110


ЭТО неправильно.
_________________
Век живи - век учись!.. Дураком помрёшь.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
a-m-d



Зарегистрирован: 09.09.2004
Сообщения: 1498
Откуда: SPb

СообщениеДобавлено: Пт Ноя 18 2005 12:22    Заголовок сообщения: Ответить с цитатой

Почтовик где находится? Должен ли быть доступ к "внешним" почтовикам?

Надо что-то типа
#mail
${ipfw} add 435 allow tcp from ${ournet1} to any 25,110

Какими будут порты инициирующие соединение ты не знаешь.
_________________
Век живи - век учись!.. Дураком помрёшь.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
qwery



Зарегистрирован: 14.11.2002
Сообщения: 394

СообщениеДобавлено: Пт Ноя 18 2005 12:54    Заголовок сообщения: Ответить с цитатой

да, почтовые сервера находятся снаружи. то есть с них надо получать по поп3 а отправляит по smtp.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
qwery



Зарегистрирован: 14.11.2002
Сообщения: 394

СообщениеДобавлено: Пт Ноя 18 2005 12:58    Заголовок сообщения: Ответить с цитатой

a-m-d, не катит.....
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
a-m-d



Зарегистрирован: 09.09.2004
Сообщения: 1498
Откуда: SPb

СообщениеДобавлено: Пт Ноя 18 2005 13:32    Заголовок сообщения: Ответить с цитатой

Ага, обманул Smile

Извини.

Давай разбираться. Так. Сетки-маршрутизатор-Free-инет.

У тебя же вообще-то все должно натиться.

Ща. Таймаут небольшой.
_________________
Век живи - век учись!.. Дураком помрёшь.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
qwery



Зарегистрирован: 14.11.2002
Сообщения: 394

СообщениеДобавлено: Пт Ноя 18 2005 13:52    Заголовок сообщения: Ответить с цитатой

именно так. все натится. на маршрутизаторе файрвол временно отключен, так что его в учёт не берем. все (точнее, те, кто прописан, см. rc.ipfw) по http ходят без проблем. следовательно и днс тоже работает корректно (поэтому и не буду опысывать как оно сделано). вопрос - как разрешить почту (25, 110 порты - насколько я понимаю эти порты открыты на сервере в инете, нам же нужет только к ним доступ)....
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
a-m-d



Зарегистрирован: 09.09.2004
Сообщения: 1498
Откуда: SPb

СообщениеДобавлено: Пт Ноя 18 2005 14:23    Заголовок сообщения: Ответить с цитатой

А так попробуй:

Код:

#!/bin/sh

ipfw='/sbin/ipfw -q'
ournet='192.168.3.1/24' #сеть между шлюзом и маршрутизатором
ournet2='192.168.2.1/24' #локалка 2
ournet1='192.168.1.1/24' #локалка 1
ournet10='192.168.10.1/30' #локалка 3
uprefix='192.168.1' #просто для упрощения
ifout='rl1' #смотрит в мир
ifuser='rl0' #смотрит на маршрутизатор

${ipfw} flush

${ipfw} add 200 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${ipfw} add 210 reject ip from ${ournet} to any in via ${ifout}
${ipfw} add 220 reject ip from ${ournet1} to any in via ${ifout}
${ipfw} add 230 reject ip from ${ournet2} to any in via ${ifout}
${ipfw} add 240 reject ip from ${ournet10} to any in via ${ifout}

${ipfw} add 300 allow ip from any to any via lo

${ipfw} add 400 allow tcp from any to me http,https,ssh
${ipfw} add 401 allow udp from any to any 53
${ipfw} add 402 allow udp from any 53 to any

${ipfw} add 510 divert natd all from any to any via ${ifout}

${ipfw} add 65534 allow ip from any to any


400-402 у тебя сквид "обслуживает"?

natd должен быть запущен на внешнем интерфейсе rl1

Заработает - продолжим.

Если натиться все, зачем 1002-1008? Попытка разрешить доступ только с определенных адресов?*** Пока "рисовал", ты уже рассказал.
_________________
Век живи - век учись!.. Дураком помрёшь.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
qwery



Зарегистрирован: 14.11.2002
Сообщения: 394

СообщениеДобавлено: Пт Ноя 18 2005 16:07    Заголовок сообщения: Ответить с цитатой

правило 400 - для того, что бы и мы и из мира могли заходить на наш веб сервер, а 2 других для обслуживания днс.

да, в такой конфигурации все заработало (а иначе и быть не могло). но все получили полный доступ.

правила 10хх это доступ отдельных пользователей к инету, то есть его удаляешь и юзер может только использовать наш веб сервер в мир его не пустят.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
a-m-d



Зарегистрирован: 09.09.2004
Сообщения: 1498
Откуда: SPb

СообщениеДобавлено: Пт Ноя 18 2005 17:09    Заголовок сообщения: Ответить с цитатой

qwery писал(а):
правило 400 - для того, что бы и мы и из мира могли заходить на наш веб сервер, а 2 других для обслуживания днс.
...


Чего-то недопонял я... про вэб-сервер и свой dns ты ничего не говорил Sad Я и подумал, что сквид на 80 порту "висит". А где он тогда, в каком режиме работает, как туда пользователи попадают?

Чтоб "не всем" инет, а всем ваш вэб, могу предложить продолжить дивертить только нужное (возможно, это будет не слишком красиво, но других предолжений никто пока не дает):

Код:

#${ipfw} add 510 divert natd all from any to any via ${ifout}
${ipfw} add 510 divert natd ip from ${uprefix}.10 to any out via ${ifout}
${ipfw} add 520 divert natd ip from ${uprefix}.11 to any out via ${ifout}
${ipfw} add 530 divert natd ip from ${uprefix}.12 to any out via ${ifout}

${ipfw} add 1000 divert natd ip from any to IP_rl1 in via ${ifout}

${ipfw} add 65534 allow ip from any to any


Теперь natd получит только те пакеты, которые мы ему отдадим. Проверь. У "избранных" будет и почта, и аська. У всех - ваш вэб.
Только последнее правило 65534 стОит использовать лишь во время проверки. Как заработает, так его надо ужесточать - разобраться, кому чего надо, остальное отрубить. Узнать "чего еще для счастья надо" можно через лог security сделав последним в фаерволе правило deny log ip from any to any

PS Еще чего-нибудь сказать смогу не раньше 8 часов - домоооой!
_________________
Век живи - век учись!.. Дураком помрёшь.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mikkk



Зарегистрирован: 14.10.2002
Сообщения: 4

СообщениеДобавлено: Сб Ноя 19 2005 20:20    Заголовок сообщения: Ответить с цитатой

да, наверно так будет самое логичное решение..... хотя может и не совсем правильное..... буду пробовать.... спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
qwery



Зарегистрирован: 14.11.2002
Сообщения: 394

СообщениеДобавлено: Пн Ноя 21 2005 08:53    Заголовок сообщения: Ответить с цитатой

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

люди помогите плиз, а то начальство съест скоро.....
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
a-m-d



Зарегистрирован: 09.09.2004
Сообщения: 1498
Откуда: SPb

СообщениеДобавлено: Пн Ноя 21 2005 10:19    Заголовок сообщения: Ответить с цитатой

Ты в 1000 правиле заменил IP_rl1 на ip-адрес внешнего интерфейса?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
qwery



Зарегистрирован: 14.11.2002
Сообщения: 394

СообщениеДобавлено: Пн Ноя 21 2005 10:36    Заголовок сообщения: Ответить с цитатой

само собой!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
qwery



Зарегистрирован: 14.11.2002
Сообщения: 394

СообщениеДобавлено: Пн Ноя 21 2005 11:49    Заголовок сообщения: Ответить с цитатой

в общем то я уже начинаю понимать в чем дело.

итак - я сижу на компе с ип 10.

если в rc.firewall написать
${ipfw} add 65534 allow all from any to any
то все работает.

если это правило убрать и написать
${ipfw} add 1010 allow all from ${uprefix}.10 to any
${ipfw} add 1010 allow all from any to ${uprefix}.10

либо
${ipfw} add 1010 allow all from ${uprefix}.10 to any via ${ifuser}
${ipfw} add 1010 allow all from any to ${uprefix}.10 via ${ifuser}

то работает только веб. я уже думаю может это глюк ipfw.... должно же работать!!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
a-m-d



Зарегистрирован: 09.09.2004
Сообщения: 1498
Откуда: SPb

СообщениеДобавлено: Пн Ноя 21 2005 12:58    Заголовок сообщения: Ответить с цитатой

Каждой твари по паре... Это к тому, что пакет должен проверяться на входе и на выходе.

К
${ipfw} add 1010 allow all from ${uprefix}.10 to any
${ipfw} add 1010 allow all from any to ${uprefix}.10

докинь еще как минимум
${ipfw} add 65534 allow ip from IP_rl1 to any out via ${ifout}
...
а также где-то у тебя было от тебя куда угодно.
_________________
Век живи - век учись!.. Дураком помрёшь.


Последний раз редактировалось: a-m-d (Пн Ноя 21 2005 15:00), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
crash



Зарегистрирован: 02.11.2001
Сообщения: 1836
Откуда: Бердск

СообщениеДобавлено: Пн Ноя 21 2005 13:20    Заголовок сообщения: Ответить с цитатой

qwery писал(а):
в общем то я уже начинаю понимать в чем дело.

итак - я сижу на компе с ип 10.

если в rc.firewall написать
${ipfw} add 65534 allow all from any to any
то все работает.

если это правило убрать и написать
${ipfw} add 1010 allow all from ${uprefix}.10 to any
${ipfw} add 1010 allow all from any to ${uprefix}.10

либо
${ipfw} add 1010 allow all from ${uprefix}.10 to any via ${ifuser}
${ipfw} add 1010 allow all from any to ${uprefix}.10 via ${ifuser}

то работает только веб. я уже думаю может это глюк ipfw.... должно же работать!!!

включаешь логирование правил и изучаешь лог, где затык.. и почти все проблемы решатся)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
qwery



Зарегистрирован: 14.11.2002
Сообщения: 394

СообщениеДобавлено: Вт Ноя 22 2005 10:24    Заголовок сообщения: Ответить с цитатой

неужели никто не подскажет в чем проблема?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
a-m-d



Зарегистрирован: 09.09.2004
Сообщения: 1498
Откуда: SPb

СообщениеДобавлено: Вт Ноя 22 2005 11:22    Заголовок сообщения: Ответить с цитатой

Дык как же ж тебе еще помочь-то, ежели ты чего-нибудь, да не договариваешь?

Я уж на отдельной машине (благо была уже готоваSmile ), как говорит один мой друг, "сговнякал" такую конструкцию:

FreeBSD 5.4
/sbin/natd -n ex0

Код:

#!/bin/sh

ipfw='/sbin/ipfw -q'
#ournet='192.168.3.1/24'
#ournet2='192.168.2.1/24'
ournet1='192.168.1.0/24'
#ournet10='192.168.10.1/30'
uprefix='192.168.1'
ifout='ex0'
ifuser='ep0'

${ipfw} flush

#${ipfw} add 200 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
#${ipfw} add 210 reject ip from ${ournet} to any in via ${ifout}
${ipfw} add 220 reject ip from ${ournet1} to any in via ${ifout}
#${ipfw} add 230 reject ip from ${ournet2} to any in via ${ifout}
#${ipfw} add 240 reject ip from ${ournet10} to any in via ${ifout}

${ipfw} add 300 allow ip from any to any via lo

#${ipfw} add 400 allow tcp from any to me http,https,ssh
#${ipfw} add 401 allow udp from any to any 53
#${ipfw} add 402 allow udp from any 53 to any

${ipfw} add 510 divert natd ip from ${uprefix}.150 to any out via ${ifout}
#${ipfw} add 520 divert natd ip from ${uprefix}.11 to any out via ${ifout}
#${ipfw} add 530 divert natd ip from ${uprefix}.12 to any out via ${ifout}

${ipfw} add 1000 divert natd ip from any to xxx.xxx.xxx.xxx in via ${ifout}

${ipfw} add 65534 allow ip from any to any

На клиенте шлюз по умолчанию прописАл. DNS, правда, не менял.

tracert с машины 192.168.1.150 исправно отработал и за пределами локалки.

про логгирование я уже тоже говорил - замени правило 65534 на
${ipfw} add 65534 deny log logamount 0 ip from any to any
и смотри /var/log/security

tcpdump на внешнем и внутреннем интерфейсе тоже много интересного могут сказать.

Еще. Важен (!) порядок следования правил. Посмотри хотя бы это:
http://www.opennet.ru/base/net/ipfw_divert_note.txt.html
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...