Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Igor Nikolaev                        2:5030/266     10 Jan 2001  12:38:51
 To : Alex Korchmar
 Subject : Re: I: Интерактивная настройка файрвола
 -------------------------------------------------------------------------------- 
 
 Alex Korchmar <Alex_Korchmar@p65.f423.n5020.z2.fidonet.org> wrote:
 
 > опять же - поверю, когда увижу работающее. Желательно - не на
 > уровне домашней машины  - для нее есть та тулза, которая в subject.
 
 Может кому поможет, я выкинул конкретику, надеюсь нигде не
 опечатавшись. Всё равно патчить по месту, gpl :-)
 Это от фри потому как нефиг на линуксе роутеры строить.
 
 % cat /etc/rc.firewall
 #!/bin/sh
 # Unifyed firewall configuration
 
 # control network
 vtc="правильная_сетка с серверами/24"
 mail="почтовая машина"
 mail_ports="23,25,110,540"
 
 # в этом каталоге лежит файл с описанием роутера, см ниже
 rules=/usr/local/etc/ipfw/`/bin/hostname -s`
 
 # запуск /etc/rc.firewall echo | less для отладки
 if [ "${1}" = "echo" ]
 then ipfw="/bin/echo"
 else ipfw="/sbin/ipfw"
 fi
 
 # interface ip number by name
 ip () { ifconfig $1 | grep inet | awk '{ print $2; }'; }
 
 # start list number
 rule_num=1000
 # pass and deny rules
 pass () { rule_num=$(($rule_num+10)); $ipfw add $rule_num pass $*; }
 deny () { rule_num=$(($rule_num+10)); $ipfw add $rule_num deny $*; }
 
 # backbone
 backbone () { pass all from any to any via $1; }
 
 # client segment
 segment () {
   pass ip from `ip $1` to any via $1
   pass ip from any to `ip $1` via $1
 }
 
 # any access
 any () {
   pass all from $1 to any
   pass all from any to $1
 }
 
 # free acces from any interface from list to any
 lan () {
   local i j
   for i in $*; do
     pass ip from `ip $i` to any via $i
     pass ip from any to `ip $i` via $i
     for j in $*; do
       if [ $i != $j ]; then
         pass all from any to any out recv $i xmit $j
       fi
     done
   done
 }
 
 # client workstation: only outgoing tcp
 client () {
   pass ip from $1 to any
   pass tcp from any to $1 established
 }
 
 # only mail workstation
 mailws () {
   pass tcp from $1 to $mail $mail_ports
   pass tcp from $mail $mail_ports to $1
 }
 
 # server: only incoming tcp on port list + control snmp
 server () {
   local ip port
   ip=$1
   shift
   for port in $* 
   do
     pass tcp from any to $ip $port
     pass tcp from $ip $port to any established
   done
 }
 
 # не забудьте default accept в ядре
 $ipfw -f flush
 
 # default правила, чините сами чего как кому надо ;-)
 pass all from any to any via lo0
 deny all from any to 127.0.0.0/8
 pass udp from any to any 33434-33523
 pass all from $vtc to any
 pass all from any to $vtc
 pass tcp from any to any established
 # named
 pass udp from any to $vtc 53
 pass udp from $vtc 53 to any
 pass udp from $vtc to any 53
 pass udp from any 53 to $vtc
 # snmp
 pass udp from any 161 to $vtc
 pass udp from $vtc to any 161
 # icmp
 deny icmp from any to any frag
 pass icmp from any to any
 # bootp
 pass udp from any to any 67
 pass udp from any to any 68
 
 # Router rules
 . $rules
 
 $ipfw add 65000 deny all from any to any
 %
 
 Конфигурация конкретной машины выглядит как-нибудь вот так:
 
 % less /usr/local/etc/ipfw/имя_роутера
 backbone ed0
 backbone ed1
 lan ed2 ed3 ed4
 segment ed5
 segment ed6
 client $ip
 client $ip
 server $ip smtp pop3 imap4 http
 server $ip 22 23 25 4000-4010
 mailws $ip
 %
 
 $ip это ip адрес клиента.
 *Hельзя* использовать fqdn вместо ip - так как
 роутинг в момент загрузки может ещё не встать.
 
 Hа самом деле это старый вариант, сейчас я это
 дело на perl'е переписал. Hо для небольшого
 числа роутеров (десяток) он вполне пригоден.
 
 -- 
 Игорь Hиколаев
 --- ifmail v.2.12.os.sensi
  * Origin: http://www.spb.edu (2:5030/266@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: I: Интерактивная настройка файрвола   Alex Korchmar   10 Jan 2001 01:26:21 
 Re: I: Интерактивная настройка файрвола   Igor Nikolaev   10 Jan 2001 12:38:51 
 Re: I: Интерактивная настройка файрвола   Victor Wagner   10 Jan 2001 11:27:52 
Архивное /ru.linux/134167479cca3.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional