Руководства

FTP-Сервер В Ubuntu 10.04

Моя задача была поднять FTP-сервер + открыть к нему доступ из интернета. Для выполнения этой задачи был выбран сервер proftpd. О его установке и настройке я хочу поведать Вам сегодня. В статье написано пошагово как это сделать:

Устанавливаем пакет proftpd:

sudo aptitude install proftpd

Отвечаем на появившийся вопрос о способе запуска: «самостоятельно». Открываем файл /etc/shells:

sudo gedit /etc/shells

Добавляем в него строку:

/bin/false

Создаем в /HOME каталоге папку FTP-shared(Не обязательно в корне /HOME и не обязательно такое имя папки, это просто пример):

sudo mkdir /home/FTP-shared

Теперь создаем пользователя с именем userftp(ну или что поинтересней):

sudo useradd userftp -p pass -d /home/FTP-shared -s /bin/false

Вместо «pass» – ввести свое слово или фразу в качестве пароля(не вводите только цифры, работать не будет). В папке FTP-shared создаем две вложенные папки(называем как хотим):

sudo mkdir /home/FTP-shared/public
sudo mkdir /home/FTP-shared/upload

Присвоим права созданным папкам:

sudo chmod 755 /home/FTP-shared
sudo chmod 755 /home/FTP-shared/public
sudo chmod 777 /home/FTP-shared/upload

FTP-shared и public – только чтение. upload – запись. Переименовываем имеющийся конфигурационный файл proftpd.conf и создаем новый:

sudo mv /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.old
sudo gedit /etc/proftpd/proftpd.conf

Добавляем в него: proftpd Если Вы создавали структуру папок, имя пользоватля и т.д не как в статье, то редактируйте данный файл под себя. После произведенных действий фтп-сервер будет иметь следующие параметры доступа:

user (пользователь): test
password (пароль): pass (тот, что присвоен для userftp)

Можно создать несколько пользователей, но все они должны быть прописаны в файле proftpd.conf. Если нужно сделать анонимный доступ, следует закомментировать обе секции для test и раскомментировать секцию для Anonymous. Сервер запущен, но с параметрами по умолчанию, перезагружаем его:

sudo /etc/init.d/proftpd restart

Что бы узнать, кто подключен к фтп-серверу в данный момент используется команда ftptop (клавиша t меняет отображение, q – выход). Полезные советы: Если нужно подключить какую-либо папку к фтп-серверу (например, проверить работу только что созданного фтп-сервера) без редактирования конфига пригодится команда:

sudo mount -o bind /здесь/путь/папки/что/я/хочу/расшарить/ /home/FTP-shared/public

или с доступом на запись:

sudo mount -o bind /здесь/путь/папки/что/я/хочу/расшарить/ /home/FTP-shared/upload

Таким образом можно в срочном порядке временно подключить папку или диск и потом отмонтировать командой:

sudo umount /home/FTP-shared/public
sudo umount /home/FTP-shared/upload

Для постоянного доступа к нужным папкам подключаем их посредством fstab. Бэкап файла fstab:

sudo cp /etc/fstab /etc/fstab.old

Открываем файл /etc/fstab:

sudo gedit /etc/fstab

и добавляем нужные пути:

/здесь/путь/папки/что/я/хочу/расшарить /home/FTP-shared/public none bind 0 0

Теперь даже при рестарте компьютера информация будет доступна, если сервер за роутером то только в локальной сети. Что бы увидеть фтп-сервер из интернета нужно дать ему внешний ip-адрес. Для этого следует открыть нужный порт (в данном случае 21) для локального адреса (вида 192.168.xxx.xxx) на котором висит сервер, для доступа извне. Следующим шагом нужно дать внешнему динамическому IP-адресу постоянный адрес. Сделать это можно при помощи сервиса DynDNS.com(регистрируемся), создав при помощи его удобный и запоминающийся адрес (вида moi-server.homeip.net). Устанавливаем ddclient:

sudo apt-get install ddclient

Вводим регистрационные данные с DynDNS.com на вопросы пакета. Изменяем ServerName «server» в файле proftpd.conf на ServerName «moi-server.homeip.net». Перезагружаем фтп-сервер:

sudo /etc/init.d/proftpd restart

Пользуемся Автор статьи - Монахов Сергей Спасибо за предоставленную статью


 

Комментарии   

 
#29 Влад 24.04.2012 14:58
как скачать и установить файл профтпд (или скопировать текст оттуда
Цитировать
 
 
#28 gns 11.04.2012 07:22
550 ошибка
sudo chmod -R 755 /home/FTP-shared/public

с 777 правами бует 550 ошибка.
Цитировать
 
 
#27 Talgat 12.12.2011 10:22
Спасибо всем! Все получилось, благодаря статье и комментариям. У кого ошибка 503 проверьте, я тоже парился вводил имя USERFTP, когда ввел test все нормально стало
Цитировать
 
 
#26 fedro 28.11.2011 11:16
Цитирую baklazan:
Все сделал как прописали.
Все работает Спасибо за инфу !
Но осталась одна не решенная проблема - невозможно скопировать файлу с FTP сервера.
Подскажите где копать.
- sudo chmod 777 /var/www - стоит.


я так же столкнулся с этой проблемой. есть решение?
Цитировать
 
 
#25 Ubiquitous 18.10.2011 07:05
Полдня пропарился с proftpd ошибкой 530. Не могу сказать, что именно помогло, но всё заработало после того, как я проделал следующее: 1) выяснилось, что папка /home/FTP-share d принадлежит root, пришлось поправить: sudo chown -R userftp /home/FTP-share d
Вернул нормальный шелл юзеру sudo usermod userftp -s /bin/bash

залогинился под этим юзером su userftp и ...разлогинился logout
обратно выставил шелл-заглушку sudo usermod userftp -s /bin/false
Ну и профтпд перезапустил: sudo /etc/init.d/pro ftpd restart
P. S. За статью спасибо! Я проковырявшись с предлагаемым конфигом пришёл к тому то восстановил стандатный из бэкапа и, благодаря статье, подкрутил его чуточку под себя. Всё работает отлично.
Вопреки мнению одного из комментаторов
DefaultRoot /home/FTP-share d и DefaultRoot ~ должны быть выставлены оба, если не хочешь, чтобы через ftp можно было по всей файловой системе полазить.
Цитировать
 
 
#24 nafanya 25.09.2011 09:00
Респект автору, все отлично написано.
Цитировать
 
 
#23 baklazan 20.09.2011 07:44
Все сделал как прописали.
Все работает Спасибо за инфу !
Но осталась одна не решенная проблема - невозможно скопировать файлу с FTP сервера.
Подскажите где копать.
- sudo chmod 777 /var/www - стоит.
Цитировать
 
 
#22 bondarenkosss 12.09.2011 12:41
Цитирую ar2ra:
Цитирую pep3l:
Цитирую Кирилл:
Всем кто не может залогинится делайте так:

sudo useradd userftp -d /home/FTP-shared -s /bin/false
sudo passwd userftp

не надо ничего закомментировывать

все дело в том, что при вводе команды
sudo useradd userftp -p pass -d /home/FTP-shared -s /bin/false
пароль мало того что видно в открытую, так еще в /etc/shadow он сохраняется как есть (в незашифрованном виде), это и порождает проблемы (логин принимается, а пароль неправильный, это видно по логам). А passwd использует шифрование и делает как надо! Пожалуйста))



Огромное человеческое спасибо!!!!

молодец


Вот спасибо! Я уже было надежду потерял настроить ftp!!! Спасибо! Спасибо! Спасибо!
Цитировать
 
 
#21 Oleg2 18.08.2011 09:17
У кого 503
надо логиниться пользователем donet
Цитировать
 
 
#20 onik 03.07.2011 09:32
Беда такая.
сделал вроде все как в статье. сервер работает, вроде бы... создал файл в папке upload. а скачать его не могу. пишет ошибка 550. а если через хром зайти то пишет что страница не доступна.
Цитировать
 

Добавить комментарий


Защитный код
Обновить




Аккаунт



Мы в соц. сетях