Установка vsftpd, зависает на команде списка

Я понял это - пакет не вполне работает правильно с последним пакетом Sun Java6, sun-java6-jdk; фиксация довольно проста при нахождении его:

После того как я нашел daemon.log, Я нашел ошибки перечисленными в моем редактировании по вопросу, но это - просто побочный эффект этой ошибки:

jsvc.exec[18819]: Could not load Logmanager "org.apache.juli.ClassLoaderLogManager"
jsvc.exec[18819]: java.security.AccessControlException: access denied (java.lang.RuntimePermission setContextClassLoader)

... который происходит, потому что пакет, по умолчанию, выполняет Tomcat с помощью менеджера безопасности Java на это начинание /etc/init.d/tomcat5.5:

# Use the Java security manager? (yes/no)
TOMCAT5_SECURITY=yes

... но пакет не устанавливает полномочия на JULI (реализация входа значения по умолчанию), в котором последний Java6 от Sun, кажется, нуждается, чтобы это работал. Более ранние версии Java6 были прекрасны по-видимому. Этот недавний поток в списке рассылки пользователя кота указал на меня в правильном направлении; рассматриваемый пользователь там получал ошибку выше, и в конечном счете Mark Thomas выяснил что это разрешение:

permission java.lang.RuntimePermission "setContextClassLoader";

... отсутствовал в catalina.policy. И действительно, если я добавляю что разрешение к разделу JULI /etc/tomcat5.5/policy.d/03catalina.policy и перезапустите Tmocat, ошибка уходит, и я получаю файлы журнала! Ура!

Будьте осторожны: Если Вы также устанавливаете tomcat5.5-webapps для получения примеров, приложения менеджера, и т.д., существуют другие настройки, в которых необходимо будет включить 03catalina.policy. Конечно, у Вас всегда есть опция выключения менеджера безопасности, но это - то, для чего это.

7
задан 12 February 2016 в 09:27
4 ответа

Ваш сервер iptables конфигурация не является (непосредственно) проблемой. Скорее всего, информационное соединение ftp сервера блокируется от достижения Вашего клиентского компьютера. По умолчанию FTP использует так называемый "активный" режим, посредством чего сервер на самом деле пытается открыть передачу данных назад для клиента. Потребительские маршрутизаторы NAT будут обычно блокировать это, ведя к тайм-ауту соединения, который Вы отметили.

Установите свой клиент FTP для использования "пассивного" режима, и он должен работать. Если это не делает, проверьте что nf_conntrack_ftp модуль ядра (более старые ядра называют его ip_conntrack_ftp) загружается на сервере:

sudo lsmod | grep conntrack_ftp

Если вышеупомянутая команда ничего не возвращает, то модуль не загружается, и необходимо загрузить его, следующим образом:

sudo modprobe nf_conntrack_ftp

Кроме того, Вы захотите удостовериться, что модуль загружается во время начальной загрузки путем помещения nf_conntrack_ftp в /etc/modules.

nf_conntrack_ftp модуль ядра отслеживает состояние соединений FTP на сервере. Это позволит "пассивному" соединению режима от Вашего клиентского компьютера быть принятым СВЯЗАННЫМ правилом состояния о Вашей ВХОДНОЙ цепочке.

5
ответ дан 2 December 2019 в 23:36

Я не делаю iptables, но это ясно как день из ruleset, Вы показываете, что необходимо узнать немного больше о том, как FTP работает.

FTP является "нечетным" сервисом, в котором он имеет порт управления и порт данных. Недостаточно открыть просто порт 21, который является только портом управления. Порты данных зависят от того, если Вы используете активную или пассивную передачу ftp.

Я не знаю, как iptables работает, но необходимо улучшить ruleset так, чтобы он мог также принять трафик в порте 20 для данных ftp (если Вы хотите использовать стандартные передачи порта ftp),

Иначе необходимо настроить фильтр пакетов, чтобы работать с пассивной передачей данных и сказать клиенту использовать ту форму коммуникации/передачи данных также.

Вы найдете этот сайт полезным: http://www.mdjnet.dk/ftp.html

1
ответ дан 2 December 2019 в 23:36

Не имея правила о выводе для УСТАНОВЛЕННОГО, ИМЕЛ ОТНОШЕНИЕ, это не позволит порту 20 данных ftp для возврата Вас данные.

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -m conntrack --ctstate NEW -j ACCEPT
0
ответ дан 2 December 2019 в 23:36

Во-первых, удостоверьтесь, что vsftpd заблокирован вниз к уникальным портам и для активного и для пассивного режима:

ftp_data_port=20
listen_port=21
pasv_min_port=64000
pasv_max_port=64321

Теперь измените свой iptables, чтобы удостовериться, что те порты могут пересечь правила, и Вы должны быть установлены. По умолчанию пассивные порты случайны; путем установки вышеупомянутого и фиксации iptables Вы решаете "двойную проблему с брандмауэром" так, чтобы клиенты могли работать отовсюду.

2
ответ дан 2 December 2019 в 23:36

Теги

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