Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
OSzone.net Видео Unix Интернет Firewall Патч для работы ipfw stateful + ipnat RSS

Патч для работы ipfw stateful + ipnat

Текущий рейтинг: 5 (проголосовало 3)
 Посетителей: 909 | Просмотров: 1140 (сегодня 0)  Шрифт: - +
достаточно ли для _полноценной_ работы subj переместить блок с fr_checkp
на позицию после метки pass? оно работает, но у меня нет возможности
тестирование по полной программе устроить.

переносить в netinet/ip_input.c, если надо иметь в ipfw внешние адреса
(до nat на input и после nat на output); в netinet/ip_output.c, если надо
иметь в ipfw внутренние адреса (после nat на input и до nat на output). 
например такой вот патчик, в ipfw имеем внутренние адреса

·-───────────────[ Begin of 1.diff ]──────────────--·
-+- netinet/ip_output.c.std Sat Mar 13 17:44:24 2004
+++ netinet/ip_output.c Fri Apr  2 19:25:21 2004
@@ -724,14 +724,6 @@
     * - Wrap: fake packet`s addr/port <unimpl.>
     * - Encapsulate: put it in another IP and send out. <unimp.>
     */
-   if (fr_checkp) {
-       struct  mbuf    *m1 = m;
-
-       if ((error = (*fr_checkp)(ip, hlen, ifp, 1, &m1)) || !m1)
-           goto done;
-       ip = mtod(m = m1, struct ip *);
-   }
-
    /*
     * Check with the firewall...
     * but not if we are already being fwd`d from a firewall.
@@ -964,6 +956,15 @@
    }

 pass:
+
+   if (fr_checkp) {
+       struct  mbuf    *m1 = m;
+
+       if ((error = (*fr_checkp)(ip, hlen, ifp, 1, &m1)) || !m1)
+           goto done;
+       ip = mtod(m = m1, struct ip *);
+   }
+
    /* 127/8 must not appear on wire - RFC1122. */
    if ((ntohl(ip->ip_dst.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET ||
        (ntohl(ip->ip_src.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET) {
·-───────────────[ End of 1.diff ]────────

Vladimir
Иcточник: http://www.opennet.ru  •  Опубликована: 05.03.2005
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:  


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.