Некоректно работают правила firewall
-
Здравствуйте.
Pfsense 2.2.4
2 физических сетевых интерфейса.
LAN - 192.168.0.10
WAN - 10.0.0.23 сервера OpenVPN
10.0.8.0/24
10.0.10.0/32
10.0.11.0.321 канал PPPoE
10.15.4.146Все работало отлично, затем понадобилось сервер отключить и установить еще одну сетевую карту. Карточка не пошла, в итоге была изъята и сервер был запущен в старой конфигурации.
Как написано выше. В итоге после запуска потерялись настройки физ. интерфейсов. То есть после запуска в консоли запустился мастер и попросил ему указать где какая сетевая карта, ее адрес и куда она смотрит. Указал, что интересно настройки OpenVPN и PPPoE сохранились. После того как заново настроил интерфейсы, все заработало, но с небольшими оговорками.
1. Если пытаться пинговать из подсети 10.0.8.0/24 LAN, то трафик почему то идет через сеть PPPoE. 10.0.8.250 –> 10.15.4.146 ---> 192.168.0.160 Естественно пинг не идет.
2. Есть ftp сервер внешний, он пингуется, но подключиться к нему не получается, totam cоmmander зависает после команды PASS.
3. Все это произошло на предыдущей версии, обновил ее до 2.2.4. Все прошло нормально, но pfsense не до конца закачал новые версии пакетов, теперь постоянно висит окно в GUI о том что ждите, идет закачка пакетов. Как будто просто не может скачать их.
4. Так же в самом начале слетели настройки DHCP, но это сразу восстановил.В остальном вроде все нормально.
Бэкап естественно не делался, так что откатиться нет возможности. Как и нет возможности заново инсталировать чистую ОС и настроить, т.к. придется с нуля ставить OpenVPN и его настраивать. Делать новые сертификаты и распространять их по клиентам.Посмотрел правила nat, возможно ошибка именно в них:
Если выполнить в консоли команду pfctl -F all все начинает работать.
-
Добрый день.
Зайдите в меню "Interfaces - (assign)" и укажите еще раз какой интерфейс WAN и какой LAN.
Затем проверьте настройки firewall. -
Уже делал. После сброса правил firewall все отлично заработало, но вот после перезагрузки, вообще все перестало работать. Правила не загрузились, адрес шлюза по умолчанию не прописался. Проблема оказалась в пакете squidguard, точнее в одном из его файлов. После удаления всего что было связано с squid и squidguard pfsense запустился. Заново установил squid 3 и squidguard. Но выше обозначенные проблемы не ушли. Возможно подправить правила firewall не через GUI а с консоли?
Выявилось еще 2 проблемы:
1. Не могу подключиться к pfsense по SSH для передачи файлов.sshd[76414]: Accepted keyboard-interactive/pam for admin from 192.168.0.160 port 1568 ssh2
Ошибка именно при подключении через pscp.exe
2. С консоли pfsense не могу подключиться к ftp находящемуся в LAN.Can`t lookup 'open:192.168.0.3': servname not supported for ai_socktype
Хотя возможно это связано с тем, что ftp поднят под Win2008R2. C win машин к ftp могу подключиться.
-
Основная проблема с маршрутами из 10.0.8.0/24 в LAN решилась, в настройках соединения PPPoE в качестве интерфейса на котором он работает стоял LAN. "Interfaces - (assign) - PPPs". Сам PPPoE успешно поднимался, и даже пускал клиентов LAN в свою подсеть. Остались проблемы с FTP.
-
С FTP тоже нашел временное решение, сервер работает в пассивном режиме, поэтому временно для клиентов LAN разрешил доступ по портам 10000-65535. Но почему раньше fpt отлично работал без этого правила? На стороне сервера точно знаю ни чего не менялось, то есть проблема в pf. И появилась проблема с lightsquid, он не хочет запускаться, ругается на perl. Комманда Pkg_add -r perl не запускается, пишет command not found. Как установить perl в систему?
-
С FTP тоже нашел временное решение, сервер работает в пассивном режиме, поэтому временно для клиентов LAN разрешил доступ по портам 10000-65535.
Не надо так делать. В настройках FTP настройте диапазон портов для пассива. Затем эти же порты пробросьте на пф.
-
Проблема в том, что клиент самописный. У него просто txt файл где указаны имя сервера, логин, порт. Затем идет секция с указанием в какой папке ftp сервера скачать какие файлы, и куда их положить на локальной машинке. Если же подключится через total или FileZilla все отлично подключается. Понятно что проблема именно в этом клиенте, поставлю что нибудь другое.
Не надо так делать. В настройках FTP настройте диапазон портов для пассива. Затем эти же порты пробросьте на пф.
Мне не совсем ясно как задать диапазон для пассивного режима? Доступа к серверу ftp у меня нет, а в таком режиме работы сам сервер говорит клиенту на какой порт стучаться для передачи данных.
Клиент winPX так же не цепляется, как и самописный. Сейчас стоит правило которое разрешает соединения на ftp сервер по любым портам. NAT outbound стоит в auto. Может в нем проблема?
-
Мне не совсем ясно как задать диапазон для пассивного режима? Доступа к серверу ftp у меня нет, а в таком режиме работы сам сервер говорит клиенту на какой порт стучаться для передачи данных.
Обратитесь к тому , у кого такой доступ есть. Пускай в настройках ftp он посмотрит\настроит диапазон портов.
-
Это только в понедельник, если пустить трафик в обход pf то ftp работает отлично. Так же удается зацепиться с консоли pf. Проблема присутствует только для клиентов LAN. И то если использовать штатный клиент MS win, с другими клиентами (total, FileZilla) таких проблем нет.
-
Похоже что проблема с активным ftp.
Попробуйте в том же Total Commander изменить режим с активного на пассивный и затем наоборот и проверить. -
Похоже что проблема с активным ftp.
Вы правы. Проверил с total, стояла галочка пассивный режим. Снял, после установления соединения и попытки запроса списка каталогов соединение закрылось.
Как решить данную проблему?
-
Не перечитывал весь тред …
Вопрос в том, что не работает пассивный ftp с локалки через pf nat к удаленному хосту. Верно?
Если да, то установите пакет "FTP Client Proxy". Он поможет решить проблему. -
Пакет стоит, но не ясно как его настроить. Можно ссылку?
-
Ссылки нету.
Services - FTP client proxy
Ставим галочку "enabled".
"Local Interface" - LAN
И галочку "Rewrite Source to Port 20" - это как раз активный ftp. -
С FTP тоже нашел временное решение, сервер работает в пассивном режиме, поэтому временно для клиентов LAN разрешил доступ по портам 10000-65535. Но почему раньше fpt отлично работал без этого правила? На стороне сервера точно знаю ни чего не менялось, то есть проблема в pf. И появилась проблема с lightsquid, он не хочет запускаться, ругается на perl. Комманда Pkg_add -r perl не запускается, пишет command not found. Как установить perl в систему?
нужно pkg add ,без подчёркивания.
-
был занят, извените что так долго не отвечал.
Ссылки нету.
Services - FTP client proxy
Ставим галочку "enabled".
"Local Interface" - LANFtp proxy настроил, стал подключаться к серверу, но после команды ls клиент пишет
200 PORT command successful
425 Unable to build data connection: Operation timed outнужно pkg add ,без подчёркивания.
уже так и сделал, но все равно lightsquid не работает. Теперь пустое окно. Парсер запускал, ругается что что то с путями до
конфига. -
Ftp proxy настроил, стал подключаться к серверу, но после команды ls клиент пишет
200 PORT command successful
425 Unable to build data connection: Operation timed outОшибка явно с активным ftp.
Опция "Rewrite Source to Port 20" установлена? -
Опция "Rewrite Source to Port 20" установлена?
да
-
Проверил специально.
С тестовой сети (на vmware) выход через pfsense "в мир" (внешнюю сеть).
Модуля "FTP Client proxy" небыло. Активный ftp не работал.
Установил модуль - все стало на свои места. Настройки минимальные.
Proxy Enabled - yes
Local Interface - LAN
Rewrite Source to Port 20 - yes -
У меня точно также, плюс стоит логирование. Но вот логов его в системных нет. Может быть проблема в firewall? Какие у Вас открыты порты для работы FTP proxy?
-
Это тестовая сеть - открыто "any".
Правило редиректа добавляет в pfsense, видимо, сам плагин:
rdr pass on em1 inet proto tcp from any to any port = ftp -> 127.0.0.1 port 8021Откройте с какого-то хоста в локалке доступ на ANY и увидите.
-
Добавил правило, в логах нет ни слова про порт 8021. Трафик как будто мимо плагина идет
-
Чтобы не встявлять скриншоты …
На том же тестовом стенде ... с локалки закрыто все.
Активирован только плагин "ftp proxy" и разрешен доступ на интерфейсе LAN на 127.0.0.1 порт 8021.
И работает и активный ftp, и пассивный.
На pfsense два правила только:
rdr pass on em1 inet proto tcp from any to any port = ftp -> 127.0.0.1 port 8021
pass in log quick on em1 inet proto tcp from any to 127.0.0.1 port = ftp-proxy flags S/SA keep state label "USER_RULE"Т.е. вам надо разрешить в локалки подключаться на 127.0.0.1 порт 8021.
И проверить, чтобы в настройках плагина интерфейс был локальной сети. -
Все именно так и настроено.
-
Теоретически все правильно.
И правило NAT у вас есть же?
Если да, тогда захидите по ssh и смотрите tcpdump-ом, доходят ли пакеты вообще на ваш шлюз от хоста с локалки.
Доходят - смотрите логи, запущенные процессы … -
Правило nat есть, не могу найти логи FTP proxy. Ставил галку на логирование, в системных логах нет. В каталоге /var/log тоже не нашел. Подскажите где еще можно посмотреть?
-
включение лога и полученная запись в логе.
10.0.1.24 - это хост во "внешней сети" за NAT-ом по отношению к хосту в локальной сети 192.168.44.11.
-
И без правила записи в лог попадают.
-
Можете еще показать правило NAT?
-
-
На WAN отключено блокирование "серых" сетей ?
-
На WAN отключено блокирование "серых" сетей ?
Да. Это тестовый хост. И за WAN у него тоже серые сети.
-
Что то совсем не пойму, как настроить nat. Вот скрин. Может тут проблемы? Команда tcpdump port 8021 молчит. То есть если я правильно понял, обращений на порт 8021 localhost нет. tcpdump запущен на консоли pf.
-
Вот такой ответ на tcpdump port 20
Прощу прощения за такой вид, не знаю почему все зачеркнутое.
tcpdump port 20
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on re0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:24:54.822835 IP mail1.yktpost.ru.ftp-data > 10.0.0.2.64675: Flags, seq 3056733364, win 65535, options [mss 1380,nop,wscale 3,sackOK,TS val 1489447615 ecr 0], length 0
16:24:57.795992 IP mail1.yktpost.ru.ftp-data > 10.0.0.2.64675: Flags, seq 3056733364, win 65535, options [mss 1380,nop,wscale 3,sackOK,TS val 1489450615 ecr 0], length 0
16:25:00.988967 IP mail1.yktpost.ru.ftp-data > 10.0.0.2.64675: Flags, seq 3056733364, win 65535, options [mss 1380,nop,wscale 3,sackOK,TS val 1489453815 ecr 0], length 0
16:25:04.140057 IP mail1.yktpost.ru.ftp-data > 10.0.0.2.64675: Flags, seq 3056733364, win 65535, options [mss 1380,sackOK,eol], length 0
16:25:07.312012 IP mail1.yktpost.ru.ftp-data > 10.0.0.2.64675: Flags, seq 3056733364, win 65535, options [mss 1380,sackOK,eol], length 0
16:25:10.484117 IP mail1.yktpost.ru.ftp-data > 10.0.0.2.64675: Flags, seq 3056733364, win 65535, options [mss 1380,sackOK,eol], length 0
16:25:16.630504 IP mail1.yktpost.ru.ftp-data > 10.0.0.2.64675: Flags, seq 1580116726, win 65535, options [mss 1380,sackOK,eol], length 0
16:25:28.859804 IP mail1.yktpost.ru.ftp-data > 10.0.0.2.64675: Flags, seq 1580116726, win 65535, options [mss 1380,sackOK,eol], length 0
16:25:52.716074 IP mail1.yktpost.ru.ftp-data > 10.0.0.2.64675: Flags, seq 2716503822, win 65535, options [mss 1380,sackOK,eol], length 0 -
Вам NAT нужен на обоих интерфейсах?
Думаю, в них проблема.
Оставьте только на WAN-е. -
Если ставлю автоматическое создание правил NAT, то прописываются оба интерфейса. Сейчас выставил ручками, оставил только WAN. Без изменений.
-
А в логах что? (firewall-а того же)
-
в логах пусто, хотя в правиле разрешающее доступ из LAN к Localhost:8021 галка логировать стоит
-
Судя по "IP mail1.yktpost.ru.ftp-data > 10.0.0.2.64675" запросы на ftp-сервер попали.
И отправляются ответы. В случае активного фтп они идут с 20 порта на высокий порт источника запроса.
В вашем случае это должен быть WAN IP - а оно так и есть, если я правильно понял условие.
Дальше ответ должен пройти обратно через NAT и через ftp proxy.
Вот или в правилах НАТ-а напутано что-то (не тот интерфейс, не те сети), или ftp proxy не работает.
Пропишите одно правило НАТ вручную, чтобы исключить ошибку.
С какой сети в какой внешний IP натить и на каком интерфейсе. -
Огромное спасибо за помощь, прописал правило все заработало. Скажите как его подправить что бы было более безопаснее?