[Linux.wiki] Настройка диапазона используемых портов FTP(vsftpd) сервера при работе в пассивном режиме.

Если вы настраиваете на своём сервере iptables и используете FTP для передачи файлов, то вам возможно захочется ограничить диапазон используемых сервером портов.
Это может помочь в написании фильтра iptables. Для фильтрации и обработки трафика ftp можно использовать дополнительные модули. Я не хочу утруждать свой сервер отслеживанием трафика ftp и установкой дополнительных модулей – чем меньше настроек, тем стабильнее система!

Предпосылки:
Так как очень часто пользователи сидят за NAT и у них нет реального ip address, то приходится пользоваться пассивным режимом работы FTP сервера (passive mode).
В этом режиме после установки управляющей сессии с сервером на порт tcp/21, сервер открывает случайный порт к которому подключается пользователь для передачи данных.
Диапазон случайных портов можно ограничить в настройках ftp сервера.

Например, для vsftpd в файл настроек нужно добавить следующие параметры (порты можно выбрать самостоятельно, желательно выше 1024):

sudo vim /etc/vsftpd.conf
# To configure passive mode for vsftpd you need to set some parameters in vsftpd.conf.
pasv_enable=Yes
pasv_max_port=2490
pasv_min_port=2480

Далее перезапускаем сервис:
sudo service vsftpd restart

Теперь в настройках iptables легче настроить правила для доступа к ftp с каких-либо адресов. Данные порты (2480 – 2490) не активны постоянно. Они начинают работать только после установления соединения по порту 21. Какой именно порт будет использоваться выбирает сервер.
sudo iptables -A INPUT -s 192.168.56.0/24 -p tcp -m tcp --dport 2480:2490 -j ACCEPT

Дополнительные материалы.

Удачи!