The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

В двух словах про включение NAT и Firewall в ОС FreeBSD
Что бы поднять NAT и Firewall на FreeBSD надо:

Скомпилировать ядро:
Следующие строки нужно включить в /usr/src/sys/i386/conf/GENERIC файл конфигурации:

   options IPFIREWALL
   options IPDIVERT
   options IPFIREWALL_VERBOSE
   options IPFIREWALL_VERBOSE_LIMIT=10
   options DUMMYNET
   options TCP_DROP_SYNFIN

Переходим в директорию /usr/src/
   make buildkernel KERNCONF=GENERIC
   make installkernel KERNCONF=GENERIC

Следующие строки можно к примеру включить в rc.conf файл конфигурации:

   hostname="free"
   ifconfig_rl0="10.0.0.1"
   gateway_enable="YES"
   firewall_enable="YES"
   firewall_type="open"
   natd_enable="YES"
   natd_interface="rl0"
   natd_flags="-redirect_port tcp 10.0.0.10:80 80"
   tcp_extensions="NO"
   tcp_drop_synfin="YES"
   icmp_drop_redirect="YES"
   sendmail_enable="NONE"

Для удаленного управления нужно добавить следующую строку:
   sshd_enable="YES"
(возможно понадобится скопировать /etc/ssh/ssh_host_dsa_key.pub в /root/.ssh/authorized_keys

Следующие строки можно включить в rc.firewall файл конфигурации (секция "open"):

   [Oo][Pp][Ee][Nn])
   oif="rl0"
   iif="tx0"
   oip="132.5.7.172"
   iip="10.0.0.1"
   lan="10.0.0.0/24"
   setup_loopback
   # allow all for LAN
   ${fwcmd} add 500 pass all from ${lan} to ${iip} via ${iif}
   ${fwcmd} add 550 pass all from ${iip} to ${lan} via ${iif}
   # download - 60K upload - 6K for all lan ip's
   ${fwcmd} add 600 pipe 1 ip from any to any in via ${oif}
   ${fwcmd} add 650 pipe 2 ip from any to any out via ${oif}
   # for selected ip's only
   # ${fwcmd} add 601 pipe 1 all from any to 10.0.0.10
   # ${fwcmd} add 651 pipe 2 all from 10.0.0.10 to any
   ${fwcmd} pipe 1 config bw 512Kbit/s
   ${fwcmd} pipe 2 config bw 48Kbit/s
   # dns setup
   ${fwcmd} add 770 pass tcp from any to ${oip} 53 setup
   ${fwcmd} add 780 pass udp from any domain to any
   ${fwcmd} add 790 pass udp from any to any domain
   # main setup
   ${fwcmd} add 800 pass tcp from any http,https,20-21,989-990 to any
   ${fwcmd} add 810 pass tcp from any to any http,https,20-21,989-990
   ${fwcmd} add 830 pass tcp from any pop3,pop3s,smtp,imap,imaps,aol to any
   ${fwcmd} add 840 pass tcp from any to any pop3,pop3s,smtp,imap,imaps,aol
   ${fwcmd} add 65000 deny ip from any to any
   ;;
 
Где oip, oif - внешний интерфейс; iip, iif - внутренний; lan - внутренняя сеть.

Такая конфигурация ipfw весьма параноидальна, и здесь приведена только в качестве примера. 
На практике обычно нужен более открытый фаервол. 
 
13.10.2005 , Автор: hub.ru , Источник: http://www.hub.ru/modules.php?name=...
Раздел:    Корень / Администратору / Система / FreeBSD специфика / Установка и апгрейд FreeBSD и приложений.

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, Case, 20:40, 15/10/2005 [ответить] [смотреть все]
  • +/
    Имхо это не правильно переделывать секцию open в системном rc.firewall.. либо указывать свой скрипт надо, либо тип файрволла ставить filename (все расписано в /etc/default/rc.conf и в комментах в оригинальном /etc/rc.firewall

    И IPFIREWALL_VERBOSE_LIMIT=10, наверное лучше вообще его отключить.. и настроить ротацию логов - что бы место не забилось..

     
  • 1.2, Kirill_AG, 13:55, 18/10/2005 [ответить] [смотреть все]
  • +/
    Согласен с предыдущим. Не надо трогать системные скрипты, а также generic ядро!
     
  • 1.3, XoRe, 06:38, 20/10/2005 [ответить] [смотреть все]
  • +/
    Можно и GENERIC редактировать, но НЕОБХОДИМЫ в нем для NAT только 2 опции:
    options IPFIREWALL
    options IPDIVERT

    А в /etc/rc.conf для NAT неободимы только эти строки:
    gateway_enable="YES"
    firewall_enable="YES"
    firewall_type="open"
    natd_enable="YES"
    natd_interface="rl0" (имя внешнего интерфейса)

    Остальное - это уже пример индивидуальной настройки фаервола.
    На каждом шлюзе они должны быть свои.

    P.S. Содержимое статьи становится понятным, если посмотреть, кто автор ( Автор: hub.ru :)
    Как я понимаю, сначала посетители hub.ru читали этот портал и выкладывали статьи там.
    Теперь, видимо, пошла обратная волна ))

     
  • 1.4, vvvua, 11:27, 20/10/2005 [ответить] [смотреть все]
  • +/
    А если нужен ipnat?
    Просто в 5.4 FreeBSD нет устройства /dev/kmem,
    поэтому ipnat ругается.
    Как включить это всё?
    По мануалу - должно работать, но что-то где-то не так.
    На 4.11 всё ок.
     
  • 1.5, XoRe, 11:33, 20/10/2005 [ответить] [смотреть все]
  • +/
    /dev/kmem
    можно включить в ядре кажись
     
  • 1.6, vvvua, 17:11, 20/10/2005 [ответить] [смотреть все]  
  • +/
    Решилась проблема переделыванием заново:
    rc.conf:
    ipfilter_enable="YES"             # Start ipf firewall
    ipfilter_rules="/etc/ipf.rules"   # loads rules definition text file
    ipmon_enable="YES"                # Start IP monitor log
    ipmon_flags="-Ds"                 # D = start as daemon
                                      # s = log to syslog
                                      # v = log tcp window, ack, seq
                                      # n = map IP & port to names


    В конфиг ядра GENERIC добавил
    options IPFIREWALL
    options IPFIREWALL_FORWARD
    options IPDIVERT

    options IPFILTER
    options IPFILTER_LOG

    Всё заработало.

     
     
  • 2.8, CrazyF, 15:31, 05/11/2005 [^] [ответить] [смотреть все]  
  • +/
    Нафига Вам IPF и IPFW одновременно. IMHO чушь порете.
     
     
  • 3.9, vvvua, 20:24, 05/11/2005 [^] [ответить] [смотреть все]  
  • +/
    >Нафига Вам IPF и IPFW одновременно. IMHO чушь порете.

    Дело в том, чт система работает на NATD и ipfw.
    Нужно:
    1. Пробросить порты из вне внутрь локалки на разные серваки
    2. Уменьшить нагрузку по NAT

    Вещи не взаимоисключающие, но дублирующие.
    Для чистоты - да, либо то, либо другое. Согласен.

     
  • 1.7, mc, 18:55, 02/11/2005 [ответить] [смотреть все]  
  • +/
    Вот заморочки....... делов на 5 минут:
    kldload pf
    sysctl net.inet.ip.forwarding=1
    vi /etc/pf.conf
    ...
    и ВСЕ!!!

     
     
  • 2.10, vvvua, 20:28, 05/11/2005 [^] [ответить] [смотреть все]  
  • +/
    >Вот заморочки....... делов на 5 минут:
    >kldload pf
    >sysctl net.inet.ip.forwarding=1
    >vi /etc/pf.conf
    >...
    >и ВСЕ!!!
    Тоже вариант.

    А проблемы с FTP и необходимостью хранить состояния пакетов уже решены?
    Когда юзал давно когда-то, то были...

    Кстати, есть правила для ipnat, а для pf нужно переделывать.

     
  • 1.11, tma39, 21:27, 09/11/2005 [ответить] [смотреть все]  
  • +/
    всем здрасти,я
    подскажите пожалуйста,как добавить правило,чтоб хоть ping проходил, а то я собрал систему,а всё закрыть ,по умолчанию,  так вот как вообще добавляются правила?????

    заранее спасибо

     
     
  • 2.12, nasredin, 11:15, 11/11/2005 [^] [ответить] [смотреть все]  
  • +/
    ipfw add deny icmp from any to any frag #запрещаем проход для фрагментированых покетов
    ipfw add allow icmp from any to any #остальные разрешаем вроде так
     
  • 1.13, Aleksej, 15:34, 11/11/2005 [ответить] [смотреть все]  
  • +/
    Уважаемые!
    Авам не кажеться, что автор с интерфейсами напутал
    !  ifconfig_rl0="10.0.0.1"

    !  oif="rl0"
       iif="tx0"
       oip="132.5.7.172"
    !  iip="10.0.0.1"
       lan="10.0.0.0/24"
    что это?

     
  • 1.16, spitamen, 10:24, 18/05/2006 [ответить] [смотреть все]  
  • +/
    Добавил приведенные строки и перекомпилировал файл конфигурации ядра GENERIC как сказано выше.
    Также добавил вышеприведенные строки в rc.conf, но rc.firewall трогать не стал потому как скурпулезных ограничений пока не нужно.

    Все другие приложения (ICQ, MSN) работают
    нормально, но вот в Internet Explorer просматривать сайты не могу.
    Как быть?

     
  • 1.17, Евгений, 13:03, 12/10/2006 [ответить] [смотреть все]  
  • +/
    Подскажите как записать oip если внешний IP получаю по DHCP?
     
     
  • 2.19, vvvua, 15:25, 04/11/2006 [^] [ответить] [смотреть все]  
  • +/
    Скрипт написать с $1 вместо oip  - будет первый параметр в командной строке скрипта.
    На dhclient настроить запуск етого скрипта.
     

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

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList