Установка VSFTPD с виртуальными пользователями на CentOS

Установка VSFTPD с виртуальными пользователями на CentOS

Хочу рассказать как я устанавливал  VSFTPD на CentOS, будет работать и на RedHat и Fedora. В данной статье «Установка VSFTPD с виртуальными пользователями на CentOS» я приведу подробные инструкции по установке и настройке данного FTP сервера под названием VSFTPD.

vsftpd (англ. Very Secure FTP Daemon) — это один из FTP-серверов который поддерживает IPv6 и SSLи он есть сервером ФТП по умолчанию во многих ОС.

Основные возможности VSFTPD

  • Поддерживает виртуальные ip.
  • Поддерживает виртуальных пользователей.
  •  Поддерживает работы через [x]inetd так и отдельно.
  •  Можно настроить ФПТ доступ для каждого пользователя.
  •  увеличение полосы пропускания.
  •  Поддерживает настройки для каждого ip.
  •  Поддерживает лимитов для каждого ip.
  •  Поддерживает протокол IPv6.

Устанавливка пакета с VSFTPd.

# yum -y install vsftpd

Сейчас, установим пакет баз данных (нужен будет для хранения пользователей)

# yum install compat-db

Создаем пользователя для ftp (у меня это  virtualftp):

# adduser -d /home/virtualftp/ virtualftp -s /sbin/nologin

Нужно отредактировать конфиг vsftpd сервера:

# vim /etc/vsftpd/vsftpd.conf
[...]

pam_service_name=vsftpd-db

[...]

В этот файл так же добавляем блок о виртуальных пользователях (я этот блок добавил в самы низ открытого файла).

# Virtual users will be logged into /home/vweb/[username]/
user_sub_token=$USER
local_root=/home/virtualftp/$USER
guest_enable=YES
guest_username=virtualftp
# Umask applied for virtual users and anon
anon_umask=0022
# Allows uploading by virtual users
anon_upload_enable=YES
# Allows creation of directories by virtual users
anon_mkdir_write_enable=YES
# Allows deletion of files and directories by virtual users
anon_other_write_enable=YES

Сейчас необходимо создать  так же файл для хранения всех пользователей:

# vim /etc/pam.d/vsftpd-db

session optional pam_keyinit.so force revoke
auth required /lib64/security/pam_userdb.so debug db=/etc/vsftpd/login
account required /lib64/security/pam_userdb.so debug db=/etc/vsftpd/login

При этом файл с паролями будет в /etc/vsftpd/login.db

Создадим файл с пользователями FTP:

# vim /etc/vsftpd/login.txt

В этот файл нужно прописать пользователей с ихними паролями в таком виде:

your_user1
your_pass1
your_user2
your_pass2

После этого нужно сгенерировать файл с паролями для всех пользователей:

# rm /etc/vsftpd/login.db
# db42_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db
# chmod 600 /etc/vsftpd/ftpusers /etc/vsftpd/login.txt

Создадим папки для пользователей

# mkdir -p /home/virtualftp/your_user1
# mkdir -p /home/virtualftp/your_user2

Выставляем права для сервера:

# chown -R virtualftp:virtualftp /home/virtualftp/
# chmod -R 644 /home/virtualftp/
# find /home/virtualftp/ -type d -exec chmod 755 {} \;

Запустим VSFTPd

# service vsftpd start

Я добавлю VSFTPD в автозагрузку ОС:

# chkconfig vsftpd on

После этого можно пользоваться данным FTP сервером.

Если установлен IPtables, то также должны добавить несколько правил в брандмауэре, чтобы принять соединения на FTP порты.
Чтобы открыть порты в IPTables введите следующие команды:

# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

Затем, сохраняем новые правила:

# service iptables save

Перезагружаем iptables:

# service iptables restart

Установка VSFTPD с виртуальными пользователями на CentOS  завершена.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.