Перейти до

Ipfw - как такое возможно?


Рекомендованные сообщения

Прошу не ругать, в этом деле разбираюсь плохо, лишь в степени необходимости.

Имеем сервер сети на FreeBSD, 2 ИФ.

Как водится - один смотрит в мир (rl1), другой в локалку (rl0).

Стоит NAT, Squid с принудительным проксированием.

 

Упрощённо говоря, - имеем такое правило:

 

10 divert 8668 ip from 10.0.0.1 to any

20 allow ip from any to 10.0.0.1

30 allow ip from 10.0.0.1 to any

 

50 deny log ip from any to any

 

А теперь я из локалки пытаюсь отправить файл по FTP (через виндовую консоль, не через FTP-клиент) в Инет и вижу в логах такое:

 

ipfw: deny 50 TCP xx.xx.xx.xx:20 10.0.0.1:5001 in via rl1

 

Подскажите пожалуйста, разве правила 20 и 30 не разрешают тотальное прохождение ip-пакетов в отношении 10.0.0.1? Почему пакеты в этом случае "проваливаются" до 50-го и как это можно обойти? Как разрешить нормальное прохождение этих пакетов?

Ссылка на сообщение
Поделиться на других сайтах

10.0.0.1 - это адрес, за которым натишь, я верно понял?

 

Тогда где обратный диверт?

 

Где divert 8668 ip from any to 10.0.0.1 ?

 

Хотя лучше конечно запихнуть в какую-то таблицу (скажем, пятую) все локальные подсети (192.168.0.0/24, 10.0.0.0/8 и т.д.) и написать правило divert 8668 ip from not 'table(5)' to 10.0.0.1

Ссылка на сообщение
Поделиться на других сайтах

Маленький ликбез.

natd меняет вид пакета.

 

С исходящим пакетом такая ситуация...

ДО диверта он такой:

10.0.0.1 -> <ип фтп сервака>

ПОСЛЕ диверта он такой:

<твой внешний ип> -> <ип фтп сервака>

 

С входяшим пакетом такая ситуация...

ДО диверта он такой:

<ип фтп сервака> -> <твой внешний ип>

ПОСЛЕ диверта он такой:

<ип фтп сервака> -> 10.0.0.1

 

А по твоей ситуация получается следующее.

Видать диверт входящего пакета идет после правила 20.

Поэтому на 20 правиле входящий пакет имеет вид:

<ип фтп сервака> -> <твой внешний ип>.

И он не соответствует условию правила, поэтому пролетает его.

А после диверта пакет принимает вид:

<ип фтп сервака> -> 10.0.0.1

 

Но разрешающего правила на такой случай в фаерволе после диверта уже нет.

Поэтому он попадает на 50 правило, которое его честно принимает и отфутболивает.

Ссылка на сообщение
Поделиться на других сайтах

> Где divert 8668 ip from any to 10.0.0.1 ?

 

Выше есть правило:

 

5 divert 8668 ip from any to Внеший_IP_сервера.

 

Подсетей нет.

 

>XoRe

 

Спасибо, очень доходчиво. Грабли я пока не нашёл, но после установки правил вида:

 

35 allow ip from any to адрес_FTP_сервера

40 allow ip from адрес_FTP_сервера to any

 

..всё заработало. Странно, что и без этих правил - FTP-клиенты работают на ура (например Total Commander или Far). Функция не работает только из под консоли винды (ftp) - проходит авторизацию, переходит в нужные каталоги, но затык происходит именно на стадии передачи файла на сервер. Просто висит и всё.

 

Большое спасибо за помощь. Буду разбираться с правилами.

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...