Налаштування та використання FTP-сервера в Ubuntu Linux. Установка та налаштування FTP-сервера в Linux Установка фтп сервера убунту 16.04

Жарознижувальні засоби для дітей призначаються педіатром. Але бувають ситуації невідкладної допомоги за лихоманки, коли дитині потрібно дати ліки негайно. Тоді батьки беруть на себе відповідальність і застосовують жарознижувальні препарати. Що можна давати дітям грудного віку? Чим можна збити температуру у старших дітей? Які ліки найбезпечніші?

Це можливість передавати файли за допомогою file transfer protocol. Він використовується для зручного обміну файлами по провідній та бездротовій місцевій мережі. Цим локальний сервер може бути корисним як у роботі, так і в домашніх умовах. З використанням Ubuntu, FTP-сервер ще зручніший, оскільки вимагає мінімум сил і ресурсів для налаштування та використання.

На базі Ubuntu можна встановити ftp-сервер.


Протокол обміну файлами сьогодні особливо часто використовують передачі власних ресурсів на сервери в інтернеті, а також між довіреними комп'ютерами. Добре відомі клієнти FTP для Windows, наприклад, FileZilla, націлені на взаємодію двох комп'ютерів, обмін даними між якими максимально простий та керований.

Протокол будується з урахуванням клієнт-серверної логіки. Це означає наявність двох технічних сторін- клієнта (чиї потреби обслуговуються) та сервера (який обслуговує потреби). Підключення до сервера може виконуватися як за допомогою відкритої аутентифікації (логін та пароль), так і анонімно (якщо підтримується). Незважаючи на це, протокол ФТП слабкий щодо захисту, особливо за стандартами сьогодення. Однак у Ubuntu встановлення FTP може містити деякі додаткові стандарти захисту.

Переходимо до практики. Демон Profpd

Для того, щоб установка FTP-сервера Ubuntu пройшла вдало, ми використовуємо так званий демон. Це програма, яка дозволяє виконувати рутинні завдання, будучи запущеною у фоні. Демон, який потрібен для FTP на Ubuntu – Proftpd. Його установка виконується простою командою в Терміналі:

"sudo apt-get install proftpd".

Коли інсталяцію буде завершено, потрібно оновити конфігурацію сервера та змінити базові налаштування. Це допоможе конфігурувати процес входу на сервер. Усі необхідні зміни потрібно вносити у файлі /etc/proftpd/proftpd.conf. Його можна одразу відкрити за допомогою редактора nano.

Отже, налаштування FTP-сервера Ubuntu розпочалося. Насамперед, змінимо 2 потрібні параметри.

У кінець файлу необхідно додати рядок:

"AuthUserFile /etc/proftpd/ftpd.passwd"

Саме в цьому документі, який ми запропонуємо додати пізніше, будуть зберігатися основні параметри входу. Забираємо символ коментаря з рядка "DefaultRoot" - "#". Тепер перейдемо до редагування файлу /etc/shells. До нього потрібно додати рядок "/bin/false". За допомогою цих команд ви зможете додавати нових користувачів до існуючої групи:

"addgroup ім'я_користувача група", якщо вставити "ім'я_користувача" = "ftp" і "група" = "www-data", то стає можливим працювати з файлами у "власності" сервера.

Крім того, встановлення FTP-сервера Ubuntu передбачає команду "change owner": "chown-R ftp: www-data". З її допомогою можна зробити власником файлів користувача FTP. Групі користувачів www-data буде надано груповий доступ до документів. Коли всі налаштування будуть завершені, просто перезавантажте сервер:

"sudo /etc/init.d/proftpd restart"

Тепер потрібно настроювати віртуальні облікові записи користувачів. Це необхідно робити за такою схемою:

"ftpasswd -passwd -file=/etc/proftpd/ftpd.passwd -name=(ім'я користувача) -shell=/bin/false -home=/var/www/html -uid=(ID користувача, можна дізнатися за командою " id ftp») -gid=(ID групи, допустимо для групи «www-data» – 33)

"sudo nano /etc/dhcp3/dhcpd.conf"

У нього потрібно записати таке:

«#Ім'я домену (внутрішнього).
option domain-name "ім'я_домену";
#DNS сервер на ПК, що підключається.
option domain-name-servers IP_адреса;
#З цього рядка потрібно прибрати коментар «#».
authoritative;
#Бажані дані підмережі для сервера.
subnet 192.168.0.0 netmask 255.255.255.0 (
#Діапазон видачі адрес.
range IP_адреса IP_адреса;
#Роутер із виходом в інтернет. option routers IP_адреса;
#Файл, що завантажується при початковому завантаженні в мережі.
filename = "tftp/pxelinux.0";

Тепер залишилося лише перезавантажити DHCP-сервер:

"sudo /etc/init.d/dhcp3-server restart".

Як бачите, налаштування FTP-сервера Ubuntu не потребує особливих технічних навичок. Крім того, вона досить проста у виконанні для кожного, хто працював у Linux.

На завершення

У цій статті ми детально та детально розглянули, як встановити FTP-сервер на Ubuntu, а також приділили увагу налаштуванню сервера TFTP. Ці інструменти - чудовий зразок того, наскільки Убунту гнучка та функціональна. Якщо у вас все ж таки з'явилися питання щодо її використання та налаштування - не соромтеся задавати їх у коментарях до цієї статті. Також читайте інші матеріали на сторінках нашого сайту.

FTP (File Transfer Protocol) – протокол передачі файлів. Протокол FTP дозволяє передавати та завантажувати файли з сервера. На сьогоднішній день цей протокол не є особливо популярним, оскільки він не підтримує шифрування даних. Замість FTP використовують протокол SFTP (передача даних SSH), і навіть протокол SCP . У цій статті розглянуто налаштування звичайного FTP-сервера на базі Ubuntu.

Протокол FTP працює як клієнт-сервер. Сервер постійно слухає запити від віддалених клієнтів на 21 порту. При отриманні запиту він керує входом та встановлює з'єднання. Протягом сесії сервер виконує будь-які команди, передані клієнтом FTP. Як протокол транспортного рівня використовується TCP. Для передачі даних FTP використовує два типи з'єднання:

  1. Керуюче з'єднання (порт 21)
  2. З'єднання даних (в активному режимі порт 20, у пасивному будь-який порт більше 1024)

Поділ на керуюче з'єднання та з'єднання для передачі даних є ефективним. Це дозволяє передавати команди та файли незалежно один від одного.

FTP підтримує два типи аутентифікації:

  1. Анонімний (логін ftp або anonymous, пароль – електронна пошта)
  2. Авторизований (логін та пароль у кожного користувача свій)

Під час роботи за протоколом FTP між клієнтом та сервером може бути встановлено два режими: активний та пасивний. Керуюче з'єднання однакове для активного та пасивного режиму. Клієнт ініціює TCP-з'єднання з динамічного порту (1024-65535) до порту номер 21 на FTP-сервері, після чого відбувається аутентифікація. Подальші дії залежать від того, який режим вибрано.

В активному режимі після аутентифікації клієнт повідомляє серверу також номер свого порту (з динамічного діапазону 1024 – 65535) для того, щоб сервер міг підключитися до клієнта для встановлення з'єднання передачі даних. FTP-сервер підключається до заданого номера порту клієнта, використовуючи зі свого боку номер TCP-порту 20 передачі даних.

У пасивному режимі після аутентифікації сервер повідомляє клієнту номер TCP-порту (з динамічного діапазону 1024 - 65535), до якого можна підключитися для встановлення з'єднання передачі даних.

Таким чином, в активному режимі ініціатором з'єднання є сервер, оскільки він підключається до клієнта. У пасивному режимі ініціатор з'єднання – клієнт.

Активний режим "шкідливий" для клієнта в тому плані, що коли до нього по випадковому порту підключається сервер, таке з'єднання буде заблоковано брандмауером на стороні клієнта. Таким чином, необхідно відкривати порти на стороні клієнта, що призводить до “дір” у безпеці. З іншого боку, для сервера такий режим буде корисним, оскільки передачі даних використовується загальновідомий порт 20.

Пасивний режим "шкідливий" у свою чергу для сервера, але "вигідний" для клієнта. Клієнт робитиме обидва з'єднання до сервера, але одне з них буде до випадкового високого порту, таке з'єднання блокуватиме брандмауером на стороні сервера.

Пасивний режим використовується, як правило, коли між клієнтом та сервером знаходиться міжмережевий екран.

Найбільш популярні команди FTP:

Команда Опис
USER Вказати ім'я користувача
PASS Вказати пароль
LIST Перегляд вмісту каталогу
CWD Зміна поточного каталогу
RETR Надіслати файл із сервера на клієнт
STOP Надіслати файл із клієнта на сервер
TYPE Встановити режим передачі
DELE Видалити файл
MDK Створити каталог
RMD Видалити каталог
PASV Використовувати пасивний режим
QUIT Вихід та розрив з'єднання

FTP має три режими передачі:

  1. Поточний – безперервна передача даних як потоку (без обробки, обробка виконується TCP)
  2. Блоковий - FTP поділяє дані на блоки (заголовок, поле даних, розмір файлу в байтах) і передає їх TCP
  3. Режим стиснення єдиним алгоритмом

FTP-сервер – “бібліотека” файлів на хостингу, що використовується для зберігання файлів різних форматів. Найпопулярніші ftp-сервери це vsftpd і proftpd. FTP-сервера потрібні для того, щоб розміщувати на них для публічного та приватного скачування великих обсягів даних. Часто сервери використовуються для анонімного (гостевого) доступу до розміщених у відкритому вигляді дистрибутивів програмного забезпечення, музики та фото. Доступ для анонімів дозволяє, як правило, лише переглядати каталоги та завантажувати необхідну інформацію, але на деяких серверах навпаки є спецкаталоги, куди будь-який користувач може завантажити файл для спільного користування.

При неанонімному доступі можливостей більше, але вони обмежені тим каталогом, куди доступ.

Перейдемо до налаштування сервера. Працюватимемо з такою схемою.

Доступ до FTP-сервера матиме як адміністратор, так і користувач. Адміністратор та користувач мають авторизований доступ. При цьому необхідно налаштувати права доступу таким чином, щоб адміністратор мав необмежений доступ, а користувач мав доступ лише до своєї домашньої директорії. Також потрібно настроїти анонімний доступ.

У Ubuntu для сервера DHCP доступний демон vsftpd. Встановлюємо DHCP-сервер, це виконується командою:

testServer$ sudo apt-get install vsftpd

За замовчуванням заборонено анонімне завантаження. Необхідно змінити конфігурацію у файлі /etc/vsftpd.conf.

testServer$ sudo nano /etc/vsftpd.conf

Знаходимо там рядок "anonymous_enable" і надає їй значення "Yes". Цей рядок відповідає за доступ до FTP-сервера для анонімних користувачів.

Також необхідно розкоментувати два рядки: write_enable і chroot_local_user. Перший рядок відповідає за можливість запису на сервер, другий рядок блокує можливість локальних користувачів підніматися на каталог вище, ніж їхня домашня папка.

Наприкінці файлу конфігурації додаємо дві настройки:

Ці установки встановлюють домашні папки для анонімних та локальних користувачів.

Зберігаємо конфігурацію файлу поєднанням клавіш Ctrl + X (при пропозиції замінити поточний файл вибираємо Yes). Далі необхідно перезавантажити сервер FTP командою

testServer$ sudo service vsftpd restart

Наступний етап – це створення користувачів.

Створюємо суперкористувача командою:

testServer$ sudo adduser superuser

Задаємо йому пароль:

testServer$ sudo passwd superuser

Даємо йому необмежені права:

testServer$ sudo adduser superuser sudo

Створюємо звичайного користувача:

testServer$ sudo adduser user

Задаємо йому пароль:

testServer$ sudo passwd user

Введіть новий UNIX password: 12345

Створюємо групу користувачів для керування папками:

testServer$ sudo addgroup groupl

testServer$ sudo nano /etc/group

Знаходимо рядок “groupl” з допомогою Ctrl + W.

У цей рядок додаємо наших користувачів superuser та user.

Створюємо папки для користувачів:

testServer$ sudo mkdir /srv/ftp/upload

testServer$ sudo mkdir /srv/ftp/superuser

testServer$ sudo mkdir /srv/ftp/user

Задаємо права доступу для папок:

testServer$ sudo chmod 700 /srv/ftp/superuser

testServer$ sudo chmod 770 /srv/ftp/user

testServer$ sudo chmod 575 /srv/ftp/upload

Змінюємо власників папок:

testServer$ sudo chown superuser: /srv/ftp/superuser

testServer$ sudo chown user:groupl /srv/ftp/user

testServer$ sudo chown:groupl /srv/ftp/upload

Таким чином, у нас виходить наступна картина:

  1. До папки superuser має доступ тільки користувач superuser, він є власником цієї папки
  2. До папки user має доступ як user, і superuser. Це через те, що ми виставили права 7 7 0. Друга сімка встановлює повні права для групи користувачів groupl, до якої ми додали superuser.
  3. До папки upload повний доступ мають як user, так і superuser. Для всіх інших встановлені лише права на читання та виконання 5 75 . 5 = 101 (у двійковій системі). 101 ~ r-x. Тобто решта користувачів (а до них відноситься анонімний) не можуть нічого записувати в папці upload.

Перевіряємо права доступу та власників командою:

testServer$ ls -l /srv/ftp

Для того щоб перевірити доступ до FTP-сервера, необхідно в будь-якому браузері в адресному рядку набрати:

ftp://172.16.1.2

У цьому випадку ми потрапляємо як анонімний користувач, тому що не вводимо ім'я та пароль.

Бачимо три папки superuser/, upload/, user/.Оскільки ми зайшли під анонімним користувачем доступ є лише до папки upload/.

Для того, щоб увійти під ім'ям користувача вводимо:

ftp:// [email protected]

Вводимо ім'я користувача: superuser, пароль: 12345 . Під superuser'ом ми отримуємо доступ до всіх папок.

Перевіримо наостанок звичайного користувача. Щоб не вводити ім'я та пароль щоразу під час входу, можна в адресному рядку написати наступне:

ftp://user: [email protected]

Під user'ом ми можемо потрапляти лише у папки upload/і user/. До папки superuser/доступ заборонено.

Підтримайте проект

Друзі, сайт Netcloud щодня розвивається завдяки вашій підтримці. Ми плануємо запустити нові рубрики статей та деякі корисні сервіси.

Ви маєте можливість підтримати проект і внести будь-яку суму, яку вважаєте за потрібну.

F ile T ransfer P rotocol, тобто FTP – протокол передачі файлів і, як відомо з повної назви, призначений передачі файлів між віддаленими комп'ютерамичерез мережу. Незважаючи на те, що сам протокол FTP є на сьогоднішній день не найдосконалішим через те, що дані, що передаються, не шифруються, проте це не робить його застарілим. Крім того все-таки до FTP можна використовувати криптографічний захистна основі протоколу SSL, що і робить FTP гідним інструментом передачі файлів.

Оскільки FTP працює за схемою клієнт-серверної взаємодії, то вміла і надійна реалізація протоколу (та й взагалі системи) може забезпечити йому надійний захист, високу швидкість і, як наслідок - популярність, що і можна спостерігати на сьогодні, адже більшість великих проектів , таких як ftp.gnu.org , ftp.suse.com , ftp.redhat.com , ftp.gnome.org і т. д. використовують для поширення програмного забезпечення зі своїх серверів саме FTP. Слід зазначити, що така популярність FTP зобов'язаний, переважно, однією зі своїх численних реалізацій - vsFTPd. Це FTP-сервер, що підтримує роботу з самими сучасними технологіямиіз захисту даних - SSL та IPv6, його реалізація поєднує в собі високу надійність, стабільність, швидкість роботи та передачі даних, а також гнучке налаштування роботи сервера та широкий функціонал. Розробником vsFTPd є Кріс Еванс - професійний дослідник у сферах захисту даних та інформаційної безпеки. vsFTPd є FTP-сервером за замовчуванням практично у всіх Linux-системах, оскільки, як уже згадувалося, крім надійності та високої швидкостіроботи, має великі функціональними можливостями, Найзначнішими з яких є:

  1. Робота з віртуальними користувачами
  2. Робота з віртуальними IP-адресами.
  3. Налаштування користувачів.
  4. Підтримка
  5. SSL-шифровані для захисту даних, що передаються.
  6. Контроль смуги пропускання.

У цій статті розглядається встановлення та налаштування FTP-сервера на прикладі vsFTPd, який, до речі, є вільно розповсюдженим програмним забезпеченням(ПЗ) з відкритим вихідним кодом. Офіційна сторінка проекту: https://security.appspot.com/vsftpd.html.

Установка vsFTPd

Встановити Vsftd у Debian-орієнтованих дистрибутивах Linux дозволяє команда:

$ sudo apt-get install vsftpd

Також корисно встановити і простий FTP-клієнт для тестування з'єднання та передачі файлів:

$ apt-get install ftp

Для дистрибутивів на основі RPM-пакетів, CentOS, RedHat:

$ yum install vsftpd $ yum install ftp

Зазвичай після встановлення демон vsFTPd автоматично запускається, переконатися в цьому можна за допомогою наступних команд:

$systemctl status vsftpd

$ service vsftpd status

Запуск, перезапуск та зупинення сервера:

$systemctl start vsftpd $systemctl restart vsftpd $systemctl stop vsftpd

Для включення демона vsftpd в автозавантаження використовується команда:

$systemctl enable vsftpd

Аналогічно і з командою Service.

Якщо vsFTPd використовується в серверних дистрибутивах, в яких часто працює фаєрвол, наприклад ufw, то може знадобитися дозволити використання портів 20 і 21:

$ufw allow 20/tcp $ufw allow 21/tcp

Налаштування vsFTPd

Конфігураційним файлом налаштування vsFTPd є файл vsftpd.conf, який зазвичай знаходиться в каталозі etc/. Ознайомитись з його одержимим можна командою cat:

$cat /etc/vsftpd/vsftpd.conf

Про всяк випадок корисно перед редагуванням оригінального файлу налаштувань зробити його резервну копію:

$ sudo cp /etc/vsftpd.conf vsftpd.conf.backup

FTP-сервер vsFTPd передбачає два основні варіанти роботи: з анонімними та авторизованими користувачами. Перший варіант вважається «безпечнішим», але тільки тому, що для забезпечення надійного захисту практично нічого налаштовувати і не потрібно. Але при грамотній організації авторизованого доступу, що передбачає роботу з FTP локальних користувачів системи, можна забезпечити безпеку не гірше, ніж при використанні анонімного доступу.

Налаштування в режимі анонімного доступу

Робота vsFTPd в даному режимі полягає в тому, що дії з файлами на віддаленому сервері виконуються одним за замовчуванням користувачем, наприклад, користувачем з ім'ям « ftp» або « anonymous», при цьому як пароль використовується e-mail.

Щоб увімкнути анонімний доступ по FTP, потрібно у фалі vsftpd.conf визначити значення «YES» для відповідної директиви:

Anonymous_enable=YES

Тепер для керування файлами використовуватиметься певний каталог (зазвичай це /srv/ftp) і певний користувач - зазвичай ftp.

Можна визначити й інше розташування файлів для анонімного доступу FTP, тобто. змінити домашню директорію користувача ftp:

$ sudo mkdir /srv/share/ftp $ sudo usermod -d /srv/share/ftp ftp

Якщо потрібно, щоб анонімні користувачі могли ще й завантажувати файли на віддалений сервер, це дозволить зробити директива:

Anon_upload_enable=YES

Тепер можна скопіювати необхідні для анонімного доступу файли до домашньої папки користувача ftp і перезапустити демон vsftpd:

$systemctl restart vsftpd

Зазвичай, цього набору налаштувань достатньо для організації анонімного FTP-доступу. Для перевірки з'єднання можна виконати команду ftp address_host:

$ ftp 127.0.0.1

$ftp localhost

що у разі успішного виконання дасть приблизно такий висновок:

Налаштування в режимі авторизованого доступу

Local_enable=YES

Write_enable=YES

Тепер потрібно перезапустити vsftpd для активації змін:

$systemctl restart vsftpd

Обмеження користувачів у своїх домашніх каталогах

Для визначення користувачів, яким дозволено доступ лише до свого домашнього каталогу, існують директиви:

Chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list

Перша включає використання списку користувачів, друга визначає файл, в якому в кожному рядку перераховані користувачі з доступом лише до своїх домашніх каталогів. Якщо при цьому ще вказати директиву:

Chroot_local_user=YES

яка «замикає» в chroot() локальних користувачів і вище своїх домашніх каталогів вони піднятися не зможуть, то в цьому випадку користувачі у файлі vsftpd.chroot_list не будуть обмежуватися своїми домашніми каталогами, на відміну від тих, хто в цей список не внесений.

При розподілі FTP-доступу серед користувачів може виникнути помилка, яка виникає через те, що локальний користувач має право на запис у корені домашнього каталогу, що з міркувань безпеки є неприпустимим. Ця помилка виглядає так:

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

Найкращим способом виправити цю помилку є вказівка ​​якогось загального кореневого каталогу, куди при підключенні потраплятимуть усі користувачі, маючи доступ лише до своїх домашніх піддиректорій, наприклад:

Local_root=/home

Можна також вимкнути перевірку на запис у домашній каталог для усунення цієї помилки:

Allow_writeable_chroot=YES

Але все ж таки це варто робити лише тоді, коли є чітке розуміння, навіщо це потрібно для конкретної ситуації.

Захист даних за допомогою SSL

Щоб мати можливість шифрувати дані, що передаються, слід налаштувати vsFTPd в режимі FTPS. Це та сама передача даних по FTP, але організована поверх SSL – протоколу. Шифрує та перевіряє дані за допомогою сертифікатів та ключів.

Для включення режиму FTPS необхідно задіяти таку директиву:

Ssl_enable=Yes

За промовчанням у конфігураційному файлі vsftpd.conf також є опції, що визначають сертифікати та ключі, наприклад:

Rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Цей сертифікат і ключ необхідно замінити. Для використання FTPS необхідно використовувати сертифікат та ключ. Cгенеровані (або отримані) для конкретного сервера чи комп'ютера.

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.

FTP або File Transfer Protocol - це досить давній, але в той же час надійний і перевірений протокол вивантаження файлів на сервер або їх скачування. Іноді цей протокол застосовується веб-майстрами для керування файлами або організації сховища даних.

У цій статті ми розглянемо, як виконується встановлення FTP на Ubuntu 16.04, як налаштувати всі необхідні компоненти, зокрема і захищене з'єднання. Ми будемо використовувати FTP-сервер VSFTPD або Very Secure FTP Daemon, який забезпечує найнадійніший захист від уразливостей.

Програма доступна з офіційних репозиторіїв, тому встановлення FTP на Ubuntu Server 16.04 не повинно викликати проблем. Спочатку оновіть список пакетів у репозиторіях, а потім встановіть саму програму:

sudo apt update
$ sudo apt install vsftpd

Коли установку буде завершено, вам необхідно увімкнути сервіс vsftpd, оскільки він не буде запущений за умовчанням, а також додати службу до автозавантаження:

sudo systemctl start vsftpd
$ sudo systemctl enable vsftpd

Якщо у вас встановлено фаєрвол ufw, а така ситуація виникає, коли ви намагаєтеся встановити FTP на Ubuntu Server, потрібно відкрити порти 20 та 21 для нормальної роботи. Щоб це зробити, виконайте такі команди:

sudo ufw allow 20/tcp
$ sudo ufw allow 21/tcp
$ sudo ufw status

Установка FTP Ubuntu завершена, але тепер вам залишилося налаштувати все необхідне для забезпечення безпечної роботи. Ніколи не використовуйте FTP-сервер з налаштуваннями за замовчуванням виробничих мережах, це не безпечно.

Налаштування FTP Ubuntu

Тепер перейдемо до налаштування. Нам потрібно змінити лише кілька параметрів, щоб повністю захистити ваш FTP-сервер. Спочатку ми розглянемо найочевидніші налаштування: відключення анонімного входу тощо. Спочатку необхідно скопіювати оригінальний файл налаштувань, щоб у разі проблем повернути все як було:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Потім відкрийте файл у редакторі:

sudo vi /etc/vsftpd.conf

Потім додайте такі настройки. Вам потрібно буде знайти та змінити значення вказаних рядків, додавати нові, якщо вони вже є, не варто. Спочатку відключаємо анонімний вхід:

anonymous_enable = NO

Дозволяється використовувати імена локальних користувачів для входу:

write_enable = YES

Встановимо значення umaskдля нових файлів, створюваних за FTP:

local_umask = 022

Включаємо повідомлення про необхідність вибрати каталог після реєстрації:

dirmessage_enable = YES

Записувати в лог файл усі транзакції з передачі файлів та використовувати стандартний формат лога:

xferlog_enable = YES
xferlog_std_format=YES

Використовувати порт 20 для передачі даних замість випадкового, це потрібно для нормальної роботи фаєрволу:

connect_from_port_20 = YES

Вказуємо, що слід очікувати вхідних з'єднань:

Використати PAM-сервіс vsftpd:

pam_service_name=vsftpd

На завершення дозволимо аутентифікацію лише користувачів, перерахованих у файлі userlist:

userlist_enable = YES

Вказуємо файл із нашими віртуальними користувачами:

userlist_file=/etc/vsftpd.userlist

За замовчуванням таким користувачам заборонено вхід до системи, але ми хочемо зовсім зворотне, тому додайте такий рядок:

userlist_deny=NO

При вході користувачів на сервер FTP, вони можуть працювати тільки в кореневому каталозі FTP. Якщо ви хочете, щоб користувачі були обмежені лише своєю домашньою папкою, необхідно розкоментувати ці рядки:

chroot_local_user = YES
allow_writeable_chroot = YES

Перший рядок вказує, що потрібно розмістити користувача в ізольованому домашньому каталозі, а другий, що йому можна дозволити запис до цього каталогу. Налаштування FTP Ubuntu майже завершено, збережіть зміни в конфігураційному файлі та перезапустіть vsftpd:

sudo systemctl restart vsftpd

Тестування vsftpd

Сервер готовий, але система налаштована ще повністю. Спочатку створимо нашого тестового користувача за допомогою useradd:

sudo useradd -m -c "Test User" -s /bin/bash testuser
$ sudo passwd testuser

Оскільки ми хочемо підключатися від його імені до FTP-сервера, нам потрібно додати його в vsftpd.userlist:

echo "testuser" | sudo tee -a /etc/vsftpd.userlist
$cat /etc/vsftpd.userlist

Тепер саме час підключиться до нашого FTP-сервера та перевірити, як там все працює. Спробуємо увійти від імені анонімного користувача:

У нас нічого не вийде. Тепер спробуємо увійти від імені нашого тестового користувача, і все запрацює як слід.

Зверніть увагу, що небезпечно давати користувачам доступ до запису до їхньої домашньої папки. Робіть це тільки якщо впевнені в тому, що це необхідно і безпечно.

Налаштування домашніх папок користувачів

Щоб хоч якось уникнути проблем з безпекою, ви можете використовувати іншу папку замість домашньої для надання її користувачеві. Спочатку створимо таку папку для нашого користувача:

sudo mkdir -p /home/testuser/ftp/files

Приберемо право на запис для папки ftp:

sudo chown nobody:nogroup /home/testuser/ftp
$ sudo chmod a-w /home/testuser/ftp

Потім дайте необхідні повноваження користувачеві на запис у підпапку.

sudo chown -R testuser:testuser /home/testuser/ftp/files
$ sudo chmod -R 0770 /home/testuser/ftp/files/

Тепер повернемося до файлу конфігурації vsftpd.conf. Спочатку закоментуйте рядок:

allow_writeable_chroot = YES

Тепер додайте такі рядки:

user_sub_token = $USER
local_root=/home/$USER/ftp

Перша з них додає змінну $USER, в якій міститься ім'я користувача, а друга задає кореневу папку для кожного користувача. Залишилось знову перезапустити FTP-сервер:

sudo systemctl restart vsftpd

Тепер ви можете увійти від імені цього користувача і побачите, що зараз використовується вказана нами папка.

Налаштування захищеного з'єднання

Установка FTP на Ubuntu 16.04 завершена, але в наш час небезпечно використовувати відкриту передачу даних через мережу. Все, що можливо, необхідно шифрувати. Тому ми розглянемо, як настроїти захищене з'єднання для vsftpd. Спочатку створимо папку і згенеруємо сам сертифікат, який використовуватимемо:

sudo mkdir /etc/ssl/private
$ sudo openssl req -x509 -nodes -days 720 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/private/vsftpd.pem

Потім потрібно дозволити доступ до портів захищеного FTP з фаєрволе UFW:

sudo ufw allow 990/tcp
$ sudo ufw allow 40000:50000/tcp
$ sudo ufw status

І залишилося внести кілька правок в налаштування FTP-сервера. Нам потрібно увімкнути ssl_enableта вимкнути підтримку шифрування sslv2і sslv3, залишаємо тільки tlsv1:

ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key

Забороніть вхід анонімних користувачів SSL:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

Тепер встановимо найскладніший шифр SSL:

ssl_ciphers=HIGH

І налаштуємо діапазон портів для передачі даних:

pasv_min_port=40000
pasv_max_port=50000

Залишилось перезавантажити наш сервіс:

sudo systemctl restart vsftpd

Тепер тестуємо, що в нас вийшло:

Тепер усі дані передаватимуться зашифрованим з'єднанням. Установку FTP-сервера Ubuntu завершено.

Висновки

У цій статті ми розглянули, як виконується установка FTP на Ubuntu Server 16.04, як налаштувати FTP для максимально безпечної роботи, включаючи налаштування роботи з SSL. Якщо у вас залишилися питання, запитуйте у коментарях!

Нещодавно я писав про те, на свій комп'ютер. Це дуже корисно для вебмайстра, тому що встановивши собі такий "домашній" сервер, можна проводити різні експерименти з тестовими сайтами або просто вести їхню розробку.

Але є одна проблема: якщо ви, наприклад, спробуєте на такому локальному серверівстановити той же плагін в wordpress, то отримайте відмову: " Не вдалося підключитися до FTP-сервера localhost:21"

Як ви розумієте, вам потрібно встановити та налаштувати ftp сервер на своєму комп'ютері, щоб здійснити встановлення плагінів. Як встановити ftp серверна свій комп'ютер у Linux?

Linux має багато безкоштовних серверів, я пробував кілька і зупинився на vsftpd. Цей сервер легкий і простий у налаштуванні.

1. Як встановити ftp сервер vsftpd?

Встановити його можна однією командою:

Sudo apt-get install vsftpd

Після встановлення сервера нам потрібно його трохи під налаштувати. Але спочатку протестуємо наш ftp сервер, введемо до браузера таку адресу: ftp://127.0.0.1/ Ми повинні побачити наступне:


Але мало встановити сервер vsftpd, як ви бачите робиться просто, важливо налаштувати ftp сервер. Але і це робиться просто, якщо дотримуватися мого досвіду.

2. Як настроїти ftp сервер vsftpd?

Щоб дістатися до налаштувань сервера, введіть у терміналі команду:

Sudo gedit /etc/vsftpd.conf

Видаляємо з цього файлу всю і вставляємо ось це:

Listen=YES # робимо анонімний доступ, з правом запису anonymous_enable=YES no_anon_password=YES anon_root=/ ШЛЯХ ДО ПАПКИ З САЙТОМ! anon_upload_enable = YES anon_mkdir_write_enable = YES anon_other_write_enable = YES anon_umask = 022 # дозволяємо вхід локальним користувачам з правом запису в домашніх директоріях local_enable = YES local_umask = йо chroot_local_user=YES chroot_list_enable=YES # налаштування журналу xferlog_enable=YES vsftpd_log_file=/var/log/vsftpd.log

Перезавантажуємо ftp сервер командою:

Sudo /etc/init.d/vsftpd restart

Так, ще дуже важливо! На папку з сайтом і всім файлам до неї потрібно дати доступ 755, публічні права на запис давати папці НЕ МОЖНА!

Встановити нову, більш правильну версію сервера можна додавши:

Sudo add-apt-repository ppa:thefrontiergroup/vsftpd sudo apt-get update sudo apt-get install vsftpd

Після цього йдемо в адмінку WordPress і намагаємося встановити якийсь плагін. Нас попросять ввести адресу сервера, логін та пароль. У рядку сервера пишемо 127.0.0.1 , а логін та пароль пишемо - anonymous

Якщо у вас з'явиться помилка: Не вдалося визначити каталог вмісту WordPress (wp-content), то потрібно в кінець файлу wp-config.php вставити такий код:

If (is_admin()) ( add_filter ("filesystem_method", create_function("$a", "return "direct";")); define ("FS_CHMOD_DIR", 0751); )

Після цього у мене все запрацювало. Так настроювання vsftpd сервера для мене закінчилося. Ось так можна встановити та налаштувати ftp сервер vsftpdна своєму домашньому комп'ютері.

Такий сервер, звичайно, не буде надто продуктивним, це вам не справжній сервер IBM HS23e SSD диски. І якщо ви дасте до нього доступ всієї своєї локальної мережі, Ваш комп'ютер може неабияк попотіти, постійно щось копіюючи.

Але моя мета вам зрозуміла, але вона, звісно, ​​не єдина. FTP сервер на своєму комп'ютері можна використовувати для різних цілей, і найчастіше такі прості налаштування вам підійдуть. Якщо ні, то в мережі багато мануалів з налаштування цього FTP сервера. Успіхів!

Дописую: як виявилося, в моєму випадку взагалі можна обійтися без FTP. Простіше працювати через SSH та плагіна ssh-sftp-updater-support, який додає протокол SSH у WordPress. Так набагато безпечніше і не потрібно піднімати сервер FTP.


Чи не знайшли відповідь на своє запитання? Скористайтеся пошуком...

Підтримайте проект - поділіться посиланням, дякую!
Читайте також
Як встановити безкоштовний антивірус аваст Як встановити безкоштовний антивірус аваст Як очистити комп'ютер від вірусів самостійно Як очистити комп'ютер від вірусів самостійно Як повністю очистити комп'ютер від вірусів Як повністю очистити комп'ютер від вірусів