
Установка 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 завершена.