FreeBSD 9.2 + natd + vsftpd (пассивный режим)
Добавлено: 2013-11-30 18:35:23
Уважаемые Гуру, подскажите пожалуйста иначе мне бессонница гарантирована :-)
Есть сеть предприятия с адресом - 192.168.16.0/24.
В этой сети есть шлюз (192.168.16.1), через который осуществляется выход в Интернет. На шлюзе работает FreeBSD 9.2, работает (ipfw) и поднят natd.
В сети есть ещё один сервер с FreeBSD (192.168.16.2) здесь поднят vsftpd.
Хочу дать доступ к ftp серверу внешним пользователям. Причем так, чтобы сервер работал в пассивном режиме.
Для этого я сделал следующее:
Пробросил порт в natd(на шлюзе) с помощью: redirect_port tcp 192.168.16.2:21 21
В настройках vsftpd указал:
pasv_address=XX.XX.XX.XX #(мой внешний адрес)
pasv_min_port=65201
pasv_max_port=65535
Клиента настроил подключаться только в режиме пассивного сервера. Запустил. Как и следовало ожидать к серверу я подключился, но списка каталогов я не получаю так как порты 65201-65535 я не пробрасывал с помощью redirect_port.
Далее начинаются непонятки. Если в настройках vsftpd закомментировать параметр pasv_address, то ftp поднимается в полном объеме.
При этом на сервере после команды:
"PASV"
формируется ответ:
"227 Entering Passive Mode (192,168,16,2,255,252)" (что логично)
Но ко мне на клиент приходит уже:
"227 Entering Passive Mode (XX,XX,XX,XX,255,252)" (кто-то подменил неправильный ответ на правильный).
Отсюда вопрос:
1. Кто способен подменить адрес внутри ftp-протокола: natd или zyxel P330W EE (который стоит у меня дома)?
2. И самое главное! Каким образом natd пробрасывает порт 65532 на 192.168.16.2, если я не редиректю эти порты!
В первую очередь меня беспокоит 2-ой вопрос.
Есть сеть предприятия с адресом - 192.168.16.0/24.
В этой сети есть шлюз (192.168.16.1), через который осуществляется выход в Интернет. На шлюзе работает FreeBSD 9.2, работает (ipfw) и поднят natd.
В сети есть ещё один сервер с FreeBSD (192.168.16.2) здесь поднят vsftpd.
Хочу дать доступ к ftp серверу внешним пользователям. Причем так, чтобы сервер работал в пассивном режиме.
Для этого я сделал следующее:
Пробросил порт в natd(на шлюзе) с помощью: redirect_port tcp 192.168.16.2:21 21
В настройках vsftpd указал:
pasv_address=XX.XX.XX.XX #(мой внешний адрес)
pasv_min_port=65201
pasv_max_port=65535
Клиента настроил подключаться только в режиме пассивного сервера. Запустил. Как и следовало ожидать к серверу я подключился, но списка каталогов я не получаю так как порты 65201-65535 я не пробрасывал с помощью redirect_port.
Далее начинаются непонятки. Если в настройках vsftpd закомментировать параметр pasv_address, то ftp поднимается в полном объеме.
При этом на сервере после команды:
"PASV"
формируется ответ:
"227 Entering Passive Mode (192,168,16,2,255,252)" (что логично)
Но ко мне на клиент приходит уже:
"227 Entering Passive Mode (XX,XX,XX,XX,255,252)" (кто-то подменил неправильный ответ на правильный).
Отсюда вопрос:
1. Кто способен подменить адрес внутри ftp-протокола: natd или zyxel P330W EE (который стоит у меня дома)?
2. И самое главное! Каким образом natd пробрасывает порт 65532 на 192.168.16.2, если я не редиректю эти порты!
В первую очередь меня беспокоит 2-ой вопрос.