This page has been robot translated, sorry for typos if any. Original content here.

Встановлюємо також налаштовуємо FTP-сервер. чать 2

Отже, пізніше малого знайомства з FTP-протоколом в першій елементи нашого матеріалу ми негайно приступаємо до установки також налаштування власного FTP-сервера. Відразу відзначимо, що в Windows 2000 / XP є вбудований FTP-сервер (Панель управління -> Установка також видалення програм -> Установка компонентів Windows -> Internet Information Services -> Служба FTP). Однак, він дуже примітивний, незручний, також небезпечний - тому його ми ставити ніяк не будемо.
А ставити ми будемо найпотужніший також багатофункціональний FTP-сервер Serv-U - більша частина FTP-сайтів найвідоміших фірм працюють саме на ньому. Намагайтеся не застосовувати старі версії, так як в них існують уразливості.

Serv-U складається з пари елементів - Serv-U Administrator для настройки також управління FTP-сервером, також власне FTP-сервера. Serv-U Administrator може існувати встановлений також на приятелем комп'ютері, через нього дозволено дистанційно керувати FTP-сервером Serv-U. Для управління служба FTP-сервера використовує TCP-порт 43958. Тому, щоб уникнути злому, встановіть на управління пароль (в меню "Set / Change Password"), бажано довгий. Опція "Start automatically (system service)" дозволяє автоматично запускати FTP-сервер, причому він буде працювати незалежно від того, хто на комп'ютері залягання. В іншому випадку FTP-сервер стане запускатися тільки в який час ви запустите Serv-U Administrator.
Тепер налаштовуємо брандмауер. Нам необхідно дозволити вхідні також вихідні з'єднання по TCP-протоколу для процесів Servuadmin.exe також Servudaemon.exe.
Прямуємо далі по колоді налаштувань Serv-U Administrator, в "Settings -> General". Тут їсти зміст включити як мінімум три важливі опції. "Block FTP_bounce attacks and FXP" - це охорона від передачі трафіку між парою FTP-серверами (клієнт зловмисника може встановити сеанс від імені іншого сервера, запустити перекачування також піти, тільки ви будете даремно забивати приміщення на диску також втрачати куплений ліміт трафіку). "Block users who connect more than ..." - охорона від спроб підбору пароля будь-якого FTP-аккаунта. "Block anti time-out schemes" - охорона від спроб обійти ліміти пори сесії, дані того чи іншого аккаунту. Схоже тут дозволено обмежити загальну швидкість прийому (upload), віддачі (download) також число відразу обслуговуваних користувачів (це глобальна настройка, далі ми зможемо такі ліміти створити окремо для різних акаунтів).

Тепер створюємо сервер. Для цього пробиваємося по колоді налаштувань в "Domains", натискаємо праву кнопку миші також вибираємо у спливаючому "New Domain". У вікні налаштувань поле "Domain IP Address" залишаємо порожнім, "Domain name" - вказуємо яке-небудь ім'я, наприклад "FtpName" (воно необхідне тільки нам), "Domain port number" - це порт, на якому стане давати відповідь FTP- сервер, поки що зазначимо стандартне значення - 21. "Domain type" вказує в якому місці будуть зберігатися настройки сервера, краще їх берегти в INI-файлах.
Тепер сервер створений (по-англійськи - "Domain"). Можна організувати кілька серверів (в цій гілці дерева налаштувань), на різних портах, тільки сенсу для звичайних користувачів в цьому немає.

У колоді налаштувань в розділі "Domains -> FtpName" включаємо підтримку шифрування "Security -> Allow SSL / TLS ans regular sessions". Зараз мало відвернемося від самого сервера також розберемося з портами також IP.
По-перше, сервера необхідно знати свій зовнішній (інтернетівський) IP-адреса. Якщо адреса статичний, то все просто - вписуємо його в "Domain IP address". А ось якщо IP-адреса динамічний (як, наприклад, в "Стрім"), то доведеться скористатися службами DynamicDNS, в якому місці вам присвоять доменне ім'я, яке стане вказувати на ваш IP, безупинно відстежувати також оновлювати його зміни.

Зокрема, така безоплатна послугу їсти на No-IP.com , там ви можете створити свого комп'ютера який-небудь домен 3 рівня в інтернеті, наприклад, mycomputer.no-ip.com. Там бла бла дозволено завантажити замовник No-IP dynamic update client, який стане безупинно зв'язуватися з No-IP.com також перевіряти / оновлювати ваш IP-адресу. Про налаштуваннях цього замовника говорити не буду, але можу порадити його налаштування ніяк не міняти, крім параметра "When updating via NAT / Router / Proxy address ONLY" - його краще виставити на "every 5 minutes". Отже, поставивши замовник також зареєструвавшись на No-IP.com, ставимо в налаштуваннях нашого FTP галку на "Enable dynamic DNS" також переходимо на інформацію, що з'явилася вкладку "Dynamic DNS". Там прописуємо адресу, зареєстровану в No-IP.com.
По-друге, настала пора розібратися з портами. Багато провайдерів блокують вхідні з'єднання на 21-му порту. Щоб цю проблему обійти, слід вибрати будь-який інший незайнятий порт, наприклад 32768, також вписати його на вкладці "Domain в FTP port number". Але запам'ятайте, що якщо порт відмінний від 21, то клієнтам ви повинні відчужувати посилання Ніяк не ftp://mycomputer.no-ip.com, тільки ftp://mycomputer.no-ip.com:32768. Ймовірно, ваш FTP-сервер знаходиться за NAT. В такому випадку на NAT треба налаштувати функцію "Port Forwarding". По-перше, для порту на якому він дає відповідь. По-друге, як ми вже описували раніше, для клієнтів працюють в режимі "PASV", необхідні ще якісь порти, на які вони будуть коннектіться. Саме для цього в Serv-U їсти відповідна настройка "Local Server -> Settings -> Advanced -> PASV port range", в якій вказуємо якийсь незайнятий діапазон, наприклад 32769-32784 також форвард його на NAT.
Налаштовуємо далі. В меню "Domains -> FtpName (наш сервер) -> Settings" на вкладці "Logging" включаємо режим ведення лог-файлу для system messages, security messages, files downloads, file uploads, IP names, FTP commands, FTP replies - все це ніяк не чудово збільшить лог, але допоможе локалізувати проблеми. Вказуємо назву лог-файлу також включаємо галку "Enable logging to file". На інших вкладках ніщо налаштовувати ніяк не потрібно - за замовчуванням там все підходить для більшості користувачів.

Тепер будемо створювати користувача. Для витоку - гостя. Спочатку треба створити на диску папку, яка стане кореневої директорією нашого FTP. Наприклад, створимо C: \ FTP_Root. Далі необхідно створити папку, в яку всі зможуть заливати файли (завантажувати ми їм [гостям] звідти ніяк не дамо), наприклад, зробимо C: \ FTP_Root \ Incoming.

У Serv-U їсти система шаблонів (Groups). Там дозволено вказати пільги доступу для створених директорій. Простіше створити групу з пільгою читання кореневої папки також записи в. \ Incoming, тільки потім ніяк не описує всім користувачам такі бла бла права, тільки додавати їм цей шаблон. Отже, рухаємося по колоді налаштувань в "Domains -> FtpName -> Groups" також створюємо там нову групу (New Group), називаємо її, наприклад, guest. Проходимо на вкладку "Dir Access", також додаємо там пара наших каталогу - C: \ FTP_Root також C: \ FTP_Root \ Incoming.

Даємо на них пільги доступу. Для FTP_Root - тільки Read також List, для Incoming - тільки Write-Create-Inherit. Такі пільги позначають: Read - читання файлів, Write - запис файлів, Append - дозапис файлів, Delete - видалення файлів, Execute - запуск виконуваних файлів на серверній машині (дуже небезпечне пільга, ніяк не давайте його нікому), List - показ списку підкаталогів, Create - створення підкаталогу, Remove - видалення підкаталогу, Inherit - все підкаталоги стане володіти схожі пільги (інакше, до них ніяких прав також доступу ніяк не буде, якщо тільки вони ніяк не прописані самостійно). Рядки каталогів дозволено переміщувати вгору-вниз. При використанні успадкування (Inherit), це актуально - верхній рядок володіє верховний пріоритет дозволу.
Отже, нині створюємо гостьового користувача. Йдемо в "Domains -> FtpName -> Users" також створюємо користувача "Anonymous" (це стандартне ім'я гостя, іншим чином це буде не гість). В якості початкової директорії (Home Directory) вказуємо C: \ FTP_Root. На завдання "Lock user in home directory?" даємо відповідь "Yes" - це спростить роботу користувача.
Тепер - значний пункт - в настройках цього користувача (Anonymous) пробиваємося на вкладку "Dir Access" також видаляємо там автоматично створену рядок в FTP_Root (зверніть турбота, що вона успадковує пільги читання в Incoming). Тепер на вкладці "Account" додаємо в Group (s) групу guest, натискаємо "Apply". Повертаємося назад в "Dir Access" також дивимося. Тут з'явилися FTP_Root також Incoming, причому редагувати їх неможливо - це користувач отримав ті самі пільги для гостей з шаблону "guest".

Отже, відвідувача ми створили. Він може завантажувати будь-які файли з каталогу C: \ FTP_Root (виключаючи підкаталоги) також закачати який-небудь файл в C: \ FTP_Root \ Incoming, але завантажити його звідти він ніяк не зможе (таким чином, ваш сервер не можна використовуватиме для несанкціонованої пересилання файлів).
Тепер створюємо якогось більш повноважного користувача. Для економії часу скопіюємо "Anonymous" також перейменуємо. Йдемо по колоді налаштувань в "Users", вибираємо (не розкриваємо) "Anonymous" також робимо в контекстному меню "Copy User".

Перейменовуємо його (наприклад, в Ivanov) також задаємо пароль. Зверніть турбота, ви самі ніяк не зможете подивитися який у нього пароль, тому запам'ятайте його або разом повідомте пароль цього користувача.
Тепер рухаємося на вкладку "Dir Access". Зверніть турбота, що так як він вступає в групу "guest", кореневої каталог також incoming у нього вже прописані. Нехай цей користувач зможе качати, приміром, нашу музику. Для цього додаємо маршрут до музичних файлів також даємо пільги Read-List-Inherit (користувач зможе завантажувати будь-які файли також підкаталоги).
Однак, якщо користувач зараз підключиться, то він ніяк не побачить жодного каталогу з музикою, тільки побачить тільки FTP_Root. Тому потрібно зробити на нього посилання з FTP_Root, причому ніяк не грошима Windows, тільки засобами самого Serv-U. Йдемо по колоді налаштувань в "Domains -> FtpName -> Settings" на вкладку "General, Virtual path mapping".

Потрібно зробити так, щоб папка музикою (наприклад, c: \ Doc \ Music) показувалася в c: \ FTP_Root як як вона підкаталог FTP_Root. Натискаємо "Add" також заповнюємо: "Physical path" - каталог, до якого треба зробити посилання, пишемо c: \ Doc \ Music, "Mapped to" - каталог, в якому дане посилання треба помістити - у нас це прктіческі завжди стане C: \ FTP_Root, "Vitual name" - ім'я цього віртуального підкаталогу в FTP_Root, наприклад, Music. Готово.
В "Virtual path mapping" ви можете розмістити будь-які посилання, але побачать їх тільки ті хто в "Dir Access" володіє відповідні права. Наприклад, в нашому випадку, відвідувач не помітить каталогу Music.
Щоб Ivanov при скачуванні музики ніяк не займав особливо здорово наш мережевий канал, рухаємося на вкладку "General" його аккаунта також вказуємо "Max download speed".
До речі, розповім ще як нашому користувачеві Ivanov вступати на FTP. Просто набравши ftp://mycomputer.no-ip.com, він увійде як гість, тільки ніяк не як Ivanov. Логін також пароль дозволено вставити безпосередньо на адресу ftp: // Ivanov: password@mycomputer.no-ip.com - браузер (FTP-клієнт) це зрозуміє також використовує. Або слід вивчити налаштування FTP-клієнта, щоб знайти в якому місці в ньому при підключенні вказується ім'я також пароль для Ніяк не гостьового входу.
Тепер створимо ще одного користувача, який стане володіти доступ до будь-яких секретних документів, також тому неможливо допустити злому його аккаунта. Копіюємо його з Anonymous, також називаємо, наприклад, Petrov. Йдемо на вкладку "General" його аккаунта. Тут їсти пара цікавих з точки зору безпеки пункту.

По-перше, Password type. Якщо вказати "OTP S / KEY MD5", то пароль зловмисники Ніяк не перехоплять. Якщо вказати "Regular password", то це стане стандартна процедура обміну паролями також його можуть перехопити. Користувач вибрати режим паролів ніяк не може, це треба зробити на сервері.
По-друге, Require secure connection. Password type забезпечує тільки охорону пароля, але ніяк не пересилаються. Установка шифрованого з'єднання забезпечує також охорону даних, також охорону пароля. Причому, якщо галку на "Require secure connection" ніяк не ставити, то шифрування об'єднання користувач може особисто за бажанням вибрати, тільки якщо галка варто, то користувач стане зобов'язаний використовувати шифрування з'єднання, іншим чином його ніяк не пустять. До речі, велика частина клієнтів ніяк не підтримують при шифруванні OTP-паролі - так як це надмірно, тому Password type зробіть "Regular password" якщо для цього облікового запису можуть існувати шифровані з'єднання.
Нагадаю, що штатні FTP-клієнти Windows ні OTP-паролі, ні шифрування ніяк не підтримують - для застосування цих заходів охорони користувачам треба використовувати, наприклад, CuteFTP.
Коли все налаштовано, очевидно, вам захочеться самим подивитися як це все працює. Це можливо, також рухатися до іншого комп'ютера зовсім необов'язково (крім, хіба що, перевірки налаштувань брандмауера або NAT). Використовуючи для цього локальну адресу (127.0.0.1), набираємо в браузері або FTP-клієнті адреса ftp://127.0.0.1 (якщо порт за замовчуванням 21), або ftp://127.0.0.1:32768 (якщо порт нестандартний, наприклад , 32768). Готово. Ви можете повно повноцінно таким чином випробовувати всі можливості свого сервера. Але врахуйте, що в пасивному режимі (PASV), якщо ваш FTP-сервер за NAT, то для обміну даними сервер вкаже замовнику зовнішній IP, також об'єднання стане неможливо. Тому для перевірки використовуйте звичайний PORT-режим в FTP-клієнтах.
PS До речі, якщо що незрозуміло, то у Serv-U їсти відмінна контекстна довідкова система, що викликається натисканням клавіші "F1".