The OpenNET Project / Index page

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

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

"ipfw запрещать - запрещает, но не разрешает" 
Сообщение от billy emailИскать по авторуВ закладки(ok) on 05-Май-05, 13:05  (MSK)
Уважаемые люди! Это настолько распространенный и тольком не понятный вопрос, что мне стыдно, НО! подскажите:
Работает nat, ipfw
При минимальном конфиге

add divert natd all from any to any via xl1
add allow all from any to any

все (инет, почта) работает. По умолчанию, все запрещено (65535)

Если в ето правило добавить например запрет для определенного хоста

add divert natd all from any to any via xl1
add deny ip from 192.168.2.17 to any
add allow all from any to any

то соотв. комп в инет не ходит (ура, победа!)

но если я делаю такой-же конфиг, но пытаюсь сначала что-то разрешить, а остальное - запретить, то ничего не работает. Вот скрипт:

#!/bin/sh

ipfw='/sbin/ipfw -q'
lilia='192.168.2.17'
billy='192.168.2.16'
ifout='xl1'
iflocal='xl0'

${ipfw} flush
${ipfw} add 100 check-state

${ipfw} add 200 allow ip from any to any via lo0
${ipfw} add 300 deny ip from any to 127.0.0.0/8
${ipfw} add 400 deny ip from 127.0.0.0/8 to any

${ipfw} add 500 divert natd all from any to any via ${ifout}

${ipfw} add 600 deny ip from ${lilia} to any
${ipfw} add 700 deny ip from any to ${lilia}

${ipfw} add 800 allow all from ${billy} to any
${ipfw} add 900 allow all from any to ${billy}

${ipfw} add 10000 deny all from any to any

billy - это моя машина. в инет я с нее ходить не могу, но, например, по ssh к нашему серваку с ipfw могу подключиться.
что мне надо изменить? Ведь для компа billy я разрешаю все.

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

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "ipfw запрещать - запрещает, но не разрешает" 
Сообщение от Moralez emailИскать по авторуВ закладки(??) on 06-Май-05, 08:55  (MSK)
check-state мешает. Делайте или

правила с check-state
divert natd
правила с setup/established

или divert natd в самый верх...

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

2. "ipfw запрещать - запрещает, но не разрешает" 
Сообщение от billy emailИскать по авторуВ закладки(??) on 06-Май-05, 09:16  (MSK)
>check-state мешает. Делайте или
>
>правила с check-state
>divert natd
>правила с setup/established
>
>или divert natd в самый верх...

Вот мой работающий конфиг.

ipfw -q -f flush
cmd="ipfw -q add"
skip="skipto 800"
pif="xl1"     # public interface name of NIC

$cmd 005 allow all from any to any via xl0
$cmd 010 allow all from any to any via lo0
$cmd 014 divert natd ip from any to any in via $pif
$cmd 015 check-state
$cmd 020 $skip tcp from any to 195.5.128.130 53 out via $pif setup keep-state
$cmd 040 $skip tcp from any to any 80 out via $pif setup keep-state
$cmd 050 $skip tcp from any to any 443 out via $pif setup keep-state
$cmd 060 $skip tcp from any to any 25 out via $pif setup keep-state
$cmd 061 $skip tcp from any to any 110 out via $pif setup keep-state
$cmd 070 $skip tcp from me to any out via $pif setup keep-state uid root
$cmd 080 $skip icmp from any to any out via $pif keep-state
$cmd 090 $skip tcp from any to any 37 out via $pif setup keep-state
$cmd 100 $skip tcp from any to any 119 out via $pif setup keep-state
$cmd 110 $skip tcp from any to any 22 out via $pif setup keep-state
$cmd 120 $skip tcp from any to any 43 out via $pif setup keep-state
$cmd 130 $skip udp from any to any 123 out via $pif keep-state

$cmd 300 deny all from 192.168.0.0/16  to any in via $pif  #RFC 1918 private IP
$cmd 301 deny all from 172.16.0.0/12   to any in via $pif  #RFC 1918 private IP
$cmd 302 deny all from 10.0.0.0/8      to any in via $pif  #RFC 1918 private IP
$cmd 303 deny all from 127.0.0.0/8     to any in via $pif  #loopback
$cmd 304 deny all from 0.0.0.0/8       to any in via $pif  #loopback
$cmd 305 deny all from 169.254.0.0/16  to any in via $pif  #DHCP auto-config
$cmd 306 deny all from 192.0.2.0/24    to any in via $pif  #reserved for docs
$cmd 307 deny all from 204.152.64.0/23 to any in via $pif  #Sun cluster
$cmd 308 deny all from 224.0.0.0/3     to any in via $pif  #Class D & E multicast

# Deny ident
$cmd 315 deny tcp from any to any 113 in via $pif

# Deny all Netbios service. 137=name, 138=datagram, 139=session
# Netbios is MS/Windows sharing services.
# Block MS/Windows hosts2 name server requests 81
$cmd 320 deny tcp from any to any 137 in via $pif
$cmd 321 deny tcp from any to any 138 in via $pif
$cmd 322 deny tcp from any to any 139 in via $pif
$cmd 323 deny tcp from any to any 81  in via $pif

# Deny any late arriving packets
$cmd 330 deny all from any to any frag in via $pif

# Deny ACK packets that did not match the dynamic rule table
$cmd 332 deny tcp from any to any established in via $pif

# Allow in standard www function because I have Apache server
$cmd 370 allow tcp from any to me 80 in via $pif setup limit src-addr 2

# Allow in secure FTP, Telnet, and SCP from public Internet
$cmd 380 allow tcp from any to me 22 in via $pif setup limit src-addr 2

# Reject & Log all unauthorized incoming connections from the public Internet
$cmd 400 deny log all from any to any in via $pif

# Reject & Log all unauthorized out going connections to the public Internet
$cmd 450 deny log all from any to any out via $pif

# This is skipto location for outbound stateful rules
$cmd 800 divert natd ip from any to any out via $pif
$cmd 801 allow ip from any to any

# Everything else is denied by default
# deny and log all packets that fell through to see what they are
$cmd 999 deny log all from any to any

Взял отсюда:
http://freebsd.vinf.ru/doc/en/books/handbook/firewalls-ipfw.html

Действительно, divert стоит выше check-state'a.
Не подскажите инфу поприличнее про этот check-state?
Очень много "воды", и кроме этого, не работающей "воды".

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

3. "ipfw запрещать - запрещает, но не разрешает" 
Сообщение от billy emailИскать по авторуВ закладки(ok) on 06-Май-05, 09:34  (MSK)
Ввиду большого кол-ва вопросов по данной теме (как правило, со стороны людей вроде меня :) ) привожу мои работающие конфиги:
/etc/rc.conf

gateway_enable="YES"
#x.x.x.x - ip шлюза, предоставленного провом
defaultrouter="x.x.x.x"
hostname="my_hostname"

ifconfig_xl0="inet 192.168.2.251  netmask 255.255.255.0"
ifconfig_xl1="inet x.x.x.y  netmask 255.255.255.248"

inetd_enable="YES"
kern_securelevel_enable="NO"
linux_enable="YES"
nfs_reserved_port_only="YES"
sendmail_enable="YES"
sshd_enable="YES"
usbd_enable="YES"

#natd
natd_enable="YES"
natd_interface="xl1"

#firewall
firewall_enable="YES"
firewall_type="/usr/local/etc/firewall.conf"
#firewall_type="OPEN"

#named
named_enable="YES"

Теперь ipfw-скрипт (/usr/local/etc/rc.d/firewall.sh):
Повторяю: взял отсюда http://freebsd.vinf.ru/doc/en/books/handbook/firewalls-ipfw.html

ipfw -q -f flush
cmd="ipfw -q add"
skip="skipto 800"
pif="xl1"     # public interface name of NIC

$cmd 005 allow all from any to any via xl0
$cmd 010 allow all from any to any via lo0
$cmd 014 divert natd ip from any to any in via $pif
$cmd 015 check-state
$cmd 020 $skip tcp from any to 195.5.128.130 53 out via $pif setup keep-state
$cmd 040 $skip tcp from any to any 80 out via $pif setup keep-state
$cmd 050 $skip tcp from any to any 443 out via $pif setup keep-state
$cmd 060 $skip tcp from any to any 25 out via $pif setup keep-state
$cmd 061 $skip tcp from any to any 110 out via $pif setup keep-state
$cmd 070 $skip tcp from me to any out via $pif setup keep-state uid root
$cmd 080 $skip icmp from any to any out via $pif keep-state
$cmd 090 $skip tcp from any to any 37 out via $pif setup keep-state
$cmd 100 $skip tcp from any to any 119 out via $pif setup keep-state
$cmd 110 $skip tcp from any to any 22 out via $pif setup keep-state
$cmd 120 $skip tcp from any to any 43 out via $pif setup keep-state
$cmd 130 $skip udp from any to any 123 out via $pif keep-state

$cmd 300 deny all from 192.168.0.0/16  to any in via $pif  #RFC 1918 private IP
$cmd 301 deny all from 172.16.0.0/12   to any in via $pif  #RFC 1918 private IP
$cmd 302 deny all from 10.0.0.0/8      to any in via $pif  #RFC 1918 private IP
$cmd 303 deny all from 127.0.0.0/8     to any in via $pif  #loopback
$cmd 304 deny all from 0.0.0.0/8       to any in via $pif  #loopback
$cmd 305 deny all from 169.254.0.0/16  to any in via $pif  #DHCP auto-config
$cmd 306 deny all from 192.0.2.0/24    to any in via $pif  #reserved for docs
$cmd 307 deny all from 204.152.64.0/23 to any in via $pif  #Sun cluster
$cmd 308 deny all from 224.0.0.0/3     to any in via $pif  #Class D & E multicast

# Deny ident
$cmd 315 deny tcp from any to any 113 in via $pif

# Deny all Netbios service. 137=name, 138=datagram, 139=session
# Netbios is MS/Windows sharing services.
# Block MS/Windows hosts2 name server requests 81
$cmd 320 deny tcp from any to any 137 in via $pif
$cmd 321 deny tcp from any to any 138 in via $pif
$cmd 322 deny tcp from any to any 139 in via $pif
$cmd 323 deny tcp from any to any 81  in via $pif

# Deny any late arriving packets
$cmd 330 deny all from any to any frag in via $pif

# Deny ACK packets that did not match the dynamic rule table
$cmd 332 deny tcp from any to any established in via $pif

# Allow in standard www function because I have Apache server
$cmd 370 allow tcp from any to me 80 in via $pif setup limit src-addr 2

# Allow in secure FTP, Telnet, and SCP from public Internet
$cmd 380 allow tcp from any to me 22 in via $pif setup limit src-addr 2

# Reject & Log all unauthorized incoming connections from the public Internet
$cmd 400 deny log all from any to any in via $pif

# Reject & Log all unauthorized out going connections to the public Internet
$cmd 450 deny log all from any to any out via $pif

# This is skipto location for outbound stateful rules
$cmd 800 divert natd ip from any to any out via $pif
$cmd 801 allow ip from any to any

# Everything else is denied by default
# deny and log all packets that fell through to see what they are
$cmd 999 deny log all from any to any

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

4. "ipfw запрещать - запрещает, но не разрешает" 
Сообщение от Moralez emailИскать по авторуВ закладки(??) on 06-Май-05, 10:43  (MSK)
Ужасы какие-то вы нам показываете... Столько однотипных строчек... Надо нормальные правила писать :)
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "ipfw запрещать - запрещает, но не разрешает" 
Сообщение от billy emailИскать по авторуВ закладки(ok) on 06-Май-05, 10:59  (MSK)
>Ужасы какие-то вы нам показываете... Столько однотипных строчек... Надо нормальные правила писать
>:)

так подскажите где посмотреть действующий нормальный конфиг для ipfw, чтоб учиться мона было.
вот сейчас бьюсь с проблемой: не пускает по ssh на сервер.
не могу понять. ведь стоит в самом начале правило
005 allow all from any to any via xl0
почему не пукает тогда?
я даже проверил по ssh на другой сервак зашел, который стоит за нашим.
ЧЕРЕЗ ipfw пропускает (правило 110 $skip tcp from any to any 22 out via $pif setup keep-state), а на мой не пускает!
почта работает, итнернет через nat - тож. А вот с ссаш  - фигня.
Подскажите, плз.
Я не гордый, могу правил и поубавить :)

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

6. "ipfw запрещать - запрещает, но не разрешает" 
Сообщение от billy emailИскать по авторуВ закладки(ok) on 06-Май-05, 11:18  (MSK)
При попытке подключиться по ssh к моему серверу появляется приглашение для ввода логина. После его ввода очень долго думает (если чуть дольше, то происходит дисконнект). Не могу понять, с чем связано.
Может, правило $cmd 005 allow all from any to any via xl0
в другое место поставить?
Или что?
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "ipfw запрещать - запрещает, но не разрешает" 
Сообщение от billy emailИскать по авторуВ закладки(ok) on 06-Май-05, 11:51  (MSK)
>При попытке подключиться по ssh к моему серверу появляется приглашение для ввода
>логина. После его ввода очень долго думает (если чуть дольше, то
>происходит дисконнект). Не могу понять, с чем связано.
>Может, правило $cmd 005 allow all from any to any via xl0
>
>в другое место поставить?
>Или что?

Нашел. Мешает правило 400 и 450.
$cmd 400 deny log all from any to any in via $pif
$cmd 450 deny log all from any to any out via $pif

Вопрос: если их (эти правила) убрать, то не бует ли дыры в защите?

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

8. "ipfw запрещать - запрещает, но не разрешает" 
Сообщение от billy emailИскать по авторуВ закладки(ok) on 13-Май-05, 11:26  (MSK)
если правила 400 и 450 активны, то не работает инет через squid
(пишет (60) Operation timed out)

natd работает (и, соотв., инет через нат тоже).
как определить, что мешает работе squid?

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

9. "ipfw запрещать - запрещает, но не разрешает" 
Сообщение от billy emailИскать по авторуВ закладки(ok) on 13-Май-05, 12:36  (MSK)
Проблему решил :)
Дело было в правиле номер 20.
$cmd 020 $skip tcp from any to any 53 out via $pif setup keep-state

Я его заменил на два правила:
$cmd 020 $skip udp from any to any 53 out via $pif
$cmd 021 $skip udp from any 53 to any in via $pif

ЗЫ Странно, что никто так и не попытался помочь. Кроме замечания Моралеза.

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


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

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




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

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