====== Создаем свой FTP сервер ====== ===== Подготовка к установке своего FTP-сервера ===== __**Как и обещал, для начала кратко о том, что такое FTP для тех, кто не знает:**__\\ **FTP (от англ. File Transport Protocol)** – это протокол передачи данных, который позволяет получить доступ к файлам на удаленном сервере. В данной технологии различают две стороны, серверную **(FTP сервер)** и клиентскую **(FTP клиент)**.\\ В случае, если вы хотите поделиться своей коллекцией музыки или художественными изысканиями, Вам понадобится **FTP сервер**, т.е место куда все будут подключаться и скачивать всё, что Вы разрешили. Как раз о том, как это настроить, и пойдет речь в данной статье.\\ Хочется сразу отметить, что в статье будет рассматриваться вариант домашнего использования, без хитрых и тонких настроек, которые используются в случае с полноценными корпоративными серверами.\\ Для установки Вам необходимо скачать **FileZilla Server**, ибо он, предельно прост в установке и настройке, и к тому же бесплатен.\\ Скачать его можно, например, по [[http://sourceforge.net/projects/filezilla/?source=dlp|этой]] ссылке. ===== Установка FTP FileZilla Server ===== После скачивания дистрибутива, собственно, запустите его установку //(имеется ввиду, что надо кликнуть по скачанному exe-файлу)// и следуйте рекомендациям ниже.\\ На первом окне нужно согласиться с лицензионным соглашением, нажмите **“I Аgree”.** {{ :разное:ftp1.jpg?nolink |}} Далее надо выбрать тип установки. Всего их пять: {{ :разное:ftp2.jpg?nolink |}} **Стандартный (Standart)** – вариант для установки с нуля для полного функционирования сервера.\\ **Полный (Full)** – почти тоже самое, но так же в папку установки будут скопированы исходный код программы, на случай, если вы что-то захотите в ней изменить.\\ **Только FTP сервис (Service only)** – устанавливается непосредственно FTP сервис, без доступа к нему через интерфейс. Полезно, если вы планируете управлять своим файлохранилищем с другого компьютера.\\ **Интерфейс управления (Interface only)** – в отличие от предыдущего пункта, ставится только графическая оболочка управления сервером, но не он сам. Используйте, если вы хотите удаленно получить доступ к своему FTP серверу.\\ **Выборочная установка (Custom)** – Вы вольны выбирать, что хотите поставить на свой компьютер.\\ Для первой установки рекомендую выбрать стандартный вариант **(Standart)**. Нажмите **“Next“**. На следующем окне необходимо выбрать **папку установки**, например, **“C:\Program Files\FileZilla Server”**. После выбора переходите к следующему окну **(Next)**.\\ Теперь установщик попросит нас выбрать способ установки и запуска сервера. {{ :разное:ftp3.jpg?nolink |}} **Есть три варианта:** * Как службу и запускать при входе в систему * Как службу и запускать вручную * Простая установка, запускать вручную Рекомендуется выбрать первый или второй вариант. Разница лишь в том, что во втором случае для работы сервера, Вам необходимо будет переходить в **“Панель управления – Администрирование – Управление службами“**, находить там службу в списке и запускать её самостоятельно, надавив на кнопочку запуск.\\ Кроме того, на этом этапе следует указать **порт**, по которому будет подключаться интерфейс управления сервером, т.е так сказать, Ваша консоль администрирования, которая позволит Вам задавать настройки, смотреть кто и куда подключился и тп. Для повышения безопасности, смените его со стандартного **(14147)** на какой-нибудь еще.\\ Так же по-умолчанию, отмечена опция запустить сервер после установки **(Start Server after setup completes)**. Можете оставить эту галочку, а можете убрать. Дело Ваше. Сделав оное, переходим к последнему окну, используя кнопочку **Next**.\\ Здесь выбираем варианты запуска интерфейса. {{ :разное:ftp4.jpg?nolink |}} **Их опять же три:** * При вход в систему, для всех пользователей * При входе в систему, для текущего пользователя * Вручную **Первый вариант** сгодится, если вы единственный пользователь компьютера, куда устанавливается сервер, и Вам, в принципе, всё равно под всеми аккаунтами операционной системы интерфейс будет запускаться автоматически или же только под одним.\\ **Второй** подходит для тех, кто работает на компьютере не один (т.е на компьютере несколько аккаунтов, используемых разными людьми) и хочет, чтобы никто другой не управлял его **FTP сервером**, т.е запуск интерфейса осуществлялся только из под аккаунта, в котором сейчас и производится установка.\\ И **третий вариант** задает параметр запуска только вручную, т.е оный не будет стартовать вместе с системой вовсе.\\ Напомню, что интерфейс представляет собой нечто вроде административной программы, которая позволяет следить за состоянием сервера, запускать-останавливать и настраивать оный.\\ Галочка **(Start Interface after setup completes)** в данном окне, опять же, задает запуск интерфейса сразу в конце установки. Ну и, разобравшись со всем оным, наконец-то можно начать установку сервера (используя, само собой, кнопочку **“Install“**) ===== Настройка FTP FileZilla Server ===== Итак, после установки, при первом запуске интерфейса, появится маленькое окошко, где требуется указать **адрес** и **порт** для подключения, а так же **пароль администратора** (при первой установки его нет). Можно отметить опцию **“Всё время подключаться к этому серверу”** **(Always connect to this server)**. Нажимаем **“Ok“**. {{ :разное:ftp5.jpg?nolink |}} Хочется подчеркнуть, что это есть подключение к серверу локально, а именно, подключение к интерфейсу администрирования, т.е выдавать адрес 127.0.0.1 и порт 14147 для друга, который захочет подключиться, бесполезно. О внешних адресах, паролях и явках, необходимых для подключения к серверу, будет написано по ходу статьи.\\ Теперь перейдем к настройкам. Это делается путем перехода по адресу **“Edit -> Settings”** или кликом на кнопку на панели интерфейса: {{ :разное:ftp6.jpg?nolink |}} Перед вами откроется окно настроек. На первой вкладке **(General Settings)** можно задать следующие параметры: {{ :разное:ftp7.jpg?nolink |}} **Сверху вниз по скриншоту:** * Порт, по которому клиенты будут подключаться к серверу * Максимальное количество клиентов * Количество потоков * Различные таймауты (три штуки) В рамках данной статьи нас интересуют первые два пункта. Порт можно оставить как есть, а можно и сменить для повышения безопасности, но тогда придется сообщать об оном всем желающим подключиться.\\ Вторая настройка отвечает за максимальное количество подключений. По-умолчанию значение параметра стоит **“0”**, это означит, что их количество не ограничено. Менять этот параметр стоит в том случае, например, если Ваш интернет канал не справляется с нагрузкой, т.к к Вам подключается уж очень много людей.\\ Остальное можно оставить без изменений, т.к для домашнего использования настройки оптимальны.\\ Поехали дальше.\\ В следующем подпункте можно настроить приветственное сообщение, которое будут видеть пользователи при подключении. Например: “Hello World”. Здесь же можно воспользоваться, так называемыми, текстовыми параметрами. Например, можно задать вывод для клиентов версии **ftp-сервера**. Для этого введите, помимо приветствия, сочетание символов **%v** . В месте где Вы их введете, будет автоматически выводится вышеупомянутая версия.\\ {{ :разное:ftp8.jpg?nolink |}} Далее переходим на подпункт **“IP bindings”**. Здесь настраиваются **IP-адреса**, по которым будет доступен наш FTP сервер. Если Вам хочется, чтобы сервер был доступен только из локальной сети, то вместо звёздочки, следует указать ваш **локальный IP-адрес**, как например, **192.168.1.5**. В противном случае, здесь трогать ничего не стоит. {{ :разное:ftp9.jpg?nolink |}} В подпункте **“IP Filter”** можно задать **IP адреса (или их диапазон)**, которым будет запрещено подключаться к Вашему серверу, а так же задать исключения из заданного диапазона (второе поле). Т.е, например, если Вы хотите кого-то **забанить и запретить** ему попадать на Ваш сервер, то укажите его в первом окошке. Так же, если Вы хотите предоставить доступ только кому-то определенному и запретить всем остальным, то поставьте звёздочку в первом поле и задайте список **IP-адресов** во втором. {{ :разное:ftp10.jpg?nolink |}} Вкладка **“Passive mode settings”** регламентирует параметры для пассивного подключения к серверу и отклик оного. Менять здесь что-либо стоит только в том случае, если Вы подключены к интернету не напрямую, а через **роутер**, на котором обитает **фаерволл и NAT**. В этом случае может потребоваться указать в поле **“Use the following IP” свой внешний IP-адрес** (можно узнать у провайдера или в интерфейсе роутера), а так же задать **диапазон портов (Use custom port range)**, через которые клиент сможет подключаться к Вашему серверу в пассивном режиме. Трогать эти настройки стоит, пожалуй, только в случае проблем с подключением пользователей. В случае оных и невозможности разобраться самостоятельно.\\ {{ :разное:ftp11.jpg?nolink |}} Идем далее. В пункте настроек **“Security Settings”** задаются ограничения на входящие и исходящие соединения типа **“сервер-сервер”**. Здесь ничего менять не стоит.\\ Раздел настроек **“Miscellaneous”** содержат малозначительные для домашнего **фтп-сервера** настройки. Например, такие как **“Не показывать пароль в лог-файлах” (Don’t show passwords in message log)**, **“Запускать интерфейс свернутым” (Start minimized)**, а так же размеры буферов передачи. Трогать здесь, в общем-то, ничего не нужно.\\ {{ :разное:ftp12.jpg?nolink |}} На вкладке **“Admin Interface Settings”** можно задать **IP-адрес и порт**, по которым будет доступен интерфейс управления сервером (тот самый, что мы вначале использовали как 127.0.0.1 и 14147, т.е, если есть желание, то Вы можете их сменить). Кроме того, можно указать **IP-адреса**, которым разрешено подключаться к нему. {{ :разное:ftp13.jpg?nolink |}} Раздел настроек **“Logging”** позволяет включать **запись лог-файлов (Enable logging to file)**, настроить их **максимальный размер (Limit log file size to)**, **писать все в один файл (Log all to “FileZilla Server.log”)** или для каждого дня создавать отдельный (в этом случае можно ограничить их максимальный срок хранения). {{ :разное:ftp14.jpg?nolink |}} Вкладка **“GSS Settings”** отвечает за использования протокола **Kerberos GSS**. Для обычного использования эта опция не требует настройки.\\ Далее у нас **“Speed Limits”**. Оная может помочь ограничить скорость входящих и исходящих соединений. Есть два пути ограничения: задать постоянное ограничение на все время или создать правила на конкретный день и/или час. Ограничения задаются в килобайтах. {{ :разное:ftp15.jpg?nolink |}} Вкладка **“Filetransfer compression”** позволяет включить режим **сжатия файлов** при передаче. При этом можно настроить минимальный и максимальный уровни сжатия, а так же указать **IP-адреса**, для которых не будет использоваться компрессия. Трогать что-либо совсем не обязательно. {{ :разное:ftp16.jpg?nolink |}} Чтобы настроить защищенное соединение между клиентом и сервером, надо перейти к пункту настроек **“SSL/TLS Settings”**. Здесь нужно включить поддержку этих протоколов и указать пути к закрытому **ключу, файлу сертификата и пароль**. Для среднестатистического пользователя в этом нет необходимости, поэтому в этой статье рассматриваться не будет.\\ И наконец, можно включить **автоматический бан** пользователей после n-ых попыток неудачных подключений, и время бана. Для этого стоит перейти на вкладку **“Autobans”** и, если Вам оное необходимо, то выставить галочку **“Enable automatic bans“**, указать в графе **“Ban IP adress after”** количество попыток после которых будет осуществляться блокировка, а так же время блокировки в поле **“Ban for“**. Оное бывает нужно, чтобы нежелательные личности не спамили Ваш сервер своими попытками подключений. ===== Первоначальная настройка аккаунтов пользователей (users) и шары (share) ===== Теперь настроим доступы пользователей, а именно их **аккаунты, пароли, папки и тп**. В качестве примера создадим самого, так сказать, распространенного пользователя и дадим ему доступ.\\ Итак, для добавления нового **аккаунта** следуем, в **главном окне интерфейса**, по пути **“Edit -> Users”**. Перед нами предстанет окно работы с пользователями. {{ :разное:ftp17.jpg?nolink |}} Для добавления нового необходимо нажать **“Add”**. Далее необходимо будет задать его имя, например, **anonymous**, и принадлежность к группе (в нашем случае указывать не будем). Задаем, жмем **“Ok”**. {{ :разное:ftp18.jpg?nolink |}} {{ :разное:ftp19.jpg?nolink |}} Теперь для нашего нового пользователя можно задать **пароль и ограничение по количеству соединений**. При необходимости сделайте оное, выставив галочку **“Password”** и указав его **(пароль)** в окошке напротив. Настоятельно рекомендуется использовать пароли для пользователей в целях безопасности. Далее переходим на вкладку **“Share Folders”**. Здесь, собственно, мы задаем к каким именно папкам пользователь будет иметь доступ. Делается это просто: жмем **“Add”** и выбираем нужную папку на диске. Слева можно задать **права доступа** к ней: только **чтение – “Read”, запись – “Write”, удаление – “Delete”** и возможность **изменения существующих файлов в директории – “Append”**. Ниже можно разрешить создание, удаление, получение списка файлов и распространение разрешений на подкаталоги. {{ :разное:ftp20.jpg?nolink |}} Задаём необходимые Вам параметры и папки и.. нажимаем **ОК**\\ На этом первоначальная настройка закончена. Для домашнего пользования большего и не надо .\\ ===== Доступ пользователей к серверу. ===== Для того, чтобы ваши знакомые могли использовать Ваш **FTP сервер**, необходимо предоставить им его **IP-адрес**, а так же заданные Вами **логин(ы), пароль(и) и, при необходимости, порт** (если меняли), которые они должны указать в своем, предварительно установленном **FTP-клиенте**.\\ Узнать внешний **IP-адрес** можно, обратившись к провайдеру, посмотрев в настройках роутера или же, попросту, воспользовавшись одним из многочисленных сервисов, как например, **www.2ip.ru**