Kiev1.org Карта сайта Файлы Фотографии Киева
  
Реклама:

добавление лазерной резки металла москва






Разделы
 
 Sysadmin
 Антиглобалисты
 Ереси и секты
 Катастрофы
 Компьютерные новости
 Непроверенное
 О проекте
 О фотогалерее
 Политика и власть
 Православие
 Предприятия Украины
 Протесты Людей против нового мирового концлагеря
 Разное
 Россия
 Старец Паисий 1924-1994
 Стояние за Истину
 Суды в Украине
 Тайна беззакония
 экуменизм


Внимание! Читая пророчества на этом сайте помните что достоверность трудно проверить и все может во времени изменяться - самое главное думать своей головой и не верить легкомысленно всему что говорят, особенно советское телевидение
"О дне же том, или часе, никто не знает, ни Ангелы небесные, ни Сын, но только Отец (Мк. 13, 32)"

Как использовать natd



Как использовать natd и stateful ipfw одновременно?
Проблема: Трансляция адресов производится правилами divert в ipfw. В случае использования стандартных правил из /etc/firewall, фильтрация осуществляется после трансляции адресов.

пакет -> nat -> фильтр
1 2 3

После трансляции, на шаге 3, у исходящих пакетов будет адрес внешний_ip_машины->какой-то_внешний_адрес, а у входящих - какойто_внешний_адрес->внутренний_адрес.
Если теперь добавить правило с keep-state для исходящих пакетов, то входящие пакеты оно не пропустит из-за несовпадения адресов. Правильное решение этой проблемы состоит в трансляции адресов до ipfw на входе и после ipfw на выходе, так, например, построен ipfilter.
Решение: Имитация правильного порядка трансляции средствами ipfw. Пример правил:

# pass traffic through local interfaces fisrt
add pass all from any to any via $internal_if

# nat incoming packets
add divert natd all from any to $natip in via $natif

# then check state
add check-state

# check whatever you need here, but don't pass
packets subject to nat
# they can be safely deined here though

# remember state for sessions subject to nat (*)
add skipto 60000 all from $internal_network to
any out via $natif keep-state

# deny all by default
add deny log all from any to any

# nat outgoing packets, the rule must be the same as in step (*)
add 60000 divert natd all from $internal_network
to any out via $natif

# the packets that make it here are allowed by rule (*)
add pass all from any to any

Таким способом, nat входящих пакетов делается до всех проверок, исходящие пакеты обрабатываются последними, и при всем этом используется еще и keep-state.


Создано: Gleb Smirnoff





Внимание! Читая пророчества на этом сайте помните что достоверность трудно проверить и все может во времени изменяться
"О дне же том, или часе, никто не знает, ни Ангелы небесные, ни Сын, но только Отец (Мк. 13, 32)"