Установка и настройка FTP сервера на базе Debian 7

Дата публикации: 30-06-2014 | Автор: MelfisFettel | Рубрика: Ubuntu Server, Без рубрики

Установка vsftpd сервера на DebianТак как мы являемся подписчиками Microsoft Action Pack, то можем пользоваться программными продуктами Microsoft за небольшую, я бы сказал символическую плату.
Однако, есть там и подводный камень. После очередного продления подписки, оказалось что программное обеспечение установленное в рамках нашей подписки необходимо обновить до «актуальной» версии. То есть Windows Server 2008R2 до windows Server 2012. Соответсвенно то же самое с сервером БД и так далее. Было принято решение отказаться от платформы WS в пользу linux системы, а точнее Debian.

Конечно же я выбрал Debian :) . Так как инструменты типа IIS сервера мне никогда не нравились, на старой винде был поднят Hyper-V, а на нем уже Ubuntu rfr web сервер, однако функционал FTP сервера нес на себе File Zilla, который тоже необходимо было чем то заменить. Для этого отлично подойдет vsftpd сервер с виртуальными пользователями.

Процесс самой установки Debian я не буду описывать. Для начала подключим репозитарий и обновим установленные пакеты.
Откроем на редактирование /etc/apt/sources.list и добавим туда новый репозитарий deb http://ftp.us.debian.org/debian jessie main contrib non-free:

1
nano /etc/apt/sources.list
nano /etc/apt/sources.list

Вот так выглядит содержимое моего sources.list:

1
2
3
4
5
6
7
deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main
 
deb http://ftp.ru.debian.org/debian/ wheezy main non-free contrib
deb-src http://ftp.ru.debian.org/debian/ wheezy main non-free contrib 
 
deb http://ftp.us.debian.org/debian jessie main contrib non-free
deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main

deb http://ftp.ru.debian.org/debian/ wheezy main non-free contrib
deb-src http://ftp.ru.debian.org/debian/ wheezy main non-free contrib 

deb http://ftp.us.debian.org/debian jessie main contrib non-free

Теперь обновимся и установим необходимые пакеты:

1
2
3
aptitude update
aptitude upgrade
sudo aptitude install vsftpd libpam-pwdfile db4.8-util apache2-utils #Apache так, для полноты картины
aptitude update
aptitude upgrade
sudo aptitude install vsftpd libpam-pwdfile db4.8-util apache2-utils #Apache так, для полноты картины

После того как все пакеты будут установлены, нам необходимо создать базу виртуальных пользователей нашего FTP сервера. Для этого
создадим файл который будет содержать в себе пару (логин-пароль). Например:

1
touch /home/melfis/vsftpusers
touch /home/melfis/vsftpusers

И заполним его по следующему принципу:

1
2
3
4
Пользователь1
ПарольПользователя1
Пользователь n
ПарольПользователя n
Пользователь1
ПарольПользователя1
Пользователь n
ПарольПользователя n

Теперь внесем эти данные в нашу базу данных:

1
sudo db4.8_load -T -t hash -f /home/melfis/vsftpusers /etc/vsftpd/users.db
sudo db4.8_load -T -t hash -f /home/melfis/vsftpusers /etc/vsftpd/users.db

В принципе хранить файл /home/melfis/vsftpusers не обязательно, скорее даже вредно, но я бы его оставил, на всякий случай, если надо будет например напомнить пользователю его пароль.

Теперь настроим сам vsftpd сервер

Файл основной конфигурации находится тут: /etc/vsftpd.conf и нам необходимо его отредактировать, с начала сделаем его копию на всякий случай.

1
2
3
4
cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
rm /etc/vsftpd.conf
touch /etc/vsftpd.conf
sudo nano /etc/vsftpd.conf
cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
rm /etc/vsftpd.conf
touch /etc/vsftpd.conf
sudo nano /etc/vsftpd.conf

И запишем в него следующую конфигурацию:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
listen=YES # основные настройки сервера
anonymous_enable=NO #Отключаем анонимных пользователей
use_localtime=YES  #Используем локальное время сервера
force_dot_files=YES #?????????
connect_from_port_20=YES
 
 
#Настройки логирования
xferlog_enable=YES
dual_log_enable=YES
 
secure_chroot_dir=/var/run/vsftpd
                                                                                          
                                                   
local_enable=YES #Разрешаем соединение локальных и виртуальных пользователей
user_sub_token=$USER  #Указываем расположение директорий виртуальных пользователей
guest_enable=YES
guest_username=ftp #гостевая учетная запись
local_root=/home/ftp/$USER
write_enable=YES  #Глобально разрешаем запись
hide_ids=YES #Скроем ID
chroot_local_user=YES  #Не дадим пользователям выходить из своего каталога
virtual_use_local_privs=YES # Выдаем привилегии виртуальным пользователям
 
allow_writeable_chroot=YES #Разрешим запись в свой каталог
 
pam_service_name=vsftpd.virtualusers #Сама PAM служба (Этот файл необходимо будет создать)
listen=YES # основные настройки сервера
anonymous_enable=NO #Отключаем анонимных пользователей
use_localtime=YES  #Используем локальное время сервера
force_dot_files=YES #?????????
connect_from_port_20=YES


#Настройки логирования
xferlog_enable=YES
dual_log_enable=YES

secure_chroot_dir=/var/run/vsftpd
                                                                                          
                                                   
local_enable=YES #Разрешаем соединение локальных и виртуальных пользователей
user_sub_token=$USER  #Указываем расположение директорий виртуальных пользователей
guest_enable=YES
guest_username=ftp #гостевая учетная запись
local_root=/home/ftp/$USER
write_enable=YES  #Глобально разрешаем запись
hide_ids=YES #Скроем ID
chroot_local_user=YES  #Не дадим пользователям выходить из своего каталога
virtual_use_local_privs=YES # Выдаем привилегии виртуальным пользователям

allow_writeable_chroot=YES #Разрешим запись в свой каталог

pam_service_name=vsftpd.virtualusers #Сама PAM служба (Этот файл необходимо будет создать)

Теперь создадим файл службы PAM

1
touch /etc/pam.d/vsftpd.virtualusers
touch /etc/pam.d/vsftpd.virtualusers

И запишем в него следующую конфигурацию:

1
2
3
auth       required     pam_userdb.so db=/etc/vsftpd/users
account    required     pam_userdb.so db=/etc/vsftpd/users
session    required     pam_loginuid.so
auth       required     pam_userdb.so db=/etc/vsftpd/users
account    required     pam_userdb.so db=/etc/vsftpd/users
session    required     pam_loginuid.so

На этом мы практически закончили. Теперь необходимо создать каталоги для виртуальных пользователей:

1
2
3
sudo mkdir /home/ftp
sudo mkdir /home/ftp/ИМЯ ПОЛЬЗОВАТЕЛЯ
sudo chown -R ftp:nogroup /home/ftp/
sudo mkdir /home/ftp
sudo mkdir /home/ftp/ИМЯ ПОЛЬЗОВАТЕЛЯ
sudo chown -R ftp:nogroup /home/ftp/

Перезапускаем сервер vsftpd

1
sudo /etc/init.d/vsftpd restart
sudo /etc/init.d/vsftpd restart

И проверить подключение к серверу FTP на Debian.

Понравилась статья? Расскажи друзьям:


Комментариев (2)

Мб FTP а не FPT? Или это такая замануха для алхимиков?

Да, и верно опечаточка. Спасибо. Исправил.

Обсудить