The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"ipwf+natd видимость портов"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Информационная безопасность (Public)
Изначальное сообщение [Проследить за развитием треда]

"ipwf+natd видимость портов"  
Сообщение от wws (ok) on 02-Авг-07, 09:28 
Доброго времени суток!
Есть локалка+прокси в Инет. Пытаюсь настроить ipfw+natd на FreeBSD 6.1. Фря одним интерфейсом смотрит в локаль, другим в подстеть прокси. Прописываю правила, для проверки сканирую наружный интерфейс с прокси на наличие открытых портов. В логах пишет

ipfw: Deny TCP (IP Proxy):4858 (IP наружного интерфейса FreeBSD):21 in via dc0.

А сканер показывает 21 порт. Аналогично 80,110,25

rc.conf

defaultrouter="IP Proxy"
gateway_enable="YES"
inetd_enable="YES"
router="/sbin/routed"
router_enable="YES"
router_flags="-q"
rpcbind_enable="YES"
sshd_enable="YES"
# FIREWALL
tcp_extensions="NO"  
tcp_drop_synfin="YES"
firewall_enable="YES"
firewall_logging="YES"
firewall_type="MyCompany"
natd_enable="YES"                
natd_interface="LanOut"              
natd_flags="-l -dynamic -m"

Правила IPFW
LanIn - Внутренний интерфейс
IpIn - IP внутреннего интерфейса
LanOut - Внешний интрефейс
IpOut - IP внешнего интерфейса
IpProxy - IP прокси
my - мой IP


${fwcmd} add 0005 check-state
# Разрешаем мне SSH
${fwcmd} add 0010 pass all from $my to $IpIn 22 in via $LanIn setup keep-state
${fwcmd} add 0015 pass all from any to any via lo0
# Разрешаем трафик только в пределах локальной сети
${fwcmd} add 0020 pass all from any to any via $LanIn
${fwcmd} add 0024 deny log tcp from any to $IpOut 80,21,110,25 in via $LanOut
${fwcmd} add 0025 divert natd ip from any to any in via $LanOut
# Разрешаем DNS
${fwcmd} add 0030 skipto 65000 log udp from $my,$IpOut to $IpProxy 53 limit src-addr 5        
${fwcmd} add 0045 skipto 65000 tcp from ${my} to any 3128 out via $LanOut setup limit src-addr 10
${fwcmd} add 64999 deny log all from any to any
${fwcmd} add 65000 divert natd ip from any to any out via $LanOut
${fwcmd} add 65001 pass log ip from any to any

Подскажите где ошибка.
И еще при использовании конструкции fwd пишет ошибку ipfw: getsockopt(IP_FW_ADD): Invalid argument

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

 Оглавление

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


1. "ipwf+natd видимость портов"  
Сообщение от Paul email(??) on 02-Авг-07, 10:18 
как-то все очень сложно... проще повесить нужные сервисы исключительно на внутренний интерфейс.

--
http://www.ppokrovsky.org

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

2. "ipwf+natd видимость портов"  
Сообщение от Paul email(??) on 02-Авг-07, 10:23 
>И еще при использовании конструкции fwd пишет ошибку ipfw: getsockopt(IP_FW_ADD): Invalid argument
>

А по поводу этого - ядро собрано с поддержкой IPFIREWALL?

--
http://www.ppokrovsky.org

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

3. "ipwf+natd видимость портов"  
Сообщение от wws (ok) on 02-Авг-07, 10:54 
Вот настройки ядра

options         MROUTING                # Multicast routing
options         PIM                     # Protocol Independent Multicast
options         IPFIREWALL              #firewall
options         IPFIREWALL_VERBOSE      #enable logging to syslogd(8)
options         IPFIREWALL_VERBOSE_LIMIT=5      #limit verbosity
#options        IPFIREWALL_DEFAULT_TO_ACCEPT    #allow everything by default
options         IPFIREWALL_FORWARD      #packet destination changes
options         IPFIREWALL_FORWARD_EXTENDED     #all packet dest changes
#options        IPV6FIREWALL            #firewall for IPv6
#options        IPV6FIREWALL_VERBOSE
#options        IPV6FIREWALL_VERBOSE_LIMIT=10
#options        IPV6FIREWALL_DEFAULT_TO_ACCEPT
options         IPDIVERT                #divert sockets
#options        IPFILTER                #ipfilter support
#options        IPFILTER_LOG            #ipfilter logging
#options        IPFILTER_LOOKUP         #ipfilter pools
#options        IPFILTER_DEFAULT_BLOCK  #block all packets by default
options         IPSTEALTH               #support for stealth forwarding
options         TCPDEBUG

Дефолтом все запрещено. Если бы ядро было собрано без поддрежки ipfw, то как бы я видел логи блокированных пакетов.
В том-то и дело, что сервисов никаких нет.


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

4. "ipwf+natd видимость портов"  
Сообщение от wws (ok) on 02-Авг-07, 13:21 
Проблемка с портами решилась.

Осталось понять, почему не удается применить конструкцию fwd.


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

5. "ipwf+natd видимость портов"  
Сообщение от DN (ok) on 02-Авг-07, 17:31 
>Проблемка с портами решилась.
>
>Осталось понять, почему не удается применить конструкцию fwd.

Потому-что ядро без опции
options         IPFIREWALL_FORWARD

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

6. "ipwf+natd видимость портов"  
Сообщение от ppokrovsky email on 02-Авг-07, 17:55 
>>Проблемка с портами решилась.
>>
>>Осталось понять, почему не удается применить конструкцию fwd.
>
>Потому-что ядро без опции
>options         IPFIREWALL_FORWARD

так-то с опцией вроде
options         IPFIREWALL_FORWARD      #packet destination changes

Автору треда: ядро пересобирали после установки?

--
http://www.ppokrovsky.org

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

7. "ipwf+natd видимость портов"  
Сообщение от wws (??) on 03-Авг-07, 04:50 
>Автору треда: ядро пересобирали после установки?

Ядро не пересобирал. Опции были активны при установке.

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

8. "ipwf+natd видимость портов"  
Сообщение от DN (ok) on 03-Авг-07, 11:39 
>>Автору треда: ядро пересобирали после установки?
>
>Ядро не пересобирал. Опции были активны при установке.

Опции options         IPFIREWALL_FORWARD
в GENERIC при установке с дистрибутива нет.

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

9. "ipwf+natd видимость портов"  
Сообщение от Paul email(??) on 03-Авг-07, 13:43 
>>>Автору треда: ядро пересобирали после установки?
>>
>>Ядро не пересобирал. Опции были активны при установке.
>
>Опции options         IPFIREWALL_FORWARD
>в GENERIC при установке с дистрибутива нет.

точно. предполагаю автор получил установленный сервер, в котором ядро было сконфигурировано, но не пересобрано, либо пересобрано, но не установлено, либо установлено, но не то.

--
http://www.ppokrovsky.org

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

10. "ipwf+natd видимость портов"  
Сообщение от wws (??) on 30-Авг-07, 05:49 
Спасибо всем, проблема решилась пересборкой ядра. Предлагаю полный ответ на свой вопрос, дабы на эти грабли больше не попадались.
Итак,
    либо dmesg, либо ee /var/log/messages
находим сообщение подобное следующему
ipfw2 (+ipv6) initialized, divert loadable, rule-based forwarding disabled, default to deny, lo
rule-based forwarding disabled - вот оно. Т.е ядро не поддерживает констукцию fwd.

Будем конфигурить ядро.
cd /usr/src/sys/i386/conf - путь может отличаться.
cp GENERIC MYKERNEL - сохраняем текущий конфигурационный файл ядра GENERIC в MYKERNEL
ee /usr/src/sys/i386/conf/MYKERNEL - редактируем(просматриваем) конфиг, для fwd там должна присутствовать следующая строка.
options         IPFIREWALL_FORWARD
если необходимо, то и
options         IPFIREWALL_FORWARD_EXTENDED
у меня, например вот так
############################################# MY SETTING ############################
options         IPFIREWALL              # Firewall
options         IPFIREWALL_VERBOSE      # Print information about
options         IPFIREWALL_FORWARD
options         IPFIREWALL_FORWARD_EXTENDED
options         IPSTEALTH               # Support stealth forwarding
options         IPDIVERT                # Divert IP sockets
options         DUMMYNET                # Bandwidth limiter
options         IPSEC                   # IP security protocol
options         IPSEC_ESP               # IP security crypto
#####################################################################################

Теперь необходимо собрать ядро, процедура довольно утомительная
cd /usr/src
make buildkernel KERNKONF=MYKERNEL
теперь можно курить час, полтора

Потом устанавливаем ядро
make installkernel KERNCONF=MYKERNEL

Перегружаемся.
ВСЕ!!!
Данная инфа находится здесь http://www.freebsd.org/doc/ru/books/handbook/book.html

Я привел лишь сжатые выдержки, относящиеся к указанной проблеме.
УДАЧИ!

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

11. "ipwf+natd видимость портов"  
Сообщение от greenwar (ok) on 13-Сен-07, 12:29 
>Теперь необходимо собрать ядро, процедура довольно утомительная
> cd /usr/src
> make buildkernel KERNKONF=MYKERNEL
> теперь можно курить час, полтора

странно.. если сделать так:
cd /sys/i386/conf/
ee MYKERNEL
config MYKERNEL
cd ../compile/MYKERNEL
make depend && make && make install
процедура занимает 10 мин на машинах за $300
т.е. ниже среднего

P.S. я сам только с 3 раза правильно скомпилировал ядро :)

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

12. "ipwf+natd видимость портов"  
Сообщение от Gremlin19 on 13-Сен-07, 15:17 
>[оверквотинг удален]
>> make buildkernel KERNKONF=MYKERNEL
>> теперь можно курить час, полтора
>
>странно.. если сделать так:
>cd /sys/i386/conf/
>ee MYKERNEL
>config MYKERNEL
>cd ../compile/MYKERNEL
>make depend && make && make install
>процедура занимает 10 мин на машинах за $300

не проблема, загадка:

пересобирал ядро два раза (на разных машинах), везьде пользовался конструкцией "make depend && make && make install"
Ядро работает, но(!) в
$ uname -a
FreeBSD bsd 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Wed Apr 18 19:34:26 MSD 2007     adm@ourhost.ourdomain:/usr/obj/usr/src/sys/mykernel  i386

должен был измениться порядковый номер (сейчас #0).

Лечится?

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

13. "ipwf+natd видимость портов"  
Сообщение от greenwar (ok) on 17-Сен-07, 13:56 
не, всё-таки самый правильный способ:
#cd /sys/i386/conf
#cp GENERIC anyname
#ee anyname
#cd /usr/src
#make buildkernel KERNCONF=anyname
#make installkernel KERNCONF=anyname

или можно сразу: #make kernel KERNCONF=anyname

итого, с 4го раза.. :D

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

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

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




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

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