Счетчик

Поисковый анализ сайта
яндекс.ћетрика
Cервер и сайт запущен 2011.02.01 на Debian

Всем доброго времени суток друзья, сегодня я Вам расскажу как быстро поднять ftp сервер для различных нужд.
Во первых нам понадобиться mysql сервер в базе данных будут храниться пользователи. Это очень удобно.
Во вторых нам понадобиться phpmyadmin- он потребуется нам для создания БД и пользователей, это лучший вариант чем все вбивать в консоли.
В третьих на понадобиться сам ftp сервер, я остановился на сборке vsftpd и так устанавливаем.

apt-get install vsftpd libpam-mysql



Создаем в phpmyadmin MySQL базу данных под vsftpd
назовем ее приметивно vsftp и нажимаем кнопку создать
Далее выбираем эту БД и нажимаем на ссылку SQL и вставляем следующий код

CREATE TABLE `accounts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 30 ) NOT NULL ,
`pass` VARCHAR( 50 ) NOT NULL ,
UNIQUE (
`username`
)
) ENGINE = MYISAM ;



Запустив в браузере ссылку- http://IP_servers/phpmyadmin/ вы попадете в утилиту phpmyadmin.
С помощью этой утилиты вы можете создать или изменить эту же базу данных (vsftpd), и тут же просмотреть её.
Позже с помощью неё вы сможете управлять вашим vsftpd сервером.

Далее:
Конфигурируем vsftpd

В начале создаем непривилегированного пользователя vsftpd (с домашней директорией: /home/vsftpd) входящего в группу: nogroup. Домашние директории виртуальных пользователей, в дальнешем будут расположены в этой /home/vsftpd директории (например: /home/vsftpd/pupkin и т.д.)

useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd



Сохраняем оригинальный /etc/vsftpd.conf файл и создаем другой:

cp /etc/vsftpd.conf /etc/vsftpd.conf_orig
cat /dev/null > /etc/vsftpd.conf
nano /etc/vsftpd.conf



Вставляем в открывшееся окно следующий текст:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
nopriv_user=vsftpd
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
guest_enable=YES
guest_username=vsftpd
local_root=/home/vsftpd/$USER
user_sub_token=$USER
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd_user_conf


сохраняем созданный файл.

Для использования в дальнейшем опций: user_config_dir, создадим спец директорию:

mkdir /etc/vsftpd_user_conf


В эту директорию в дальнейшем вы можете класть файлы конфигурации VSFTPD для отдельных пользователей.

Так же должны сконфигурировать PAM для ваших виртуальных FTP пользователей с аутентификацией в MySQL базе данных вместо расположения в /etc/passwd и /etc/shadow. Конфигурационный файл для PAM под vsftpd должен находится в папке /etc/pam.d/vsftpd. Сохраняем оригинальный и создаем новый:

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_orig
cat /dev/null > /etc/pam.d/vsftpd
gedit /etc/pam.d/vsftpd



Вставляем в открывшееся окно следующий текст:

auth required pam_mysql.so user=vsftpduser passwd=ftpdpassuser host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
account required pam_mysql.so user=vsftpduser passwd=ftpdpassuser host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2


Сохраняем этот файл.

Помните теперь что вы единственный, кто может восстановить ваш MySQL пароль !

Рестартуем наш vsftpd сервер:

/etc/init.d/vsftpd restart



Создаем первого виртуального пользователя

Заходим вновь на phpmyadmin выбираем БД vsftpd и нажимаем на sql втсавляем туда следующий запрос

INSERT INTO accounts (username, pass) VALUES('vsftpduser', PASSWORD('ftpdpassuser '));


Домашняя директория vsftpduser’а будет здесь /home/vsftpd/vsftpduser.
Если она не создалась автоматически, создадим эту директорию вручную в группе: nogroup:
mkdir /home/vsftpd/vsftpduser
и даем права на группу

chown vsftpd:nogroup /home/vsftpd/vsftpduser



Теперь через любой FTP клиент для Linux или Windows, или используя просто браузер, вы можете соединится c вновь созданным сервером, используя имя vsftpduser и пароль ftpdpassuser.


Спасибо за внимание! Будут вопросы спрашивайте!!!!



Дополнение, нашел в сети очень хороший скрипт который облегчает создание изменение удаление пользователей, чуток помучился и у меня получилось. Качаем скрипт здесь распаковываем его у себя на локальном компе. Далее через sftp загружаем на сервак открываем vsftpd_user_control.sh на редактирование, удаляем все оттуда (были проблемы с кодировкой). Далее открываем на своей локально машине этот файл например notepadd++ я ей давно пользуюсь очень удобно. Копируем и переносим это все на сервак. Меняя следующее ftp_login=vsftpduser ftp_path="/srv/vsftpd/" #Путь к директориям пользователей vsftpd
ftp_backup_dir="/srv/vsftpd_back/" #Путь к резервной копии директорий пользователей изменяем на свои, сохраняем. И наконец ./vsftpd_user_control.sh запускаем, отвечаем на вопросы и так далее, все отлично работает. Автору Александру Астапову огромное спасибо!!!

Дополнение

Если скрипт не запускается то Вам надо просто запустить его в bash
Вот так

bash vsftpd_user_controltar.sh


И должен работать

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


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