vsftpd - простий надійний FTP сервер, який ми інсталюємо на pfSense. Налаштовувати сервер будемо за допомогою системних користувачів.
Інсталяція
pfSense 2.4 базується на FreeBSD 11, отже встановлювати будемо з відповідного репозиторію:pkg add https://pkg.freebsd.org/FreeBSD:11:amd64/quarterly/All/vsftpd-ssl-3.0.3_2.txzВ процесі створюється користувач ftp, домашній каталог /var/ftp
Головний файл конфігурації серверу знаходиться в /usr/local/etc/vsftpd.conf
Перед тим як його правити переконайтесь чи є резервна копія /usr/local/etc/vsftpd.conf.dist
В разі потреби робимо резервну копію:
cp /usr/local/etc/vsftpd.conf /usr/local/etc/vsftpd.conf.bak
Налаштування
Тепер редагуємо /usr/local/etc/vsftpd.conf через веб-інтерфейс pfSense (Diagnostics - Edit File):ftpd_banner=Welcome to FTP server
listen=YES
listen_port=2005
background=YES
pasv_enable=YES
pasv_min_port=2000
pasv_max_port=2010
dirmessage_enable=NO
idle_session_timeout=3600
local_enable=YES
chroot_local_user=YES
anonymous_enable=YES
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
#anon_other_write_enable=NO
#anon_world_readable_only=NO
#max_per_ip=5
max_clients=35
write_enable=YES
xferlog_enable=NO
secure_chroot_dir=/usr/local/share/vsftpd/empty
allow_writeable_chroot=YES
#https://www.benscobie.com/fixing-500-oops-vsftpd-refusing-to-run-with-writable-root-inside-chroot/
user_config_dir=/usr/local/etc/vsftpd_users
chmod_enable=YES
local_umask=022
anon_umask=022
#file_open_mode=022
Рядок user_config_dir=/usr/local/etc/vsftpd_users вказує, що є додаткові конфігурації для кожного користувача, це нам далі допоможе розділяти права.
Створюємо папку з конфігами користувачів: mkdir /usr/local/etc/vsftpd_usersСтворюємо самі конфіги, копіюючи як шаблон конфіг /usr/local/etc/vsftpd.conf:
cp /usr/local/etc/vsftpd.conf /usr/local/etc/vsftpd_users/user_1Знову через веб-інтерфейс (Diagnostics - Edit File) заповнюємо конфіги юзерів.
cp /usr/local/etc/vsftpd_users/user_1 /usr/local/etc/vsftpd_users/user_2
cp /usr/local/etc/vsftpd_users/user_1 /usr/local/etc/vsftpd_users/user_3
cp /usr/local/etc/vsftpd_users/user_1 /usr/local/etc/vsftpd_users/ftp
user_1
local_root=/var/ftp/shareuser_2
chmod_enable=YES
local_umask=022
anon_umask=022
anon_other_write_enable=no
chroot_local_user=YESuser_3
local_root=/var/ftp/share
anon_other_write_enable=yes
max_per_ip=0
local_root=/var/ftp/pubftp
chmod_enable=YES
local_umask=022
anon_umask=022
anon_other_write_enable=no
local_root=/var/ftp/pubCтворюємо додаткові папки:
chmod_enable=YES
local_umask=022
anon_umask=022
anon_other_write_enable=no
mkdir /var/ftp/pubСтворюємо самих юзерів та їх паролі:
mkdir /var/ftp/share
pw useradd -n user_1 -d /var/ftp/share -s /usr/bin/false
pw useradd -n user_2 -d /var/ftp/share -s /usr/bin/false
pw useradd -n user_3 -d /var/ftp/pub -s /usr/bin/false
passwd user_1
passwd user_2
passwd user_3
Аноніми по замовчуванню попадають в /var/ftp/ і бачать папки pub і share,
щоб запихнути анонімів у pub - змінюємо
домашній каталог цього юзера:
pw user mod ftp -d /var/ftp/pub
Моє завдання: user_1 може записувати/читати в share, user_2 лише читати share, user_3 записувати/читати в pub:
chmod -R 755 /var/ftp/share
chmod -R 755 /var/ftp/pub
chown -R user_2:ftp /var/ftp/share
chown -R user_1:ftp /var/ftp/share
chown -R user_3:ftp /var/ftp/pub
Автозапуск сервісу при старті системи
Відповідно до офіційної документації pfSense, розділу "Startup Script Notes": для автоматичного старту сервісів скрипти потрібно класти в /usr/local/etc/rc.d/ з розширенням .sh і правами на запуск (chmod +x).
При встановленні vsftpd в /usr/local/etc/rc.d/ автоматично створюється демон vsftpd, робимо його копію але з розширенням .sh.
cp /usr/local/etc/rc.d/vsftpd /usr/local/etc/rc.d/vsftpd.shЦього все ж виявляється не достатньо.
У файл /etc/rc.conf через веб-інтерфейс прописуємо:
#!/bin/shЗапускаємо сервер:
vsftpd_enable="yes"
service vsftpd onestart
Немає коментарів:
Дописати коментар