Як створити FTP-сервер в Linux

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

Створюємо FTP-сервер в Linux

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

Крок 1: Установка VSftpd

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

  1. Відкрийте «Термінал» будь-яким зручним методом, наприклад, через меню.
  2. Перехід до взаємодії з консоллю в операційній системі Linux

  3. Володарям версій Debian або Ubuntu потрібно прописати команду sudo apt-get install vsftpd . CentOS, Fedora - yum install vsftpd , а для Gentoo - emerge vsftpd . Після введення натисніть на Enter, щоб запустити процес інсталяції.
  4. Команда для установки VSftpd в операційній системі Linux

  5. Підтвердіть наявність прав у свого облікового запису, вказавши відповідний пароль.
  6. Введення пароля для установки VSftpd в операційній системі Linux

  7. Чекайте завершення додавання нових файлів в систему.
  8. Процедура додавання файлів VSftpd в операційній системі Linux

Звертаємо увагу власників CentOS, які задіюють виділений віртуальний сервер від будь-якого хостингу. Вам буде потрібно провести оновлення модуля ядра ОС, оскільки без цієї процедури під час інсталяції відобразиться критична помилка. Послідовно вводите такі команди:

yum update
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum install yum-plugin-fastestmirror
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-3.15.6-1.el7.elrepo.x86_64.rpm
yum install kernel-ml-3.15.6-1.el7.elrepo.x86_64.rpm
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-3.15.6-1.el7.elrepo.x86_64.rpm
yum install kernel-ml-devel-3.15.6-1.el7.elrepo.x86_64.rpm
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-doc-3.15.6-1.el7.elrepo.noarch.rpm
yum install kernel-ml-doc-3.15.6-1.el7.elrepo.noarch.rpm
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-headers-3.15.6-1.el7.elrepo.x86_64.rpm
yum install kernel-ml-headers-3.15.6-1.el7.elrepo.x86_64.rpm
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-tools-3.15.6-1.el7.elrepo.x86_64.rpm
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-tools-libs-3.15.6-1.el7.elrepo.x86_64.rpm
yum install kernel-ml-tools-libs-3.15.6-1.el7.elrepo.x86_64.rpm
yum install kernel-ml-tools-3.15.6-1.el7.elrepo.x86_64.rpm
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-tools-libs-devel-3.15.6-1.el7.elrepo.x86_64.rpm
yum install kernel-ml-tools-libs-devel-3.15.6-1.el7.elrepo.x86_64.rpm
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/perf-3.15.6-1.el7.elrepo.x86_64.rpm
yum install perf-3.15.6-1.el7.elrepo.x86_64.rpm
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/python-perf-3.15.6-1.el7.elrepo.x86_64.rpm
yum install python-perf-3.15.6-1.el7.elrepo.x86_64.rpm
yum --enablerepo=elrepo-kernel install kernel-ml

Після закінчення всієї цієї процедури запустіть будь-яким зручним чином конфігураційний файл /boot/grub/grub.conf . Змініть його вміст таким чином, щоб в результаті такі параметри мали відповідні значення:

default=0
timeout=5
title vmlinuz-4.0.4-1.el7.elrepo.x86_64
root (hd0,0)
kernel /boot/vmlinuz-4.0.4-1.el7.elrepo.x86_64 console=hvc0 xencons=tty0 root=/dev/xvda1 ro
initrd /boot/initramfs-4.0.4-1.el7.elrepo.x86_64.img

Далі вам залишиться тільки перезавантажити виділений сервер і переходити до безпосередньої інсталяції FTP-сервера на комп'ютер.

Крок 2: Початкове налаштування FTP-сервера

Разом з програмою на комп'ютер був завантажений її конфігураційний файл, відштовхуючись від якого і відбуватися функціонування FTP-сервера. Всі настройки виконуються суто індивідуально за рекомендаціями хостингу або власними уподобаннями. Ми лише можемо показати, як відкривається цей файл і якими параметрами обов'язково слід приділити увагу.

  1. В операційних системах Debian або Ubuntu конфігураційний файл запускається так: sudo nano /etc/vsftpd.conf . У CentOS і Fedora він знаходиться по шляху /etc/vsftpd/vsftpd.conf , а в Gentoo - /etc/vsftpd/vsftpd.conf.example .
  2. Запустити конфігураційний файл VSftpd в операційній системі Linux

  3. В консолі або текстовому редакторі відобразиться сам файл. Тут зверніть увагу на такі пункти. У вашому файлі конфігурації вони повинні мати такі ж значення.

    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    chroot_local_user=YES

  4. Решта редагування здійснюйте самі, а потім не забудьте зберегти зміни.
  5. Зберегти конфігураційний файл VSftpd в операційній системі Linux

Крок 3: Додавання користувача з розширеними правами

Якщо ви збираєтеся працювати з FTP-сервер не через свою основну обліковий запис або хочете надати доступ іншим користувачам, створені профілі обов'язково повинні мати права суперкористувача, щоб при зверненні до утиліти VSftpd не виникало помилок з відмовою у доступі.

  1. Запустіть «Термінал» і введіть команду sudo adduser user1 , де user1 - ім'я нового облікового запису.
  2. Створити нового користувача через термінал в Linux

  3. Задайте для нього пароль, після чого підтвердіть його. Крім цього, настійно рекомендуємо запам'ятати домашній каталог облікового запису, в подальшому може знадобитися звернення до нього через консоль.
  4. Ввести пароль для нового користувача в операційній системі Linux

  5. Заповніть основну інформацію - повне ім'я, номер кімнати, номери телефонів та іншу інформацію, якщо потрібно.
  6. Додаткові дані нового користувача в Linux

  7. Після цього надайте користувачеві розширені права шляхом введення команди sudo adduser user1 sudo .
  8. Надати новому користувачеві розширені права Linux

  9. Створіть для користувача окрему директорію під зберігання його файлів через sudo mkdir /home/user1/files .
  10. Створити для користувача головну папку в Linux

  11. Далі переміститеся в свою домашню папку через cd /home і там зробіть нового користувача власником своєї директорії, ввівши chown root:root /home/user1 .
  12. Задати володіння для папки нового користувача в Linux

  13. Перезапустіть сервер після здійснення всіх змін sudo service vsftpd restart . Тільки в дистрибутиві Gentoo утиліта перезавантажується через /etc/init.d/vsftpd restart .
  14. Перезапустити FTP-сервер через консоль в Linux

Тепер ви можете робити всі необхідні дії на FTP-сервері від імені нового користувача, який має розширені правами доступу.

Крок 4: Налаштування Firewall (Тільки для Ubuntu)

Користувачі інших дистрибутивів можуть сміливо пропускати цей крок, оскільки настройка портів ніде більше не потрібно, тільки в Ubuntu. За замовчуванням Firewall налаштований таким чином, що не пропустить вхідний трафік з потрібних нам адрес, тому потрібно дозволити його проходження вручну.

  1. В консолі по черзі активуйте команди sudo ufw disable і sudo ufw enable , щоб перезапустити Firewall.
  2. Перезапустити Firewall в операційній системі Ubuntu

  3. Додайте правила вхідних з'єднань, використовуючи sudo ufw allow 20/tcp і sudo ufw allow 21/tcp .
  4. Додати нові правила в Firewall в операційній системі Ubuntu

  5. Перевірте, чи були застосовані введені правила, переглянувши статус фаервола sudo ufw status .
  6. Перевірити статус Firewall в операційній системі Ubuntu

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

  • /etc/init.d/vsftpd start або service vsftpd start - аналіз конфігураційного файлу;
  • netstat -tanp | grep LISTEN netstat -tanp | grep LISTEN - перевірка коректності установки FTP-сервера;
  • man vsftpd - виклик офіційній документації VSftpd для пошуку необхідної інформації стосовно роботи утиліти;
  • service vsftpd restart або /etc/init.d/vsftpd restart - перезавантаження сервера.

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

На цьому стаття добігає кінця. Сьогодні ми розібрали процедуру установки сервера VSftpd без прив'язки до якого-небудь хостингу, тому врахуйте це при виконанні наших інструкцій і порівнюйте їх з тими, що надає компанія, яка містить ваш віртуальний сервер. Крім усього, радимо ознайомитися з іншим нашим матеріалом, в якому розбирається тема установки компонентів LAMP.

Читайте також: Установка набору програм LAMP в Ubuntu