Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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 Заголовок сообщения: |
|
|
Ага, обманул
Извини.
Давай разбираться. Так. Сетки-маршрутизатор-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 ты ничего не говорил Я и подумал, что сквид на 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 Заголовок сообщения: |
|
|
Дык как же ж тебе еще помочь-то, ежели ты чего-нибудь, да не договариваешь?
Я уж на отдельной машине (благо была уже готова ), как говорит один мой друг, "сговнякал" такую конструкцию:
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 |
|
Вернуться к началу |
|
 |
|