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

Настройка 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 Linux и настройки сети я рекомендую приступить к настройке обновлений. Для обновления и установки пакетов в Debian используются утилиты apt и aptitude. Независимо от того, какой из этих утилит Вы будете...

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

      SSH Подключение с использованием открытого ключа...Для подключения с авторизацией по открытому ключу сначала нужно сгенерировать секретный ключ на стороне клиента. Делаем это с правами обычного пользователя: $ ssh-keygen –t rsa В процессе генерации пары ключей сначала будет предложено ввести желаемое название...

    • Как обновить 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...

    • Насторйка OpenSSH

      Насторйка OpenSSHНастройки sshd находятся в файле /etc/ssh/sshd_config. Открываем этот файл для редактирования и изменяем его содержимое для наших нужд, не забывая при этом о безопасности. Первый параметр – Port. По умолчанию используется 22 порт....

    • Интерактивный режим aptitude

      Интерактивный режим aptitudeВ первой части статьи рассказывалось об управлении пакетами с помощью aptitude в режиме командной строки. Теперь рассмотрим интерактивный режим этой программы. Управление программой производится с клавиатуры. Для входа в интерактивный...

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

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