browser icon
You are using an insecure version of your web browser. Please update your browser!
Using an outdated browser makes your computer unsafe. For a safer, faster, more enjoyable user experience, please update your browser today or try a newer browser.

Простий FTP сервер

Posted by on 4 Січня 2014

Створення простого FTP сервераЗнадобилося мені організувати простенький FTP сервер. Мені не потрібні були ні які заморочки із групами і правами. Треба було просто щоб користувач “Vasya” мав можливість копіювати, та й власне робити все що завгодно із файлами лише у своїй теці /var/www/vasya,  а користувач “Petro”  –  відповідно у своїй теці /var/www/petro. Ну і щоб Вася не лазив до файлів Петра і навпаки. Порившись трохи в Інтернеті, виявилося що існує маса утиліт для створення FTP сервера. Найперше я натрапив на популярний сервер під назвою proftpd, який мене задовольнив,  тому і опишу установку і налаштування останнього.

Ставимо  FTP сервер та обираємо тип запуску “standalone” (самостійно):

> apt-get install proftpd-basic

Тепер щодо користувачів. Вини можуть бути двох типів: реальними і віртуальними. Реальні користувачі це такі самі користувачі ядра Linux, як скажімо admin, root, або user – вони реєструються безпосередньо в операційній системі Linux мають власні права, доступ, тощо. Паролі і конфігурація яких також зберігається у файлах ядра. Про віртуальних користувачів  знатиме ж лише FTP сервер proftpd, і з операційною системою вини працюватимуть лише від імені якогось (як правило одного)  вже існуючого у системі користувача. Даний механізм є зручним якщо потрібно дати доступ багатьом користувачам одночасно, і плодити системних користувачів не є доцільним.

Для роботи з віртуальними користувачами, в кінець конфігураційного файлу /etc/proftpd/proftpd.conf додамо стрічку, яка повідомляє, що для авторизації (пам’ятає пароль і налаштування) користувачів буде застосовуватись файл ftpd.passwd:

AuthUserFile /etc/proftpd/ftpd.passwd

ОС Linux працює з користувачами за їхнім user ID. Ми створимо віртуальних користувачів “Vasya” і  “Petro”, які працюватимуть від імені щойно встановленого користувача proftpd. Дізнаємось ID користувача proftpd, та ID групи:

id proftpduid=106(proftpd) gid=65534(nogroup) groups=65534(nogroup)

Створюємо користувача “Vasya” (аналогічно і користувача “Petro“), де вказуємо отриманий user ID (106), ID групи (65534) та адресу домашньої теки (/var/www/vasya/):

> ftpasswd –passwd –file=/etc/proftpd/ftpd.passwd –name=vasya –shell=/bin/false –home=/var/www/vasya/ –uid=106 –gid=65534

Щоб наші віртуальні користувачі “Vasya” і  “Petro” лазили лише по своїм домашнім текам, і не вище, не забуваємо також додати стрічку “DefaultRoot ~” у файл конфігурації, який матиме наступний остаточний вигляд:

Налаштування сервера (файл /etc/proftpd/proftpd.conf ) SEL[+]

Перезавантажуємо сервіс:

service proftpd restart

Все, починаємо заливати фали 🙂

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

ftpcount – виводить число підключених в даний момент клієнтів.
ftpdctl – управляє запущеним сервером proftpd.
ftptop – аналог команди top для процесів proftpd.
ftpwho – виводить список підключених до сервера користувачів.
ftpshut – дозволяє виконати зупинку всіх запущених proftpd-серверів в зазначений час (аналог системної команди shutdown).

 

При написанні даної нотатки я підглядав тут:

– http://www.artcom-ufa.ru/posts/2011/05/19/ustanovka-i-nastroika-proftpd

– http://amsand.narod.ru/articles/proftpd.html

– http://www.thomas-krenn.com/en/wiki/Setup_FTP_Server_under_Debian

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься.