Самое прекрасное — это когда нужна поддержка сайта, а ты сидишь с телефоном
в руке и ЗНАЕШЬ, чей номер набрать! т. +7 831 4637611 моб. +7 910 3820622
WhatsApp +7 953 5571863 Skype aitishnik
Айтишник РУ Нижний Новгород, Симферопольская, 21 ПН-ПТ 08 - 18
от 500 RUB до 200 000 RUBlogo aitishnik.ru
Настройка GNU/Linux Debian

Настройка FTP сервера. Более сложная конфигурация

Рассмотрим более сложную конфигурацию: анонимные пользователи всё так же имеют доступ только на чтение. Локальные пользователи не используются. Вместо них используются виртуальные пользователи, учётные записи которых хранятся в MySQL. Каждому виртуальному пользователю можно задать свои параметры работы с FTP. Используется PAM авторизация.

За основу возьмём предыдущую конфигурацию. Установим MySQL и поддержку авторизации PAM:

# aptitude install mysql-server mysql-client libpam-mysql

Во время установки будет создан суперпользователь root для управления MySQL. Нужно будет задать пароль для этого пользователя.

Авторизуемся в MySQL:

# mysql -u root -p

Создаём базу данных для хранения информации о пользователях FTP:

CREATE DATABASE vsftpd;

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'passftpd';

FLUSH PRIVILEGES;

Создаём таблицу для хранения пользователей и паролей. Таблица называется users и содержит три поля: id — целочисленный идентификатор пользователя, login — имя пользователя и pass — пароль пользователя. Под пароль отведено 60 символов, т. к. пароли хранятся в зашифрованном виде и длина шифра на много превышает длину секретного слова. Логины пользователей в таблице будут уникальными:

USE vsftpd;

CREATE TABLE users (

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,login VARCHAR(60) NOT NULL UNIQUE ,pass VARCHAR(60) NOT NULL) ;

Заводим в нашей базе данных пользователя для работы.

INSERT INTO users (login, pass) VALUES('firstuser', PASSWORD('topsecret'));

Выходим из MySQL:

quit;

Открываем файл /etc/vsftpd.conf и редактируем его, чтобы получилось следующее:

# Запускать vsftpd в независимом режиме

listen=YES

# Установки для публичного FTP

max_clients=100

max_per_ip=40

hide_ids=YES

idle_session_timeout=600

data_connection_timeout=120

dirmessage_enable=YES

ftpd_banner=Welcome!

# Делаем анонимный доступ

anonymous_enable=YES

# Анонимные входят без пароля

no_anon_password=YES

# Анонимные будут попадать в публичную директорию

anon_root=/var/ftp/pub

anon_umask=022

# Гостевой вход. Не анонимный вход рассматривается как гостевой

guest_enable=YES

guest_username=ftpuser

nopriv_user=ftpuser

# Исползуем PAM

pam_service_name=vsftpd

# Виртуальные пользователи будут иметь права локальных пользователей

virtual_use_local_privs=YES

local_root=/var/ftp/$USER

user_sub_token=$USER

# Специальные настройки пользователей находятся в этой директории

user_config_dir=/etc/vsftpd/user_conf

# Разрешаем вход для теперь уже виртуальных пользователей

local_enable=YES

write_enable=YES

local_umask=022

# Виртуальные пользователи будут входить в свои «домашние» каталоги

chroot_local_user=YES

chroot_list_enable=NO

# Сообщения будут записываться в собственный журнал

xferlog_enable=YES

xferlog_file=/var/log/vsftpd.log

Создаём директорию, в которой будут располагается конфигурационные файлы пользователей FTP сервера:

# mkdir -p /etc/vsftpd/user_conf

Настроим PAM авторизацию. Сделаем резервную копию файла /etc/pam.d/vsftpd

# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_old

Очистим его:

# cat /dev/null > /etc/pam.d/vsftpd

И отредактируем следующим образом:

# vim /etc/pam.d/vsftpd

auth required pam_mysql.so user=vsftpd passwd=passftpd host=localhost db=vsftpd table=users usercolumn=login passwdcolumn=pass crypt=2

account required pam_mysql.so user=vsftpd passwd=passftpd host=localhost db=vsftpd table=users usercolumn=login passwdcolumn=pass crypt=2

Рестартуем vsftpd:

# /etc/init.d/vsftpd restart

Создаём для пользователя firstuser директорию:

# mkdir /var/ftp/firstuser

Меняем владельца:

# chown ftpuser:nogroup /var/ftp/firstuser

Создаём файл со специальными настройками для firstuser. Для этого, в папке /etc/vsftpd_user_conf создадим файл с именем пользователя

# touch /etc/vsftpd/user_conf/firstuser

и подредактируем его:

# vim /etc/vsftpd/user_conf/firstuser

В данном файле можете зададим следующие параметры:

# Домашний каталог для пользователя firstuser. Можно задать какой #угодно путь к домашнему каталогу. Например:/var/ftp/

local_root=/var/ftp/firstuser/

# Ограничим скорость для данного пользователя

local_max_rate=15000

ну и так далее для для разных параметров.

Сохраняем файл и рестартуем vsftpd:

/etc/init.d/vsftpd restart

Создадим ещё одного пользователя: seconduser.

Mysql -u root -p

USE vsftpd;

INSERT INTO users (login, pass) VALUES('seconduser', PASSWORD('topsecret'));

quit;

Создаём для пользователя seconduser директорию:

# mkdir /var/ftp/seconduser

Меняем владельца:

# chown ftpuser:nogroup /var/ftp/seconduser

Создаём файл со специальными настройками для seconduser. Для этого, в папке /etc/vsftpd_user_conf создадим файл с именем пользователя

# touch /etc/vsftpd/user_conf/seconduser

и подредактируем его:

# vim /etc/vsftpd/user_conf/seconduser

Нарпимер, запретим запись:

write_enable=NO

Рестартуем vsftpd. Всё.

Не забываем, что владельцем корневого каталога /var/ftp должен быть пользователь ftpuser с правами 755. Если пользователю не определены персональные настройки, он будет иметь права пользователя ftpuser и попадать в его домашний каталог.

Скачать пакет файлов, используемых в статье можно по следующим ссылкам:

в формате zip

в формате tar.bz2

Теперь можно рассмотреть настройку ftp сервера с шифрованием

Помните, что у нас вы можете не только купить готовый сайт или заказать его разработку, но и подобрать подходящий тариф поддержки сайта, заказать продвижение сайта в поисковых системах, а так же зарегистрировать домен в одной из двухсот доменных зон и выбрать недорогой тариф хостинга! Айтишник РУ

Об авторе:

ZolkinМеня зовут Андрей Золкин. Из более, чем пятнадцати лет работы в сфере информационных технологий, десять лет работаю с системами, базирующимися на открытом исходном коде. На страницах сайта Aitishnik.Ru веду блоги по CMC Joomla и Debian GNU/Linux.

 

Ещё статьи о Debian

    • Установка Debian

      Установка DebianЭта статья об установке операционной системы Debian GNU/Linux. Тема статьи достаточно обширна и это скорее тема для книги, нежели для статьи. Мне бы хотелось сделать статью «на вырост», т. е. со временем дополняя её ссылками на другие...

    • Локальный хостинг на XAMPP в Debian

      Локальный хостинг на XAMPP в DebianЭта статья своим появлением обязана блогу о Joomla 3. В блоге о Joomla в числе прочего рассматривается возможность создания локального хостинга на домашнем компьютере под управлением операционной системы Windows. Организация домашнего хостинга производится с помощью пакета XAMPP. Этот пакет рекомендует команда...

    • Как обновить Debian 5 Lenny до Debian 6 (Squeeze)

      Как обновить Debian 5 Lenny до Debian 6 (Squeeze)Обновление системы Debian 5 Lenny до Debian 6 Squeeze проводится точно так же, как обновление Debian 4 Ethc до Debian 5 Lenny. На всякий случай продублирую статью изменив в ней названия дистрибутивов. На момент написания этой статьи произошла смена стабильного дистрибутива Debian. Вместо Debian...

    • SSH Подключение с использованием ключа хоста...

      SSH Подключение с использованием ключа хоста...Теперь попробуем подключиться к нашему серверу, который выполняет и функцию ssh сервера, с настройками по умолчанию. Позже мы изменим настройки согласно нашим нуждам и требованиям безопасности. Для подключения по SSH нам нужны учётные...

    • Настройка FTP сервера в Debian 5 (Lenny)

      Настройка FTP сервера в Debian 5 (Lenny)В этой статье я опишу настройку FTP сервера на базе Debian 5 (Lenny). Будем использовать vsftpd. VSFTPD (Very Secure FTP Daemon) — как следует из названия, очень защищённый демон FTP, с хорошей производительностью, поддерживаются: IPv6,...

    • Управление пакетами с помощью aptitude в Debian...

      Управление пакетами с помощью aptitude в Debian...После того, как подключены репозитории и настроено обновление системы, самое время заняться установкой необходимого программного обеспечения. Программное обеспечение для Debian распространяется в виде пакетов и исходного кода. Причём...