Ограничить клиентские порты FTP?

Это - почти всегда Xen, KVM или ESX. Можно обычно просматривать dmesg или аппаратные средства и понимать это довольно быстрый. Выяснение у Вашего поставщика услуг хостинга обычно получает ответ также...

1
задан 18 July 2013 в 20:41
2 ответа

Возможная причина заключается в том, что вы используете активный FTP.

FTP имеет активный и пассивный режим.


Активный:

В активном режиме FTP клиент подключается из случайного непривилегированный порт (N> 1023) на командный порт FTP-сервера, порт 21. Затем клиент начинает прослушивать порт N + 1 и отправляет команду FTP PORT N + 1 на FTP-сервер. Затем сервер подключится к клиентскому указанный порт данных из своего локального порта данных, который является портом 20.

Пассивный:

Для решения проблемы инициализации соединения сервером для клиента был разработан другой метод для FTP-соединений. Это было известно как пассивный режим или PASV, после команды, используемой клиент, чтобы сообщить серверу, что он находится в пассивном режиме. В пассивном режиме FTP клиент инициирует оба подключения к серверу, решая проблема межсетевых экранов, фильтрующих входящие данные порта подключения к клиент с сервера. При открытии FTP-соединения клиент открывает два случайных непривилегированных порта локально (N> 1023 и N + 1). В первый порт связывается с сервером через порт 21, но вместо этого команда PORT и разрешение серверу подключаться обратно к своим данным порт, клиент выдаст команду PASV. Результатом этого является что сервер затем открывает случайный непривилегированный порт (P> 1023) и отправляет P обратно клиенту в ответ на команду PASV. Клиент затем инициирует соединение от порта N + 1 к порту P на сервере, чтобы передавать данные.

- Активный FTP против пассивного FTP, окончательное объяснение


Это означает, что у вас есть два варианта:

  1. Простой вариант: использовать пассивный режим
  2. Жесткий вариант: разрешить входящие соединения с порта 20, с любого хоста, с которого у вас уже установлено соединение.

Я бы выбрал вариант 1

3
ответ дан 3 December 2019 в 17:48

Чтобы выполнить вариант 2 из ответа Кристофера Перрина , вы можете использовать расширение недавнее соответствие . Он добавляет исходный IP-адрес в список, который вы можете проверить в последующих правилах. Для этих правил я предположил, что eth0 - это ваш WAN-интерфейс.

iptables -A FORWARD -o eth0 -p tcp --dport 21 -m state --state ESTABLISHED -m recent --name trustedftp --set
iptables -A FORWARD -i eth0 -p tcp --sport 20 -m recent --name trustedftp --seconds 30 --rcheck -j ACCEPT

Я не тестировал это, но думаю, что он должен работать.

1
ответ дан 3 December 2019 в 17:48

Теги

Похожие вопросы