Ответы пользователя по тегу ipfirewall
  • Ка написать правило ipfw для rspamd?

    athacker
    @athacker
    Ну из это ошибкии вообще никак не следует, что файрвол тут при делах :-)
    Ответ написан
    Комментировать
  • Как организовать два активных канала интернет, FreeBSD 11?

    athacker
    @athacker
    Опция IPDIVERT в ядре лишняя, она не нужна для работы ядерного NAT. Мешать она не мешает, но на всякий случай имейте в виду -- её можно спокойно убрать.

    Первый fwd (правило 600) -- тоже не нужен, у вас и так трафик будет улетать в шлюз по умолчанию, и без этого правила.

    А не работает у вас потому, что до второго NAT-а дело не доходит никогда. Схема такая:

    1. Пришёл пакет из интернета (допустим, с внешнего IP ZZZ) на X2:3389.
    2. Первый NAT его поймал и поменяв DST IP на 192.168.0100, отправил пакет в локалку.
    3. Хост 192.168.0.100 на него ответил, и отправил ответ через свой шлюз по умолчанию (это ваша фряха).
    4. Фряха получила пакет от клиента, предназначенный для некоего внешнего адреса ZZZ. Осознала, что он предназначен для внешнего адреса, и НАПРАВИЛА ЕГО В СВОЙ DEFAULT GW. А default GW у неё -- это шлюз на стороне провайдера 1. В сторону этого провайдера смотрит интерфейс tun0
    5. Дальше пакет идёт по правилам файрвола и натыкается на правило: $cmd add 1100 nat 1 ip from any to any via tun0. Пакет под него подпадает, так как он системой отправлен через tun0. Соответственно, согласно этому правилу пакет попадает в NAT, и его SRC IP меняется с 192.168.0.100 на X2.
    6. Дальнейшая обработка продолжается (так как one_pass=0), но мы уже получили что? Что у нас есть исходящий пакет (после обработки первым натом) с IP-адреса X2, предназначенный для внешнего адреса ZZZ и улетающий через интерфейс tun0. Соответственно, второй NAT его не обрабатывает, так как под его условия (via tun1) этот пакет уже не попадает. Поэтому пакет дальше просто уходит в сторону шлюза X1, и всё


    В вашем случае самым простым способом будет выдать хосту 192.168.0.100 ещё один IP-шник (скажем, 192.168.0.101), и через провайдера 2 заворачивать пакеты именно на него. Тогда можно будет сделать так:

    $cmd nat 1 config log if tun0 reset same_ports deny_in redirect_port tcp 192.168.0.100:3389 3389
    $cmd add 1100 nat 1 ip from 192.168.0.100 to any via tun0

    # Второй NAT
    $cmd nat 2 config log if tun1 reset same_ports deny_in redirect_port tcp 192.168.0.101:3389 3389
    $cmd add 1200 nat 2 ip from 192.168.0.101 to any via tun1

    $cmd add 1300 fwd YYY.YYY.YYY.YY1 ip from YYY.YYY.YYY.YY2 to any out via tun0


    Правила схематичные, и не учитывают, что нужен обычный нат для всех остальных клиентов. Просто демонстрация, для понимания логики.
    Ответ написан
    3 комментария
  • Как в Nas4Free сделать перенаправление для анонсеров рутрекера?

    athacker
    @athacker
    Нужно делать DST NAT, коллега выше вам правильно ответил.

    На IPFW это можно попробовать реализовать так:

    ${cmd} add nat 1 tcp from <локальная_подсеть_или_IP> to 195.82.146.120/30 80
    ${cmd} nat 1 config if <внешний_интерфейс> redirect_port tcp 195.82.146.120:80 163.172.167.207:3128 \
    redirect_port tcp 195.82.146.121:80 163.172.167.207:3128 \
    redirect_port tcp 195.82.146.122:80 163.172.167.207:3128 \
    redirect_port tcp 195.82.146.123:80 163.172.167.207:3128
    Ответ написан
  • Как задать конфигурацию с несколькими NAT через ядерный NAT?

    athacker
    @athacker
    Зачем вам вообще правила файрвола для обработки трафика из второй локалки? Настройте маршрутизацию нормально, и вам вообще не нужен будет второй NAT.
    Ответ написан
    Комментировать
  • Как сконфигурировать natd на работу с несколькими интерфейсами?

    athacker
    @athacker
    natd уже неактуален. Юзайте ядерный nat. Там можно несколько инстансов с разными настройками поднимать. man ipfw на предмет примеров использования NAT.
    Ответ написан
    Комментировать
  • Как работает setup и keep-state в IPFW?

    athacker
    @athacker
    setup -- это не обязательное ключевое слово. setup нужно использовать только тогда, когда вам зачем-то нужно отловить именно момент установки TCP-сессии, и что-то сделать с этим соединением (или с самим SYN-пакетом) в дальнейшем. Иными словами, если в правиле есть setup, то оно будет применяться только для TCP-пакетов с установленным флагом SYN. Это самый первый пакет в TCP-сессии, с его помощью клиент запрашивает установку соединения.

    В данном случае, насколько я понимаю, целью использования setup является создание динамического правила на основе первого же пакета в TCP-соединении (SYN-пакета), и чтобы все дальнейшие пакеты в рамках этого соединения больше не попадали в правила, где проверяются порты и создаются динамические правила.
    Ответ написан
  • Распределение трафика + Кэширующий прокси Squid, как грамотно, без ограничений, забирать объекты из кэша?

    athacker
    @athacker
    Файрвол понятия не имеет, откуда сквид взял объект -- из кэша или из интернета скачал. И никогда это не узнает -- у него нет таких механизмов.

    Если хотите, чтобы из кэша объекты отдавались быстро -- настраивайте ограничение скорости на delay pools в сквиде. И только для тех пользователей, которые не пользуются сквидом, ограничивайте скорость файрволом.
    Ответ написан
    Комментировать
  • Squid 3.5.10 FATAL: Received Segment Violation...dying?

    athacker
    @athacker
    Host header forgery означает, что со стороны клиента прилетел запрос на
    IP, на котором нет того домена, который фигурирует в поле "Host"
    HTTP-запроса. Сквид резолвит имя домена из поля host и сверяет список
    полученных IP на предмет наличия там того IP, на который ломится клиент.
    Если такого IP в списке нет, то сквид отбивает такой запрос. Но в
    обработчике этой ботвы есть баг:
    bugs.squid-cache.org/show_bug.cgi?id=4099

    Фикса для этого бага пока нет, есть парочка костылей, которые помогают снизить
    вероятность срабатывания защиты от host header forgery.
    Ответ написан
    6 комментариев
  • Как сконфигурировать IPFW с перенаправлением DNS трафика?

    athacker
    @athacker
    IPFW и DNS сервер на одном сервере работают, или на разных?
    Ответ написан