The OpenNET Project / Index page

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

[FreeBSD] Настройка ADSL интернета для корпаративных сетей (adsl freebsd modem nat ipfw)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: adsl, freebsd, modem, nat, ipfw,  (найти похожие документы)
From: Заикин Максим Викторович <ZaikinM@mail.ru.> Newsgroups: email Date: Mon, 11 Apr 2005 14:31:37 +0000 (UTC) Subject: [FreeBSD] Настройка ADSL интернета для корпаративных сетей Характеристика сети. Сеть на базе 100mb/s. В сеть входят два компьютера, comp1 и comp2 Comp1. Intel Pentium III 900 mhz, hdd 80gb, ram 256, D-link 100mb/s Os - Windows XP Net Config ip 192.168.0.2 netmask 255.255.255.0 gateway 192.168.0.68 (на этот параметр прошу обратить особое внимание, он будет рассмотрен более подробно позже) dns1 193.24.22.6 dns2 193.24.22.33 ................... comp2. AMD -K6 300mhz, hdd 5gb, ram 198, D-Link 100mbs, Realtek 100mb/s Os - FreeBSD 4.9-RELEASE Net config rl0 - Realtek ip 193.24.23.35 netmask 255.255.255.248 gateway 193.24.23.33 vr0 - D-link ip 192.168.0.68 netmask 255.255.255.0 dns1 193.24.22.6 dns2 193.24.22.33 ................... Топология сети ______________ / \ / \ | internet | \ / \______________/ | | | | | my local network | ......................................................................... gateway . coomp2 __________ comp1 . (провайдера) . vr0 192.168.0.68-------------| switch |--------------- 192.168.0.2 . 193.24.23.33 . | ---------- . | .......... .............................................................. | | | rl0 193.24.23.35 | | |---------------------- | ... Постановка задачи Провайдер предоставляет услуги ADSL. Выделен один реальный ip адрес, шлюз и два сервера dns. Необходимо предоставить пользователям локальной сети, пользоваться услугами интернет. Для решения этой задачи, мы решили применить следующую схему. Установить сервер под управлением Os FreeBSD, снабдить его двумя сетевыми интерфейсами, один из которых будет принадлежать сети провайдера, второй - локальной сети. Для решения поставленной задачи, нам необходимо сконфигурировать ядро должным образом, что бы операционная система могла на уровне ядра осуществлять форвардинг трафика, с одного сетевого интерфейса на другой. Так же, так как адреса нашей локальной сети, являются серыми, то нам необходимо применить технологию NAT ( Network Adress Translation) Для этого в конфигурационный файл ядра( мы его назвали CUSTOM ) необходимо включить следующие опции: Конфигурация ядра. cd /sys/i386/conf cp GENERIC CUSTOM vi CUSTOM Далее мы добавим необходимый для решения поставленной задачи- опции. options IPFIREWALL (включает FIREWALL на уровне ядра, то есть как только будет приходить пакет, он тут же будет анализироваться ядром, на предмет соответствия правилам безопасности) options IPFIREWALL_VERBOSE (включает, лог файлы файрвола ) options IPFIREWALL_VERBOSE_LIMIT=10 (включает ограничение записи пакетов в лог, для избежания переполнения флудом) options IPFIREWALL_DEFAULT_TO_ACCEPT ( включает по умолчанию полную прозрачность файрвола, если эту опцию убрать, то до тех пор пока вы не заведете правила, все пакеты будут отбрасываться. Вообще говоря, есть два варианта конфигурации Файрвола. Первый вы запрещаете весь трафик, и затем вводя соответствующие правила разрешаете то что считаете нужным. Второй вы открываете весь трафик, и затем соответствующими правилами, закрываете тот что считаете ненужным.) options IPDIVERT ( Эта опция позволяет перенаправлять трафик с одного сетевого интерфейса на другой ) Подсказка по vi: * Для активации режима ввода нажмите клавишу "i" * Для отмены режима ввода нажмите "Esc" * Для удаления символа, стоящего перед курсором, в режиме просмотра, нажмите "x" * Для удаления строки, на которой стоит курсор, нажмите два раза "d" * Для перехода в коммандный режим, нажмите "Ctrl+':'" * Для сохранения внесенных изменений, перейдите в коммандный режим, введите "w", и затем enter * Для выхода из редактора "vi", перейдите в коммандный режим, введите "q", и нажмите enter * Для выхода из редактора "vi" без сохранения, перейдите в коммандный режим, введите "q!", и нажмите enter Сборка: cd /usr/src make buildkernel KERNCONF=CUSTOM make installkernel KERNCONF=CUSTOM Вся операция на данном оборудовании занимает ~30 минут Во время процесса компиляции ядра, вы можете внести изменения в конфигурационный файлы системы. Alt+"номер функциональной клавиши" переключит вас в другой сеанс работы с операционной системой. Авторизируйтесь справами суперпользователя, и внесите нижеследующие измения в конфигурационные файлы операционной системы. Правка конфигурационных файлов операционной системы. ! Внимание нумерация строк включена для удобства комментариев, и должна остсутствовать в файлах конфигурации ! /etc/rc.conf 1 firewall_enable="YES" 2 firewall_type="simple" 3 natd_enable="YES" 4 natd_interface="rl0" 5 gateway_enable="YES" 6 ifconfig_rl0="inet 193.24.23.35 netmask 255.255.255.248" 7 ifconfig_vr0="inet 192.168.0.68 netmask 255.255.255.0" 8 defaultrouter="193.24.23.33" Описание параметров 1 При загрузке операционной системы запускает, файрвол ipfw 2 Конфигурирует файрволл при загрузке, в соответствии с правилами, перечисленными в секции simple, файла /etc/rc.firewall 3 При загрузке включает демон natd 4 При загрузке запускает nat демон на интерфейсе rl0. Всегда демон NAT должен запускаться на внешнем интерфейсе 5 Когда этот параметр установлен, то компьютер запускается в режиме ip маршрутизатора, то есть включается возможность перенаправлять трафик с одного сетевого интерфейса на другой. 6 При загрузке конфигурирует сетевой интерфейс rl0 7 При загрузке конфигурирует сетевой интерфейс vr0 8 Организует маршрут по умолчанию до указанного ip адреса. /etc/resolv.conf 1 nameserver 193.24.22.6 2 nameserver 193.24.22.33 Описание параметров 1-2 Эти записи описывают адреса dns серверов. /etc/rc.firewall Так, как мы указали при загрузке активировать правила из секции "simple", то спускаемся до этой секции. # Эти параметры описывают ваш внешний интерфейс. Установите ваш ip маску # подсети, и идентификатор вашего внешнего интерфейса oif="rl0" onet="193.24.23.0" omask="255.255.255.248" oip="193.24.23.35" #Эти параметры описывают ваш локальный интерфейс. Установите ваш ip #маску подсети, и идентификатор вашего локального интерфейса. oif="vr0" onet="192.198.0.0" omask="255.255.255.0" oip="192.168.0.68" После инсталляции нового ядра, перезагружаем систему. reboot now После перезагрузки необходимо проверить настройки ping foo.com получаем ответ- значит внешний интерфейс настроен правильно ping 192.168.0.2 получаем ответ- значит локальный интерфейс настроен правильно Если, вы не получаете ответ. 1. Проверьте есть ли гудок в телефонной линии 2. Включен ли ADSL modem ? Если нет, то ни один индикатор на модеме не будет активен. 3. Подключен ли ADSL модем к телефонной линии. Это можно проверить следующим способом. На модеме имеется индикатор "Link" если этот индикатор находиться в нестабильном состоянии ( постоянно мигает ), значит модем не может установить связь с внешним миром. 4. Подключен ли модем к сетевому интерфейсу ПК. На модеме имеются индикатор "LAN" Если он не активен, значит нет связи с сетевым интерфейсом. 5. Проверте правильно ли вы подключили сетевые интерфейсы. 5.1 Дайте команду ifconfig -a. Изучите дамп команды. Проверте соответствует ли дамп реальной ситуации. 5.2 Проврьте на те ли сетевые интерфейсы, вы подключили соответствующие провода. Это стоит понимать, как например если на rl0(в нашем случае это внешний сетевой интерфейс) мы подключаем провод с локальной сети. 6. Включен ли switch ? Настройка comp1. 1. Открывает оснастку "Сетевое окружение". 2. "Отобразить сетевые подключения". 3. Щелкаем правой кнопкой мыши по оснастке "Подключение по локальной сети" 4. Выбираем пункт свойства 5. Встаем на пункт "Протокол интернета TCP/IP". Нажимаем кнопку "Свойства" 6. Прописываем следующие характеристики сети IP-адрес 192.168.0.2 Маска подсети 255.255.255.0 Основной шлюз 192.168.0.68 Давайте рассмотрим этот параметр подробнее что бы понять, как будет происходить взаимодействие сетей. Допустим пользователь локальной сети, решил посмотреть содержимое сайта some_site.com, адрес которого например 0.0.0.0 comp1 формирует пакет на установление соединения с some_site. Мы не будем углубляться в тонкости формирования, запроса на установления соединения с удаленным хостом. Так как адрес some_site неизвестен, но и не принадлежит локальной сети то основываясь на запись основной шлюз, пакет будет послан на comp2 интерфейс vr0 192.168.0.68. Приняв пакет, ядро comp2 начинает его анализировать - ipfw. ipfw последовательно его сопоставляет на соответствия правилам, начиная с правила с наименьшим номером, и заканчивая самым последним в списке правил, номер которого будет самым высоким. В нашем случае есть правило 1400 341 95477 divert 8668 ip from any to via rl0 (см. подробнее о настройке ipfw) Номер правила 1400. Правило гласит перенаправлять все пакеты по протоколу TCP/IP на порт 8668 сетевого интерфейса rl0 Как только ipfw дойдет до этого правила. Пакет тут же будет передан на порт 8668 сетевого интерфейса rl0. Что бы лучше понять суть "divert 8668" - этой части правила. Наберите cat /etc/services|grep natd. В нашем случае получим следующий вывод natd 8668/divert #Network Adress Translation А так же вспомните запись в файле /etc/rc.conf natd_interface="rl0" Все это значит, что демон natd при старте системы запускается на сетевом интерфейсе rl0. И будет прослушивать порт 8668 Как только приходит пакет на порт 8668, включается демон natd, суть которого состоит в следующем. Наш пакет в заголовке будет содержать адрес компьютера отправителя 192.168.0.2 Такова адреса в интернете не существует Поэтому демон natd заменит этот адрес на 193.24.23.35. А так же создаст временную запись соответствия пакет-локальный адрес-измененный адрес. И передаст его на сетевой интерфейс rl0. Далее вступает в силу запись /etc/rc.conf defaultrouter="193.24.23.33" Суть этой записи состоит в том, что если приходит пакет с запросом к неизвестному ip адресу, такой пакет будет отправляться на адрес указанный в записи defultrouter. Если нет другого соответствующего именно этой ситуации маршрута. Таблицу маршрутов вы можете просмотреть по команде netstat -rn( см. подробнее о настройке маршрутизации) Адрес 193.24.23.33 это адрес шлюза провайдера. Вполне естественным будет выглядеть отправка этого пакета, на шлюз провайдера, так как эти сетевые интерфейсы -сегменты одной сети. Далее этот пакет достигнет пункта назначения, и пройдет все шаги в обратном порядке. Предпочитаемый DNS-сервер 193.23.22.6 Альтернативный DNS-сервер 193.23.22.33 На остльных шагах - нажимаем кнопку "OK" На этом настройка сети заканчивается. После этого comp1 должен беспрепятственно совершать запросы за прделы локальной сети. Если в вашем случае, желаемый результат не достигнут, пишите мне на email ZaikinM@mail.ru. В письме укажите характеристики вашей сети, так же как приведены в самом начале данной статьи. А так же опишите проблему и место в котором она возникает. Автор будет благодарен за любую критику, и исправление допущенных им ошибок и неточностей. С Уважением Заикин Максим.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Andrew Korovin (?), 19:48, 13/04/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Тут есть неверное правило для ipfw..
    ---
    1400 341 95477 divert 8668 ip from any to via rl0 (см. подробнее о настройке ipfw)
    Номер правила 1400. Правило гласит перенаправлять все пакеты
    ---
    #ipfw add divert 8668 ip from any to via rl0
    ipfw: unrecognised option [-1] rl0

    правильно будет ipfw add divert 8668 ip from any to any via rl0

     
  • 1.2, Александр (??), 07:56, 14/04/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это не для корпоративных сетей - это для домашних
    Только тут можно рекомендовать полную открытость файервола (options IPFIREWALL_DEFAULT_TO_ACCEPT) да и то с некоторой оглядкой.
    В любом случае ЛУЧШЕ запретить по умолчанию весь трафик (IPFIREWALL_DEFAULT_TO_ACCEPT исключаем)
    а в rc.conf указываем firewall_type="OPEN" и получаем нужную нам полную свободу.
    А если есть время и желание действительно настроить фильтрацию, на основе секции SIMPLE создаем свою собственную и начинаем играться с правилами.
     
     
  • 2.4, pev2000 (??), 11:54, 16/04/2005 [^] [^^] [^^^] [ответить]  
  • +/
    > (IPFIREWALL_DEFAULT_TO_ACCEPT исключаем)
    Хотел бы я на тебя поглядеть, когда ты правила захочешь перезагрузить, либо очистить :D
    И поскачешь за тридевять земель к своему ты пациенту, IPFIREWALL_DEFAULT_TO_ACCEPT нужен! Перед последним и после всех разрешающих правил можно поставить deny all from any to any и все будет пушисто!
     
     
  • 3.7, Freedom (?), 12:12, 19/04/2005 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем, достаточно нужные правила в set 31 поставить, или скриптом пользоваться.


     

  • 1.3, maxim (??), 11:15, 14/04/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Стоило ли сервак поднимать если, насколько я понял, ADSL модем находится в режиме router, а не bridge.
    Так как здесь ни слова про подключение PPPoE.
    А в таком режиме и nat можно на нем включить.
    Да и шлюз для корпоративной сети без фаервола - вещь страшная
     
     
  • 2.5, Maxim Zaikin (?), 16:06, 16/04/2005 [^] [^^] [^^^] [ответить]  
  • +/
    Natd поднимать стоило. Объясею почему. А куда повашему пойдеит пакет направленный из вне, обратно в локальную сеть. Когда вокруг миллионы компъютеров с адресами 192.168.0.х. Natd необходим там где предпологаются серые ip адреса, эта его одна из одних основопологающих задач. Файрволл нужен обязательно именно его поддержку мы и включили в ядро. Согласен с критокой по поводу его настройки. Эта конфигурация не претендует на звание максимальнооптимизированного и безопаснонстроенного. Тема ipfw заслуживает отдельной книги нето что статьи. Я лишь привел пример роботоспособной конфигурации. В любом случае спасибо за ваши отзывы. Согласен в статье присутствуют неточности и ошибки. Обещаю в последующих изложениях по данной теме учесть ваши замечания.
    С уважением Заикин Максим Викторович
     
     
  • 3.6, Maxim (??), 13:14, 17/04/2005 [^] [^^] [^^^] [ответить]  
  • +/
    То что NAT нужен это ясно, но только ради этого ставить сервер нужды нет. Многие модели ADSL-модемов, особенно которые работают в режиме роутера, умеют делать nat. Они сами цепляются к провайдеру и получают на себя внешний IP адрес. Если и поднимать сервер с подключением по ADSL, то модем нужно переводить в режим моста, и на средствами ОС организовывать PPPoE подключение (тогда сервер получает внешний адрес).
    Статья по сути дела бесмысленная, про начала настроки FreeBSD в качестве маршрутизатора говорится чуть ли ни в каждом материале. Про подключение ADSL - тоже ни слова, ipfw - другая статья
     
     
  • 4.11, Игорь (??), 18:56, 25/07/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Хм, господа. А вы найдмте путевую статью где также подробно описывается чего и куда тыкать для новичков? Это же настройка ШЛЮЗА. Надо фаерволл? другая статья. Надо прокси? тоже есть статья про SQUID. Если вы профи, так напишите статью или книгу как и что настроить от и до. Я считаю, что название выбрано правильно, хоть и с ошибкой грамматической, но сути не меняет. Эта статья фундамент для построения ШЛЮЗА.
     
  • 4.12, x2ES (??), 14:01, 22/08/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Статья хорошая.
    Например, для меня было открытием, что natd работает как сетевой сервис на порту 8668 (я думал, что он на системном уровне перекидывает пакеты с интерфейса на интерфейс). А без понимания этого правило "divert 8668 ip from any to any via rl0" выглядит как минимум бессмысленно (за что и удаляется).
     
  • 3.8, favourite (ok), 06:59, 21/04/2005 [^] [^^] [^^^] [ответить]  
  • +/
    > Согласен в статье присутствуют неточности и ошибки. Обещаю в последующих изложениях по данной теме учесть ваши замечания.

    а слабо было через спелчекер прогнать перед публикацией? - корпАративных в заголовке глаз режет

     

  • 1.9, Dmitry U. Karoiv (?), 12:28, 06/05/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    http://DmitryKarpov.nm.ru/networks/intranet.htm
    http://DmitryKarpov.nm.ru/freebsd/natd.htm
     
  • 1.13, Ник (??), 07:58, 25/08/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот у меня есть ворос по самому началу нет конфиг какая команда чтобы в него заити???
     
  • 1.14, Дмитрий (??), 07:17, 11/06/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    У нас небольшое предприятие и есть безлимитный интернет через ADSL
    modem, который настроен в режиме роутера (внешний ИП ему назначается
    провайдером автоматически). Есть локальный домен на АД которому
    нужно обеспечить доступ в инет через файрвол (FreeBSD, ipfw). Проблема в следующем.
    Начиналось все с KerioWinroute и так как нормальной работы от него
    никто не дождался пришлось ставить Microsoft ISA Server 2006. Но увы,
    машина на которую его поставили - не шибко шустрая и тут возник
    вопрос, - "А почему бы и не FreeBSD?". Навыков хватило чтоб
    установить систему, поставить "мс" и перекопилить ядро... Далее
    уверенности в действиях нету совсем никакой...

    Если вас не затруднит, помогите в настройке. Вот наши характеристики:

    Сеть на базе 100mb/s. В сеть входят 1 локальный домен, два сервака,
    ADSL modem (Calisto 821+) и
    комп-шлюз-файрвол с FreeBSD(ipfw)

    Comp_domen (подразумевается любой комп локалки).

    Intel Pentium IV 2000 mhz, hdd 80gb, ram 256, D-link 100mb/s
    Os - Windows XP Pro

    Net Config

        ip        192.168.1.144
        netmask   255.255.255.0
        gateway   192.168.1.150 (локальная сетевуха в FreeBSD машине)
        dns1      192.168.1.1 (Локальный DNS c ActiveDerictory)

        ...................


    FreeBSD(ipfw):

    Intel Celeron 2000 mhz, hdd 40gb, ram 256, D-Link 100mbs, Realtek 100mb/s
    Os - FreeBSD 7.0-RELEASE

    Net config

        rl0 - Realtek
        ip        192.168.0.150
        netmask   255.255.255.0
        gateway   192.168.0.254 (это ИП модема, который настроен в режиме
        роутера с динамической выдачей внешнего ИП провайдером)

        vr0 - D-link
        ip        192.168.1.150
        netmask   255.255.255.0
        
        dns1      195.5.46.12 (этот ДНС дал сам провайдер, он только один)
        dns2      192.168.1.1 (Локальный DNS c ActiveDerictory) - я
        не знаю, нужен он тут или нет...
        ...................

        Очень ждем ответа от всех откликнувшихся! Заранее - БОЛЬШОЕ СПАСИБО!

     
  • 1.15, Сергей (??), 01:05, 25/04/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Спасибо Максим вот мне твоя статья очен помогла
    а есть идеи как сделать без simpla ну типа создать
    свой скрипт? Спасибо! Жду ответа. и если можно еще пару вопросов задать
     
  • 1.16, Dmitry (??), 09:55, 06/05/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Где описана часть simple конфига файрвола там на локальный интерфей прописано oif, onet - тока у меня ничего не пошло пока не изменил на iif inet и т.д.
    Я особо в *nix системах на разбираюсь - обясните пожалуйста это опечатка или так и должно быть!?
     
  • 1.17, Eugen (??), 01:09, 08/11/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А напишите кто-нибудь как выпустить наружу http сервер на компе, подключенному к интернет через ADSL-Ethernet модем, работающий как маршрутизатор.
     
  • 1.18, Stels199327 (??), 12:39, 06/03/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А меня чё то тревожит
    Сборка:

        cd /usr/src
        make buildkernel KERNCONF=CUSTOM
        make installkernel KERNCONF=CUSTOM

    У меня несроботоло у меня версия FreeBSD 4.5 я водил
      cd /usr/src
        make buildkernel GENERIC=CUSTOM
        make installkernel GENERIC=CUSTOM

     

    игнорирование участников | лог модерирования

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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