• Linux work admin nolj А кто-нибудь знает хороший ftp-сервер, который умеет 3 ключевые фичи:
    — анонимусов пускать на чтение (это вроде все умеют)
    — шейпить канал (отдавать не более X мбит)
    — лимитировать кол-во сессий с 1 ip.
    Вот, например pureftp отлично лимитирует кол-во сессий, но вроде нет шейпинга. Шейпинг есть в proftpd, но, как оказалось, один неадекват запросто открывает полсотни сессий, полностью выжирая все ресурсы и игнорируя кол-во сессий в конфиге.

Replies (87)

  • @easyjohn, Use iptables, Luke!
  • @easyjohn, У proftpd там бага, да.
  • @OmskLUG, очень я не люблю шейпинг в тейблсах по протоколам.
  • @blacklion, ну да, а чем пользоваться?
  • @easyjohn, ... А никто не любит. Не хочет. Никто не умеет… Дело не в умении, не в желании, и вообще ни в чём. Дело в самом пришивании подворотничка. (с)прапор из ДМБ
  • @OmskLUG, сказать то что хотел?
  • @easyjohn, Я бы посоветовал не страдать хуйней с фтп, а взять хоть WebDav
  • @easyjohn, не ftp
  • @easyjohn, ftp это что-то из 70-х? сейчас вроде 2015-й
  • @easyjohn, а ты уверен, что ftp?
  • @rkit, ага, удобно очень.
  • @Strephil, я понимаю, что вы недавно родились, и испытываете скепсис ко всему тому, что было придумано до вашего рождения, но распространенность протоколов от ваших желаний не меняется.
  • @schors, абсолютли. что бы нет то?
  • @overmind88, вариантов не видно.
  • @easyjohn, Это да, остаётся боль и страдание
  • @overmind88, может просто запилить нормальный сервер?
  • @easyjohn, Но тогда нет причин не обойтись без ftp
  • @overmind88, я даже каких-то денег бы дал разработчику нормального фтп сервера. ибо достало.
  • @easyjohn, HTTP. потому что ftp уже не нужен ни для чего совсем. вот вообще
  • @easyjohn, Меняется. Не хочешь распространять говнопротоколы и не распространяешь.
  • @easyjohn, а смысл? есть на крайняк всякие http-менеджеры
  • @schors, Аплоад по HTTP? Ну, формааааально работает. А вот есть у HTTP стандартный формат листинга? WebDAV выглядит не живее FTP
  • @blacklion, ну возьми файловый менеджер. но вот всё что ты просишь в http уже давно сделано лучше. осталось только интерфейс сделать.
  • @blacklion, и кстати есть rsync :)
  • @schors, неправильно.
    1) скачивание файлов (не одного, а сразу несколько и более), особенно рекурсивное, на http будет мучительно.
    2) анонимный аплоад потребует что-то писать, как-то обрабатывать
    3) существует сервис. самодостаточный. больше десятка лет. перевести его на http — непонятно как и зачем.
  • @easyjohn, ну есть и коммерческие ftp-серверы типа crushftp.com
    Может там есть нужная функциональность
  • @easyjohn, чо?
  • @easyjohn, 1. чушь 2. чо? какой в жопу анонимный аплоад? он у тебя в любом случае неанонимный
  • @overmind88, ой, йо.. это все небось еще и на джаве, да? то есть вместо виртуалки на 128 метров надо отдельный сервер с парой гигов? Но изучу, спасибо..
  • @easyjohn, Хочу посмотреть на FTP-сервер на C которые первые 10 лет не будет избавлятьс яот дыр :)
  • @schors, 1) ну да, расскажи мне.жпг 2) анонимный с т.з. фтп — без авторизации.
  • @blacklion, а написать сразу прямо нельзя?
  • @easyjohn, Как показывает практика — нет. Ну, по крайней мере, ещё ни у кого не получалось. Может быть, если Кнут возьмётся...
  • @blacklion, (издевательски) а Бернштейн еще своего не написал, да? ;)
  • @easyjohn, вообще, самый лучший ftp-сервер, с которым я сталкивался — filezilla, но он windows-only
  • @easyjohn, А у него получалось что-нибудь работающее вообще? Не макет, а всерьёз?!
  • @blacklion, я, кстати, не очень понимаю почему. Сам протокол много может, но не сильно сложный. На начальной стадии можно лишнее не запиливать.
  • @blacklion, Ну он же всегда писал, что кодит сразу без багов ;)
  • @easyjohn, Потому что работа с массивами вообще и строками в частности в C — худшие из возможных. Увы. Это и плюс (скорость, если мы не про строки) и минус. И это вообще не только про FTP, конечно.

    Можно попробовать на правильном C++, со всеми шаблонами, статическими проверками и прочим. Может что и выйдет.
  • @easyjohn, 1. расскажи мне про хотя бы одну реализацию FTP, которая бы не плодилась на каждый поток.tiff 2. ты не хочешь заливку без авторизации
  • @schors, пусть плодится, кому от этого какое дело.если есть лимит на кол-во коннектов (смотри условие задачи) 2) у меня 10-12 лет есть заливка без авторизации, а ты мне рассказываешь.
  • @easyjohn, 1. ну вообще есть. cs там и всё такое. и ни одного преимущества. вообще. за месяц пишется сервис, который тебе хоть торрентом, хоть синком, хоть тушкой хоть чучелком отдавать будет, уже если тебя чунки и tcp по надёжности ну совсем никак не устраивают в локалке (локалка же? :) 2. она у тебя ведь в локальной сети? :) значит уже с авторизацией
  • @easyjohn, не, на самом деле чо — хочешь, ищи ftp. от странных желаний подобного толка никто не умирал. но по делу истово говорю — ты просто упёрся в "хочу ftp"
  • @schors, 1) еще раз — сервис не нужен, нужен фтп, желающие умеют только это.
    2) в какой нафиг локалке — в интернетик торчит.
  • @easyjohn, 2. о боже
  • @schors, потому что мне нужен фтп. я так сразу и сказал.
  • @schors, ну таки что?
  • @easyjohn, потому что ты упёрся. я честно даже задумался — а у меня вообще хоть где-то есть что-то его в принципе поддердживающее? нашёл. а вот неподдерживающего даже html5 — не нашёл.
  • @easyjohn, да нет-нет, ничего
  • @schors, html5? что это? у моей таргет группы браузеры еще css не поддерживают.
  • @easyjohn, такого не бывает. таких браузеров даже я не застал. css 1.x поддерживала даже DOSовская Арахна
  • @schors, угу, расскажи_мне.жпг2. слышал про такую штуку как классическая amigaos?
  • @easyjohn, заплати чтобы написали поддержку css лучше. ну или уже закопайте стюардессу ;)
  • @schors, нам нравится этот вид секса.
  • @easyjohn, можно конечно к nginx что-то нарисовать. или сделать свой простой централизованный btsync...
  • @schors, что бы что?
  • @easyjohn, 1. чтобы получить рабочий ftp евент-драйвен с прибабахами 2. чтобы решить вопрос обмена файлами?
  • @easyjohn, вообще у тебя ftp где? пробуй динамические пожималки сетевым фильтром делать делать. ну а остальное — proftpd да
  • @schors, 1) зачем? 2) писать на голых старых сях под платформу без либов и защиты памяти? ну-ну.
  • @schors, мне лень шейпить тейблсами, ибо гемор. если бы я зашейпил, то найти сервер с рабочими лимитами — проще.
  • @schors, профтп таки лимит не работает, говоришь ему — максиму 2 коннекта с одного Ip — а по факту 1 ip выбирает все десятки инстансов.
  • @easyjohn, Проще пофиксить proftpd, там какая-то тривиальная ошибка была и я её незафиксл только потому что когда я её нашёл у меня было 2 работы разом, а потом забыл и только от этого разговора вспомнил
  • @blacklion, ну, я ж не настоящий сварщик. сам не пофикшу.
  • @easyjohn, эээ... в новом? эээ... а. у меня лимит на юзеров. а proftpd да рейт тебе не делал?
  • @easyjohn, Давай если ты к понедельнику проблему дургими средствами не решишь, ты мне напонмишь? Раньше понедельника я точно не могу, а там попробую
  • @blacklion, ну, не горит, но спасибо.
  • @easyjohn, у тебя какой версии? последней?
  • @schors, А у proftpd в последние лет 5 версии вообще выходили?
  • @schors, рейт делает (как же криво он это делает), а вот лимита по ip не срабатывает. причем лет пять назад вроде работал, на какой-то старой версии, как мне кажется.
  • @easyjohn, таки да 1.3.6rc1, 1.3.5a released [27/May/2015]
  • @blacklion, да конечно
  • @schors, Но там была проблема, когда я его с лимитами использовал, что при задании и глобальноголимита на сервер и по-пользователям (по-адресам я не пробовал, у меня анонимности не было( по-пользовательский лимит не учитывался а глобальный учитывался дважды. Не та структура в функцию второй раз передавалась. Было то лет 6-7 назад
  • @schors, да, попробую обновить на безрыбье.
  • @easyjohn, help.directadmin.com — ну вот смотри, они даже фишки какие-то вводят
  • @schors, о, они еще и баги фиксят. гуд.
    мне еще нравилось, как какой-то из фтп серваков в один и тот же лог писал строчки о подключении клиента по utc, а строчки по скачке файлов в local time. взрывало мозг и парсер. ;)
  • @easyjohn, написал.
    но как всегда — лучше не пользоваться
  • @easyjohn, можно поставить фрю с штатным сервером, а шейпить dummynet ом на основе uid. кстати, количество сессий так же лимитировать через ipfw (для http я делал и работало ок)
  • @easyjohn, ух, ты! заработало!
    Jul 22 19:07:35 fserv proftpd[28209]: fileserv.mfd (151.248.62.114[151.248.62.114]) — Connection refused (MaxClientsPerHost 2)
    Jul 22 19:07:35 fserv proftpd[28209]: fileserv.mfd (151.248.62.114[151.248.62.114]) — FTP session closed.
    Jul 22 19:07:35 fserv proftpd[28210]: fileserv.mfd (151.248.62.114[151.248.62.114]) — Connection refused (MaxClientsPerHost 2)
    Jul 22 19:07:35 fserv proftpd[28210]: fileserv.mfd (151.248.62.114[151.248.62.114]) — FTP session closed.
    Jul 22 19:07:35 fserv proftpd[28208]: fileserv.mfd (151.248.62.114[151.248.62.114]) — Connection refused (MaxClientsPerHost 2)
    Jul 22 19:07:35 fserv proftpd[28208]: fileserv.mfd (151.248.62.114[151.248.62.114]) — FTP session closed.
    Jul 22 19:07:35 fserv proftpd[28211]: fileserv.mfd (151.248.62.114[151.248.62.114]) — Connection refused (MaxClientsPerHost 2)
    Jul 22 19:07:35 fserv proftpd[28211]: fileserv.mfd (151.248.62.114[151.248.62.114]) — FTP session closed.
  • @easyjohn, Надо тоже будет обновиться
  • @easyjohn, Мда. Но теперь: unable to throttle bandwidth: Interrupted system call
  • @easyjohn, а какой директивой ограничиваешь?
  • @overmind88,
    <IfModule mod_shaper.c>
    ShaperEngine on
    ShaperLog /var/log/proftpd.shaper.log
    ShaperTable /var/log/proftpd.shaper.tab
    ShaperAll downrate 500 uprate 500
    </IfModule>
  • @easyjohn, у меня в 14-й убунте на Version: 1.3.5~rc3-2.1ubuntu2
    работало
  • @easyjohn, бля, через веб ответил
  • @overmind88, сожрало форматирование?
  • @easyjohn, нет, уведомление в джаббер никому не пришло
  • @overmind88, было только-что такое же.