Kucher2 122 Posted 2008-02-07 14:19:41 Share Posted 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-го и как это можно обойти? Как разрешить нормальное прохождение этих пакетов? Link to post Share on other sites
Sanito 129 Posted 2008-02-07 14:56:45 Share Posted 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 Link to post Share on other sites
XoRe 0 Posted 2008-02-07 15:07:50 Share Posted 2008-02-07 15:07:50 Маленький ликбез. natd меняет вид пакета. С исходящим пакетом такая ситуация... ДО диверта он такой: 10.0.0.1 -> <ип фтп сервака> ПОСЛЕ диверта он такой: <твой внешний ип> -> <ип фтп сервака> С входяшим пакетом такая ситуация... ДО диверта он такой: <ип фтп сервака> -> <твой внешний ип> ПОСЛЕ диверта он такой: <ип фтп сервака> -> 10.0.0.1 А по твоей ситуация получается следующее. Видать диверт входящего пакета идет после правила 20. Поэтому на 20 правиле входящий пакет имеет вид: <ип фтп сервака> -> <твой внешний ип>. И он не соответствует условию правила, поэтому пролетает его. А после диверта пакет принимает вид: <ип фтп сервака> -> 10.0.0.1 Но разрешающего правила на такой случай в фаерволе после диверта уже нет. Поэтому он попадает на 50 правило, которое его честно принимает и отфутболивает. Link to post Share on other sites
Kucher2 122 Posted 2008-02-07 15:10:35 Author Share Posted 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) - проходит авторизацию, переходит в нужные каталоги, но затык происходит именно на стадии передачи файла на сервер. Просто висит и всё. Большое спасибо за помощь. Буду разбираться с правилами. Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now