Жарознижувальні засоби для дітей призначаються педіатром. Але бувають ситуації невідкладної допомоги за лихоманки, коли дитині потрібно дати ліки негайно. Тоді батьки беруть на себе відповідальність і застосовують жарознижувальні препарати. Що можна давати дітям грудного віку? Чим можна збити температуру у старших дітей? Які ліки найбезпечніші?
Це можливість передавати файли за допомогою 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 використовує два типи з'єднання:
- Керуюче з'єднання (порт 21)
- З'єднання даних (в активному режимі порт 20, у пасивному будь-який порт більше 1024)
Поділ на керуюче з'єднання та з'єднання для передачі даних є ефективним. Це дозволяє передавати команди та файли незалежно один від одного.
FTP підтримує два типи аутентифікації:
- Анонімний (логін ftp або anonymous, пароль – електронна пошта)
- Авторизований (логін та пароль у кожного користувача свій)
Під час роботи за протоколом 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 має три режими передачі:
- Поточний – безперервна передача даних як потоку (без обробки, обробка виконується TCP)
- Блоковий - FTP поділяє дані на блоки (заголовок, поле даних, розмір файлу в байтах) і передає їх TCP
- Режим стиснення єдиним алгоритмом
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
Таким чином, у нас виходить наступна картина:
- До папки superuser має доступ тільки користувач superuser, він є власником цієї папки
- До папки user має доступ як user, і superuser. Це через те, що ми виставили права 7 7 0. Друга сімка встановлює повні права для групи користувачів groupl, до якої ми додали superuser.
- До папки 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-системах, оскільки, як уже згадувалося, крім надійності та високої швидкостіроботи, має великі функціональними можливостями, Найзначнішими з яких є:
- Робота з віртуальними користувачами
- Робота з віртуальними IP-адресами.
- Налаштування користувачів.
- Підтримка
- SSL-шифровані для захисту даних, що передаються.
- Контроль смуги пропускання.
У цій статті розглядається встановлення та налаштування 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.
Чи не знайшли відповідь на своє запитання? Скористайтеся пошуком...