The OpenNET Project / Index page

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

Пример использования ipfw на внутренних роутерах (freebsd ipfw rule example firewall)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: freebsd, ipfw, rule, example, firewall,  (найти похожие документы)
_ RU.UNIX.BSD (2:5077/15.22) _____________________________________ RU.UNIX.BSD _ From : Igor Nikolaev 2:5030/266 05 Oct 99 02:39:16 Subj : Пример использования ipfw на внутренних роутерах ________________________________________________________________________________ Prokhorov M.B. <misha@tamben.elektra.ru> wrote: > Я собирался использовать ipfw, Пример использования ipfw на внутренних роутерах корпоративной сети. Может кому-нибудь пригодится, критика и лечение паранойи с благодарностью принимаются, реальные имена и адреса изменены ;-) Эти роутеры без dummynet, немного откомментировано по-русски для этого письма. % cat /etc/rc.firewall #!/bin/sh # # Firewall configuration # # тип 'echo' даёт печать правил без исполнения if [ "${1}" = "echo" ]; then ipfw="/bin/echo" else ipfw="/sbin/ipfw" fi # правила для роутера живут в /usr/local/etc/ipfw/router # router name rules=/usr/local/etc/ipfw/`/bin/hostname -s` # start list number rule_num=1000 # в этой сети живут все наши сервера, роутеры и проч # управляющие машины. Доступ к ним урезан на них. # control network vtc="1.2.3.0/24" # разрешает весь траффик через интерфейс на котором # нет пользователей # backbone segment backbone () { rule_num=$(($rule_num+10)) $ipfw add $rule_num pass all from any to any via $1 } # описание клиентской машины, ip номер как параметр # client workstation: only outgoing tcp client () { rule_num=$(($rule_num+10)) $ipfw add $rule_num pass tcp from $1 to any rule_num=$(($rule_num+10)) $ipfw add $rule_num pass tcp from any to $1 established } # описание сервера ip номер плюс номера портов # сервер у нас всегда имеет свой независимый ip номер # server: only incoming tcp on port list server () { local ip port ip=$1 shift for port in $* do rule_num=$(($rule_num+10)) $ipfw add $rule_num pass tcp from any to $ip $port done } $ipfw -f flush # антиспуфинг роутера (на самом деле нафиг не нужен...) $ipfw add 100 pass all from any to any via lo0 $ipfw add 200 deny all from any to 127.0.0.0/8 # её использует кабельная группа, разрешаем # traceroute $ipfw add 400 pass udp from any to any 33434-33523 # реально пользователь получает все сетевые сервисы здесь # network services from/to control network $ipfw add 510 allow all from $vtc to any $ipfw add 520 allow all from any to $vtc # нет нужды - пусть ходит к локальному dns # $ipfw add 700 allow udp from any to any 53 # $ipfw add 700 allow udp from any 53 to any # мочим фрагментированные icmp $ipfw add 800 deny icmp from any to any frag $ipfw add 810 allow icmp from any to any # вызываем файл описания роутера . $rules # всё остальное низзя $ipfw add 65000 deny all from any to any [EOF] % cat /usr/local/etc/router # # Файл описания роутера # # эти интерфейсы не имеют подключенных пользователей backbone ed1 # список клиентов - на самом деле он очень длинный ;-) client 2.3.4.1 client 2.3.4.2 client 2.3.4.3 # список серверов и номеров портов server 3.4.5.1 70 200 204 195 server 3.4.5.2 80 21 [EOF} Есть ещё некоторые мелочи (нефиг traceroute просто так ходить :) и back holes (ну надо...) но их можно обсудить отдельно. Если есть какой-то интерес, то могу попричёсывать текущую версию в портабельный вид... -- Игорь Hиколаев --- ifmail v.2.12.os.sensi * Origin: нэ прыгодылась (2:5030/266@fidonet)

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

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




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