The OpenNET Project / Index page

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

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

"запуск nat и ipfw"  
Сообщение от Orlic email(??) on 08-Сен-06, 16:37 
Каким образом правильно запускать ipfw и nat ? читая доки и хендбук, я встречал различные варианты запуска, например:
1. в /etc/rc.conf
firewall_type="СВОЙ ТИП"

и прописывается свои правила в свою секция файла rc.firewall

2. в /etc/rc.ipfw.rules или любой другой файл, который указывается в
/etc/rc.conf
firewall_script="/etc/rc.ipfw.rules"

3. в .уес.ксюв.
кладется свой скрипт, в котором указываются правила ipfw

Правила natd прописываются в отдельном файле, на который указывает строка
/etc/rc.conf
natd_flags="/etc/rc.natd.rules"

У меня собственно используется firewall_script="/etc/rc.ipfw.rules" и natd_flags="/etc/rc.natd.rules",

но при загрузке системы происходит "зависание" во время выполнения /etc/rc/ipfw после запуска natd. Выход - только по Ctrl+C...

Вопрос - удобнее и безопаснее прописывать и запускать правила ipfw и natd.

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

Спасибо.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "запуск nat и ipfw"  
Сообщение от sergioborcov email(ok) on 08-Сен-06, 17:29 
Я пользуюсь ipnat-ом, с ним в компании с ipfw никаких проблем при запуске. Инструкция по запуску описана в rc.conf по примеру из /etc/defaults/rc.conf.
А относительно второго вопроса, то может что-нибудь здесь полезного почитаешь
http://www.opennet.ru/tips/sml/40.shtml.


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "запуск nat и ipfw"  
Сообщение от _RAW_ email(ok) on 08-Сен-06, 17:49 
rc.conf
gateway_enable="YES"
firewall_enable="YES"

есесна в ядре прописаны опции
options         IPDIVERT                # нат
options         IPFIREWALL              # файрвол
options         IPFIREWALL_VERBOSE      # умеет логить пакеты
options         IPFIREWALL_FORWARD      # форвард врубить
options         IPFIREWALL_FORWARD_EXTENDED # расширенный форвард врубить

далее в /usr/local/etc/rc.d/ пишешь скриптик

#!/bin/sh
case "$1" in
start)
/sbin/ipfw -q flush
/sbin/ipfw -q flush
/sbin/ipfw -q add 100 divert natd all from any to any via fxp0
/sbin/ipfw -q add 110 allow all from any to any via lo0
/sbin/ipfw -q add 500 allow all from any to any

echo "Firewall rules set."
;;
stop)
/sbin/ipfw -q flush
/sbin/ipfw -q add 100 divert natd all from any to any via fxp0
/sbin/ipfw -q add 110 allow all from any to any via lo0
/sbin/ipfw -q add 500 allow all from any to any
echo "Firewall DISABLED!"
;;
*)
echo "Usage: '$0' {start|stop}" >&2
exit 64
;;
esac
exit 0

правила есесна дырявые. только нат всей локалки на инет через интерфейс который в данном случае fxp0

и всё. при перезапуске стартует этот скрпитик. при остановке - останавливается.

можно для верности его сдуплить в /etc/rc.d/ если просто этого буит недостаточно. ну или прописать его в запусках при старте корректно.

во всяком случае я делаю так.


еще пользительно запустить такие вот опции в sysctl.conf

net.inet.ip.forwarding=1
net.inet.ip.fw.one_pass=1

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "запуск nat и ipfw"  
Сообщение от Orlic email(??) on 09-Сен-06, 17:57 
>rc.conf
>gateway_enable="YES"
>firewall_enable="YES"
>
>есесна в ядре прописаны опции
>options         IPDIVERT  
>          
>  # нат
>options         IPFIREWALL  
>          
># файрвол
>options         IPFIREWALL_VERBOSE  
>   # умеет логить пакеты
>options         IPFIREWALL_FORWARD  
>   # форвард врубить
>options         IPFIREWALL_FORWARD_EXTENDED # расширенный
>форвард врубить

врубил, но при сборке ядра получил такое:
....................
/usr/src/sys/i386/conf/MYKERNEL: unknown option "IPFIREWALL_FORWARD_EXTENDED"
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.

Система FreeBSD 6.1


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "запуск nat и ipfw"  
Сообщение от Orlic email(??) on 09-Сен-06, 18:02 

>>options         IPFIREWALL_FORWARD_EXTENDED # расширенный

>
>Система FreeBSD 6.1


не надо тут такой опции:

The IPFIREWALL_FORWARD_EXTENDED kernel option has been removed. This option was used to permit ipfw(4) to redirect packets with local destinations. This behavior is now always enabled when the IPFIREWALL_FORWARD kernel option is enabled.

во как


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "запуск nat и ipfw"  
Сообщение от seller on 09-Сен-06, 20:07 
>Каким образом правильно запускать ipfw и nat ? читая доки и хендбук,
>я встречал различные варианты запуска, например:

Остановись на чем-нибудь одном и исследуй эту тему. Иначе запутаешься (что, скорее всего уже так).

В /etc/rc.conf
firewall_enable="yes"
firewall_type="open" #или что-то свое
gateway_enable="yes"
natd_enable="yes"
natd_interface="rl1"   #сетевуха, смотрящая в инет
natd_flags="-f /etc/natd.conf"

В /etc/natd.conf у меня указаны
same_ports yes
use_sockets yes
и редиректы некоторых портов (пиринг:)
Если не надо, не пиши...

В /etc/rc.firewall (или что там указано в firewall_script):
Короче, суть там такая: чтоб работал nat, нужно, чтобы у ипфв было указано правило

divert natd all from any to any via ${natd_interface}

причем правило должно быть первым, а не из последних...
Тип ипфв можно указать и свой, соответственно сделав новый блок в rc.firewall, но добавить туда такую конструкцию:

case ${natd_enable} in
[Yy][Ee][Ss])
    if [ -n "${natd_interface}" ]; then
        ${fwcmd} add 50 divert natd all from any to any via ${natd_interface}
    fi
    ;;
esac

${natd_enable} и ${natd_interface} возьмутся из rc.conf.

До всего этого, ессно нужно, чтобы были
options IPDIVERT
options IPFIREWALL              

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

Напиши скрипт, который сбрасывает правила ипфв на заведомо рабочий вариант, и поставь его в cron на каждый час, например. Таким образом, если где-то косяк в скриптах файрвола, в начале следующего часа все правила сбросятся и на сервак снова можно будет залогиниться, не бегая на площадку к провайдеру... Если же новые правила файрвола проверку выдержали, то можно править скрипт, чтобы сбрасывал в уже обновленный набор правил...


>Спасибо.
Удачи.


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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