Недавно я обнаружил, что на моем VPS установлен дистрибутив Linux, который не совсем CentOS. Это CentOS в контейнере OpenVZ / Virtuozzo. Для получения дополнительной информации см. "Когда CentOS - это не CentOS.«Я хотел бы разрешить FTP из-за моего брандмауэра iptables (FTP работает нормально, если для всех правил установлено значение ACCEPT). Может ли кто-нибудь помочь с этим?
FTP бывает двух видов - активный и пассивный. При активном FTP сервер требует открытия портов 20 (данные) и 21 (команды) - их легче настроить на сервере, но сложнее настроить для клиента (поскольку сервер инициирует обратное соединение с клиентом). Тестирование активного FTP иногда является хорошей отправной точкой для определения того, является ли брандмауэр вашего сервера причиной ваших проблем.
Пассивный FTP обычно более универсален, поскольку соединения устанавливаются клиентом. Однако для этого требуется, чтобы были открыты порт 21 (командный порт) и еще один порт с высоким номером (для передачи данных). Большинство FTP-серверов позволяют вам указать диапазон портов, который будет использоваться для пассивного FTP.
Видеть этот сайт для хорошего обзора различий между активным и пассивным FTP.
Kmods обычно добавляют функции - проверив, что ACCEPT'ing всех соединений решает вашу проблему, вы в значительной степени показали, что вам не нужен kmod в этом случае, но есть просто некоторые необходимые порты, которые заблокированы.
В конфигурации FTP настройте соответствующие директивы для определения диапазона пассивных портов, который будет использоваться, а затем откройте эти же порты в iptables, и все будет в порядке.
PureFTPd:
Есть директива PassivePortRange
:
PassivePortRange min_port max_port
vsFTPd: есть две директивы pasv_max_port
и pasv_min_port
:
pasv_max_port=xxxxx
pasv_min_port=xxxxx
Вам также необходимо включить пассивный FTP с помощью pasv_enable=YES
.
По умолчанию vsFTPd читает конфигурацию из /etc/vsftpd.conf
(так что вы должны поместить туда директивы - убедитесь, что они еще не существуют). Однако можно изменить расположение конфигурации по умолчанию, передав другой путь к файлу в vsFTPd в командной строке (что может сделать один из ваших сценариев инициализации).
После того, как вы указали необходимые порты, вы можете добавить их с помощью одной команды ipTables:
iptables -A INPUT -p tcp -m tcp --dport xxxxx:xxxxx -j ACCEPT
(Примечание: FTP - это исключительно TCP - вам не нужно включать UDP)