Пробросить порт с определенного адреса на другой адрес

На локальном айпишнике (yyy) запущено два фтп-демона на портах 2021 и 2022. Требуется с внешнего адреса (xxx) перенаправлять все ftp-запросы по портам, в зависимости от адреса. Допустим, адрес aaa отправить на порт 2021, а все остальные - на 2022. Делаю следующие правила:
iptables -t nat -A PREROUTING -p tcp -d xxx -s aaa --dport 21 -j DNAT --to-destination yyy:2021
iptables -t nat -A PREROUTING -p tcp -d xxx --dport 21 -j DNAT --to-destination yyy:2022

В итоге адрес aaa все равно пробрасывает на 2022й порт. Что я упустил из виду? И как правильно реализовать то, что я хочу?

Вроде вы все верно написали.

Вроде вы все верно написали. Включен ли net.ipv4.ip_forward = 1 ?

net.ipv4.ip_forward

Да, включен. Через этот комп в инет еще 2 ходят.

JIyHoXoD wrote: iptables -t

JIyHoXoD написал(а):
iptables -t nat -A PREROUTING -p tcp -d xxx -s aaa --dport 21 -j DNAT --to-destination yyy:2021
iptables -t nat -A PREROUTING -p tcp -d xxx --dport 21 -j DNAT --to-destination yyy:2022

Жирным выделено то, что меня немного смущает, а что если

iptables -t nat -A PREROUTING -p tcp -s aaa --dport 21 -j DNAT --to-destination yyy:2021
iptables -t nat -A PREROUTING -p tcp -s xxx --dport 21 -j DNAT --to-destination yyy:2022

Или я не правильно понял задачу?!

JIyHoXoD wrote:На локальном

JIyHoXoD написал(а):
На локальном айпишнике (yyy) запущено два фтп-демона на портах 2021 и 2022. Требуется с внешнего адреса (xxx) перенаправлять все ftp-запросы по портам, в зависимости от адреса. Допустим, адрес aaa отправить на порт 2021, а все остальные - на 2022. Делаю следующие правила:
iptables -t nat -A PREROUTING -p tcp -d xxx -s aaa --dport 21 -j DNAT --to-destination yyy:2021
iptables -t nat -A PREROUTING -p tcp -d xxx --dport 21 -j DNAT --to-destination yyy:2022

В итоге адрес aaa все равно пробрасывает на 2022й порт. Что я упустил из виду? И как правильно реализовать то, что я хочу?

Как бы Вы не мучились ничего у Вас не выйдет!!!

FTP по своему роду и характеру генерирует самостоятельно порты (вхождение в папку, копирование etc).

Тобиш коды к вашему xxx конектишся идёт проброс на yyy 2021 но сразу после этого порт 2021 ftp демон меняет на 5421(пример.)

Речь не об этом

Ross написал(а):
FTP по своему роду и характеру генерирует самостоятельно порты (вхождение в папку, копирование etc).

Тобиш коды к вашему xxx конектишся идёт проброс на yyy 2021 но сразу после этого порт 2021 ftp демон меняет на 5421(пример.)

Как я понимаю речь не об этом. Ему все равно на каком порту будет сокет после установки соединения. Автору хочется чтобы соединение устанавливалось на определнном порту. Если я, конечно, правильно понял.

А что подразумевается под

А что подразумевается под адресом? Правильно ли я понимаю, что это адрес клиента и один клиент должен попадат на ftp, который находится на одном порту, а другой клиент на тот, что на другом порту?

Частично решил проблему

KiberGus написал(а):
А что подразумевается под адресом? Правильно ли я понимаю, что это адрес клиента и один клиент должен попадат на ftp, который находится на одном порту, а другой клиент на тот, что на другом порту?

Да, все именно так. Нужные мне айпишники перенаправляются на порт с анонимным фтп, остальные на порт, где фтп требует авторизации.
Частично решил эту задачу, повесив фтп-демонов на внешний адрес и делая REDIRECT.

pure-ftpd -4AdxRKMBeG -S EXT_IP,2021 -c 4 -C 2 -k 95 -l puredb:/etc/pureftpd.pdb -I 2 -8 UTF8 -m 60 -O stats:/var/log/pure-ftpd-anon.log -T 4096 -t 4096 -Z -9 CP1251 -p 5000:5459
pure-ftpd -4AdxRKMBEG -S EXT_IP,2022 -c 4 -C 2 -k 95 -l puredb:/etc/pureftpd.pdb -I 2 -8 UTF8 -m 60 -O stats:/var/log/pure-ftpd-vip.log -T 4096 -t 4096 -Z -9 CP1251 -p 5500:6000
iptables -t nat -A PREROUTING -p tcp --dport 21 -i ppp0 -s CLIENT_IP -j REDIRECT --to-port 2021	#client
iptables -t nat -A PREROUTING -p tcp --dport 21 -i ppp0 -j REDIRECT --to-port 2022			#any another
iptables -t nat -A PREROUTING -p tcp --dport 21 -j DROP
iptables -t nat -A PREROUTING -p tcp --dport 2021 -j DROP
iptables -t nat -A PREROUTING -p tcp --dport 2022 -j DROP

А перенаправление на порты локального айпишника так и не завелось.

iptables -t nat -A PREROUTING

iptables -t nat -A PREROUTING -p tcp -d xxx -s aaa --dport 21 -j DNAT --to-destination yyy:2021
iptables -t nat -A PREROUTING -p tcp -d xxx -s ! aaa --dport 21 -j DNAT --to-destination yyy:2022

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".