Kucher2 122 Опубликовано: 2008-02-07 14:19:41 Share Опубликовано: 2008-02-07 14:19:41 Прошу не ругать, в этом деле разбираюсь плохо, лишь в степени необходимости. Имеем сервер сети на 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-го и как это можно обойти? Как разрешить нормальное прохождение этих пакетов? Ссылка на сообщение Поделиться на других сайтах
Sanito 129 Опубліковано: 2008-02-07 14:56:45 Share Опубліковано: 2008-02-07 14:56:45 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 Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубліковано: 2008-02-07 15:07:50 Share Опубліковано: 2008-02-07 15:07:50 Маленький ликбез. natd меняет вид пакета. С исходящим пакетом такая ситуация... ДО диверта он такой: 10.0.0.1 -> <ип фтп сервака> ПОСЛЕ диверта он такой: <твой внешний ип> -> <ип фтп сервака> С входяшим пакетом такая ситуация... ДО диверта он такой: <ип фтп сервака> -> <твой внешний ип> ПОСЛЕ диверта он такой: <ип фтп сервака> -> 10.0.0.1 А по твоей ситуация получается следующее. Видать диверт входящего пакета идет после правила 20. Поэтому на 20 правиле входящий пакет имеет вид: <ип фтп сервака> -> <твой внешний ип>. И он не соответствует условию правила, поэтому пролетает его. А после диверта пакет принимает вид: <ип фтп сервака> -> 10.0.0.1 Но разрешающего правила на такой случай в фаерволе после диверта уже нет. Поэтому он попадает на 50 правило, которое его честно принимает и отфутболивает. Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2008-02-07 15:10:35 Автор Share Опубліковано: 2008-02-07 15:10:35 > Где 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) - проходит авторизацию, переходит в нужные каталоги, но затык происходит именно на стадии передачи файла на сервер. Просто висит и всё. Большое спасибо за помощь. Буду разбираться с правилами. Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас