Донецкий техникум промышленной автоматики

Налаштування власного ФТП сервера / ADSL club - спільнота користувачів Ростелеком Новосибірськ

Установка і настройка FTP сервера Serv-U
1. качаємо його з сайту клубу ServUSetup.exe 2,5мб
2. запускаємо установку і встановлюємо

3. запускаємо програму адміністрування Serv-U Administrator

Не забуваємо також про файрвол на вашому комп'ютері. Потрібно дозволити для додатка ServUDaemon.exe спілкування з Інтернетом для всіх вищеназваних портів
TCP 21 (або інший визначений в програмі)

TCP і UDP діапазони 50000 - 50004 і 32769 - 32784

В принципі цього вже достатньо для роботи, але кому цікаво нижче приведена більш докладна інструкція з сайту http://nnm.ru

Встановлюємо та налаштовуємо FTP-сервер.

Встановлюємо та налаштовуємо FTP-сервер

На численні прохання як зробити і налаштувати FTP-сервер, сам не став мучитися, але знайшов дуже хороший опис цього процесу.
Стаття велика, але все расспісанно від і до, суворо дотримуйтесь інструкцій і буде у Вас свій FTP-сервер.Перепечатано з дозволу автора.
Як і хороша книга-з картинками, від себе додам, на цьому прикладі можна налаштувати большенство відомих FTP-серверів, у всіх принцип роботи один і той же, ну а хто яким буде користуватися це вже вам вирішувати.

Як і хороша книга-з картинками, від себе додам, на цьому прикладі можна налаштувати большенство відомих FTP-серверів, у всіх принцип роботи один і той же, ну а хто яким буде користуватися це вже вам вирішувати

Частина 1
У міру підвищення доступності інтернету і локальних мереж у багатьох користувачів виникає бажання або необхідність обмінюватися файлами з іншими людьми. В принципі, це можна зробити і за допомогою "загального доступу", використовуючи вбудовані можливості операційної системи. Однак через інтернет це небезпечно і вимагає установки VPN, а в локальній мережі - не дозволяє лімітувати швидкість скачування і ваш комп'ютер може бути майже паралізований при активній стрибку великих файлів. Щоб уникнути всіх цих проблем слід поставити FTP-сервер, який дозволить гнучко управляти обсягами трафіку, централізовано маніпулювати списками доступних файлів і користувачів, а також використовувати для скачування файлів програми з докачкой після обриву (наприклад, ReGet )
Щоб далі були зрозумілі деякі настройки, розглянемо, що ж із себе представляє алгоритм роботи FTP.

Протокол FTP (File Transport Protocol), створений спеціально для передачі файлів, працює по двох портів. Клієнт коннектітся до сервера (за замовчуванням на 21-й порт) і передає йому команди, а для передачі файлів сервер коннектітся до клієнта, і вже по цьому каналу передаються файли. Такий режим (сервер коннектітся до клієнта) називається "PORT", і його неможливо використовувати користувачам виходять в інтернет через NAT, тому був придуманий режим, де для передачі файлів клієнт сам встановлює друге з'єднання - це називається "PASV" або "пасивний FTP-протокол ".

Microsoft Internet Explorer тільки починаючи з версії 5.5 навчився працювати в PASV-режимі (відповідну опцію можна включити в його параметрах). Однак режим "PORT" здаватися не став - в просунутих FTP-клієнтів (як, наприклад, GuteFTP, FTP-Voyager , і навіть Total Commander ) Можна вказати діапазон портів для PORT-режиму, які форварда на NAT до вашої машини і ці клієнти будуть просити сервер коннектітся саме на ці порти.

Є два варіанти передачі даних - Binary і ASCII. У режимі "Binary" дані передаються будь-які, але трохи повільніше; в режимі "ASCII" можуть передаватися тільки текстові файли. Режим передачі вибирається клієнтом, і зазвичай автоматично встановлюється ASCII-режим для TXT-, HTML-, INI-файлів і інших явно текстових. Краще завжди і для всіх файлів використовувати режим "Binary".

FTP може мати різні розширення в плані захисту від перехоплення трафіку. Захист від перехоплення може бути реалізована двома методами, в залежності від необхідного рівня безпеки.

По-перше, можна використовувати зашифровані паролі (OTP-MD5), в результаті чого по каналу зв'язку буде передано не пароль, а його хеш, причому з додаванням часу - тому зловмисники не зможуть дізнатися пароль, а за рахунок додавання часу повторна відправка копії хеша від зловмисників не прийметься. Це не дозволить зловмисникам увійти на персональний FTP-аккаунт.

По-друге, можливо шифрування всього FTP-трафіку (FTP SSL / TLS). Це не дозволить зловмисникам отримати всі ті файли, які ви передавали. Однак зазначу, що стандартні клієнти, спочатку присутні в Windows (Internet Explorer і ftp.exe), ніяких цих методів захисту від перехоплення не мають, тому користувачі вашого FTP-сервера повинні будуть використовувати альтернативні FTP-клієнти - CuteFTP або FTP-Voyager.

Що ж, початкові відомості про особливості FTP-протоколу ми отримали, а тепер настав самий час перейти до створення та налаштування власного FTP-сервера. Про те, як виконати цю операцію на прикладі програми Serv-U , Ми поговоримо в другій частині нашого матеріалу.

Частина 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_RootIncoming.

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

Проходимо на вкладку Dir Access, і додаємо там два наших каталогу - C: FTP_Root і C: FTP_RootIncoming

Даємо на них права доступу. Для 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".

Тут з'явилися FTP_Root і Incoming, причому редагувати їх не можна - це користувач отримав ті самі права для гостей з шаблону guest

Отже, гостя ми створили. Він може завантажувати будь-які файли з каталогу C: FTP_Root (виключаючи підкаталоги) і закачати який-небудь файл в C: FTP_RootIncoming, але завантажити його звідти він не зможе (таким чином, ваш сервер неможливо буде використовувати для несанкціонованої пересилання файлів).

Тепер створюємо якогось більш повноважного користувача. Для економії часу скопіюємо "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: DocMusic) показувалася в c: FTP_Root як ніби вона підкаталог FTP_Root. Натискаємо "Add" і заповнюємо: "Physical path" - каталог, до якого треба зробити посилання, пишемо c: DocMusic, "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: [email protected] - браузер (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".
Автор: Євген aka f2065

Ребілд: Morpheus aka OROPCHVPCHV | Fastus

На питання "Lock user in home directory?