The OpenNET Project / Index page

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

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

"Проблемы с маршрутизацией в OpenBSD 3.6."
Сообщение от Tester Искать по авторуВ закладки(??) on 25-Мрт-05, 09:29  (MSK)
Здравствуйте уважаемые знатоки!
Сразу предупреждаю, что в Никсах я новичок, так што попрошу ногами не пинать:-)
Есть желание использовать в качестве шлюза в Инет для небольшой локальной сети слабенький комп с OpenBSD 3.6. У меня выделенка по ADSL (не PPPOE, а статический IP - от ADSL модема - ethernet). То есть коннект с провайдером устанавливать не надо - включил модем и он уже есть. Прежде чем задать вопрос, опишу подробно свои действия.
1.Излазил вдоль и поперёк сайт www.openbsd.org. Распечатал оттуда маны и факи по установке OpenBSD 3.6 и настройке её в качестве роутера и файрволла.
2.Скачал себе дистрибут.
3.Создал из образа cdrom36.fs загрузочный диск. На другой CD залил файлы из папки i386 и папку packages/i386/ (с дистрибутом Midnight Commander, связанных с ним прог и ещё несколько десятков прог в дистрибутах, которые, как мне показалось, могут пригодиться в будущем), а также архив ports.tar.gz.
4. Загрузился с загрузочного CD.
5. Установил с него (всё по умолчанию,все стандартные пакеты, используя весь свой жёсткий диск) OpenBSD 3.6. Когда понадобились дистрибутивные файлы, подсунул второй CD-диск и указал системе CD-ROM в качестве носителя дистрибутива. В ходе установки сделал необходимые настройки сети: задал сетевым интерфейсам IP адреса, прописал IP адреса внешних (на стороне провайдера) шлюза, первичного и вторичного DNS-серверов.
6. Перезагрузился со своего жёсткого диска.
7. Создал пользователя. Далее всё делал от имени этого пользователя с применением режима su.
8. Установил Midnight Commander. Настроил в нём кнопки.
9. Включил маршрутизацию, добавив в файл /etc/sysctl.conf строчку:
net.inet.ip.forwarding=1
10. Активировал пакетный фильтр, исправив строчку:
pf=NO
на
pf=YES
в файле /etc/rc.conf
11.Скопировал один из примеров, взятых с www.openbsd.org и форума: www.bsdforums.com в свой файл /etc/pf.conf.
12. Перезагрузился...
И вот тут, собственно, начались проблемы.
При загрузке выдаётся сообщение о наличии в последней строке моего /etc/pf.conf файла синтаксической ошибки:
pf.conf:33:Syntax error
Syntax error pf rules not loaded
Эта строка выглядит так:
pass out on $ext_if proto { udp, icmp } all keep state
она, я так понимаю, позволяет udp и icmp пакетам покидать мой внешний интерфейс и улетать в Инет.
У меня есть несколько примеров pf.conf файлов и во всех примерах эта строка выглядит абсолютно одинаковой!
Задавал вопрос в форум www.bsdforums.com, постил туда свой pf.conf файл.
Один парень оттуда проверял мой файл на своём компе (команда: #pfctl -vvnf /etc/pf.conf). Его OpenBSD 3.6 ошибки в моём файле не нашла!
А я, для сравнения, поставил (всё точно также, как описано выше) OpenBSD 3.6 ещё на один комп и... получил абсолютно такой же результат:-((
Пробовал вариации последней строки:
pass out on $ext_if proto udp all keep state
pass out on $ext_if proto icmp all keep state
и так:
pass out on $ext_if proto udp all keep state
и так:
pass out on $ext_if proto icmp all keep state
Всё равно выдаёт ошибку.
Если заремить последнюю строку, ошибки нет.
В случае, когда пакетные фильтры не загружены имеем следующую картину:
на компе с openbsd 3.6 Инет есть, хосты в локальной сети и в Инете пингуются и по IP-адресам и по именам. С других компов локальной сети пинги дальше внешнего интерфейса компа с OpenBSD не проходят. Инета на этих компах локальной сети нет.
В случае, когда pf.conf файл загружен с заремленной последней строкой пинги не идут дальше внешнего интерфейса компа с openbsd 3.6 и с самого этого компа.
Пробовал убирать из файла pf.conf все правила, касающиеся фильтрации пакетов, оставляя только определения внешнего и внутреннего интерфейсов и правило для NAT, чтобы заставить Openbsd работать лишь в качестве маршрутизатора (чтобы всё в обе стороны пропускала без какой-либо фильтрации). Результаты абсолютно те же:-((( С компов локальной сети пинги в Инет не идут и Инета на них нет:-(((

Что надо ещё сделать, чтобы заставить работать OpenBSD 3.6 роутером и файрволлом?!!! Никаких сервисов я пока запускать не планирую. Только пускать локальных юзеров в Инет и защищать локальную сеть от вторжений из Инета.
Помогите!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

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

 Оглавление

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

1. "Проблемы с маршрутизацией в OpenBSD 3.6."
Сообщение от Tester Искать по авторуВ закладки(??) on 25-Мрт-05, 09:36  (MSK)
Вот мой pf.conf файл:
-------------------------------------------------------------------------
# macros
int_if = "ne3"
ext_if = "de0"

tcp_services = "{ 22, 113 }"
icmp_types = "echoreq"

priv_nets = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
  
#Internal web-server
#comp3 = "192.168.0.3"

# options
set block-policy return
set loginterface $ext_if

# scrub
scrub in all

# nat/rdr
nat on $ext_if from $int_if:network to any -> ($ext_if)
rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 \
   port 8021

#rdr for internal web-server
#rdr on $ext_if proto tcp from any to any port 80 -> $comp3

# filter rules
block all

pass quick on lo0 all

block drop in  quick on $ext_if from $priv_nets to any
block drop out quick on $ext_if from any to $priv_nets

pass in on $ext_if inet proto tcp from any to ($ext_if) \
   port $tcp_services flags S/SA keep state

#pass for internal web-server
#pass in on $ext_if proto tcp from any to $comp3 port 80 \
   flags S/SA synproxy state

pass in on $ext_if inet proto tcp from port 20 to ($ext_if) \
   user proxy flags S/SA keep state

pass in inet proto icmp all icmp-type $icmp_types keep state

pass in  on $int_if from $int_if:network to any keep state
pass out on $int_if from any to $int_if:network keep state

pass out on $ext_if proto tcp all modulate state flags S/SA
pass out on $ext_if proto { udp, icmp } all keep state
------------------------------------------------------------------------
В этом конфиге была предусмотрена возможность запуска www-сервера, доступного из Инета, в локальной сети на comp3. Но поскольку мне никаких сервисов, доступных извне запускать пока не надо, я всё, что касается comp3 заремил...

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

2. "Проблемы с маршрутизацией в OpenBSD 3.6."
Сообщение от Tester Искать по авторуВ закладки(??) on 25-Мрт-05, 11:53  (MSK)
Порты, обновления, патчи я не устанавливал.
Папка /usr/ports у меня отсутствует.
Мож в этом грабли?!
Ну памагите чайнику!!!
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Проблемы с маршрутизацией в OpenBSD 3.6."
Сообщение от az emailИскать по авторуВ закладки(??) on 25-Мрт-05, 12:49  (MSK)
по идее минимальная функциональность NAT должна работать с таким pf.conf:

#begin of pf.conf
int_if = "ne3"
ext_if = "de0"

nat on $ext_if from $int_if:network to any -> ($ext_if)

pass all
#end of pf.conf

(если, конечно, ne3 и de0 - это реальные имена интерфейсов, и они верно сконфигурированы)

если такая конфигурация работает - переходи к более сложным. Брать целиком чужой конфиг для pf ИМХО плохая идея. Добавляй по строчке - и тестируй.

записи типа $int_if:network я никогда не тестировал - можно попробовать его заменить явным указанием адреса сети (типа 192.168.1.0/24) - или даже словом any - как это по умолчанию делают во FreeBSD ipfw.

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

4. "Проблемы с маршрутизацией в OpenBSD 3.6."
Сообщение от _Ale_ Искать по авторуВ закладки(ok) on 25-Мрт-05, 13:06  (MSK)
Покажи вывод команды
netstat -r
  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Проблемы с маршрутизацией в OpenBSD 3.6."
Сообщение от Tester Искать по авторуВ закладки(??) on 25-Мрт-05, 16:57  (MSK)
Проблему с синтаксической ошибкой в pf.conf неожиданно решил!!!:-)
Спасибо az!
Оказывается правило не должно быть последней строкой в файле pf.conf.
Последней строкой в этом файле может быть любая ремарка (даже матерная:-))
Добавил в конец своего pf.conf файла строку:
#end of pf.conf
И pfctl перестал находить какие-либо ошибки. Так что теперь мой pf.conf грузится без проблем!
Однако проблема с маршрутизацией осталась в прежнем состоянии. Т.е. системе абсолютно по фигу загружен pf.conf или нет и что в нём написано. Ситуация такая: с OpenBSD 3.6 компа пингуется и Инет и локальная сеть. Интернет на этом компе работает. Со всех других компов локальной сети Инет не работает, а пинги доходят только до внешнего интерфейса OpenBSD 3.6 компа.

Так что вопрос _Ale_ задан в нужном направлении!  

>Покажи вывод команды
>netstat -r

У меня такое ощущение, что какого-то маршрута в таблице маршрутизации не хватает. Дело в том, что у меня Интернет-линия одна на всех в конторе. На Windows 2000 server у меня всё настроено и давно работает. Я не могу всю контору на целый день без Инета оставить, по этому для экспериментов с OpenBSD перетыкаю от Windows 2000 server шнурок время от времени. А ведь OpenBSD считывает данные для построения таблицы маршрутизации с интерфейсов при каждой перезагрузке? Вобщем мне надо ручками прописать таблицу маршрутизации и сохранить её...
Показываю, что имею на теперешний момент.
Смотрите и подсказывайте, плииз, что нужно добавить:

-------------------------------------------------------------------------
Routing tables
Destination        Gateway        Flags      Refs   Use   Mtu   Interface
localhost          localhost       UH          0     0   33224     lo0
192.168.0/24        link#1         UC          0     0     -        ne3
192.168.0.16    00:90:f5:03:ba:19  UHLc        0     4     -        ne3
a.b.c/24            link#2          UC         0     0     -        de0
-------------------------------------------------------------------------

a.b.c.d - мой внешний IP
т.е. a.b.c/24 - сетка моего провайдера штоли?
ne3 - мой внутренний интерфейс (смотрит на локальную сеть)
de0 - внешний интерфейс (смотрит на Интернет)
192.168.0.16 - IP-адресс компа в локальной сети (по-моему, лишний маршрут?)

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

6. "Проблемы с маршрутизацией в OpenBSD 3.6."
Сообщение от _Ale_ Искать по авторуВ закладки(ok) on 25-Мрт-05, 18:30  (MSK)
Интересно, а куда подевался default gateway???
  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Проблемы с маршрутизацией в OpenBSD 3.6."
Сообщение от _Ale_ Искать по авторуВ закладки(ok) on 25-Мрт-05, 18:33  (MSK)
>Интересно, а куда подевался default gateway???
вдогонку...
что у вас в /etc/mygate ???

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

8. "Проблемы с маршрутизацией в OpenBSD 3.6."
Сообщение от Tester Искать по авторуВ закладки(??) on 25-Мрт-05, 18:50  (MSK)
>>Интересно, а куда подевался default gateway???
>вдогонку...
>что у вас в /etc/mygate ???

В /etc/maygate у меня одна единственная строчка:
a.b.c.f

Это IP-адрес внешнего (на стороне провайдера) шлюза
мой реальный внешний IP: a.b.c.d
Добавлял вручную в таблицу маршрутизации:
#route add default a.b.c.d
Не помогло:-(


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

9. "Проблемы с маршрутизацией в OpenBSD 3.6."
Сообщение от Tester Искать по авторуВ закладки(??) on 25-Мрт-05, 18:54  (MSK)
>Добавлял вручную в таблицу маршрутизации:
>#route add default a.b.c.d

Сорри!
Добавлял в таблицу маршрутизации:
#route add default a.b.c.f

a.b.c.f - IP адрес внешнего шлюза

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

10. "Проблемы с маршрутизацией в OpenBSD 3.6."
Сообщение от Tester Искать по авторуВ закладки(??) on 27-Мрт-05, 14:08  (MSK)
Спасибо всем!!!
Проблема решена!!!
Включил маршрутизацию IPV6, добавив строчку:
net.inet6.ip6.forwarding=1
в файле /etc/sysctl.conf
И всё заработало!

Пока использую один из готовых примеров pf.conf, взятых из Инета.
По мере изучения буду свой pf.conf ваять, IMHO, это процесс творческий и бесконечный:-)

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


Удалить

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




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

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