Продолжаем освоение Pure-ftpd, но теперь уже на системе FreeBSD. Попробуем связать возможность авторизации виртуальных и локальных пользователей, а также настроим возможность использовать защищенное соединение TLS.Настройку будем проводить на системе:
freebsd# uname -a FreeBSD freebsd 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan 3 07:15:25 UTC 2012 root@obrian.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
Задача:
Настроить pure-ftpd для авторизации как пользователям системы , так и виртуальным. Также надо предусмотреть возможность использования TLS
Установка и настройка Pure-FTPd
Первым делом обновляем порты
portsnap fetch && portsnap update
Ищем, где в портах находится pure-ftpd
cd /usr/ports make search name=pure-ftpd
Собираем
cd /usr/ports/ftp/pure-ftpd/ make config
Выбираем следующие опции
[ ] ANONDELETE — Разрешить анонимным пользователям удалитять файлы
[ ] ANONRENAME — Разрешить анонимным пользователям переименовать файлы
[ ] ANONRESUME — Разрешить анонимный пользователь возобновлять загрузку файлов
[X] DOCS — Документация
[X] EXAMPLES — Примеры
[X] LARGEFILE — Поддержка загрузки файлов больших размером (более 2 ГБ)
[ ] LDAP — поддержка пользователей в LDAP-каталогах
[ ] MYSQL — поддержка пользователей в базе данных MySQL
[X] PAM — Поддержка аутентификации PAM
[X] PERUSERLIMIT — позволяет задавать ограничения для каждого пользователя
[ ] PGSQL — поддержки пользователей в базе данных PostgreSQL
[X] PRIVSEP — Включить разделение привилегий
[X] SENDFILE — поддержка системных вызовов SendFile
[X] THROTTLING — позволяет установить ограничение скорости для пользователей
[X] TLS — поддержка TLS
[ ] UPLOADSSCRIPT — поддержка uploadscript демон
[X] UTF8 — поддержка кодировки UTF8
[X] VIRTUALCHROOT — позволяет ограничить пользователя только своим каталогом
в реальности это выглядит:
Проверяем все ли правильно в конфиге
make showconfig
Устанавливаем
make install clean
После установки в папке /usr/local/etc появятся файлы конфигурации:
- pure-ftpd.conf.sample
- pureftpd-ldap.conf.sample
- pureftpd-mysql.conf.sample
- pureftpd-pgsql.conf.sample
Переходим в каталог с конфигами:
cd /usr/local/etc
Убирая слово sample, копируем нужный конфиг:
cp pure-ftpd.conf.sample pure-ftpd.conf
Редактируем конфиг
vi /usr/local/etc/pure-ftpd.conf
Вот пример моего конфига:
freebsd# cat /usr/local/etc/pure-ftpd.conf ChrootEveryone yes # TrustedGID 100 BrokenClientsCompatibility no MaxClientsNumber 50 Daemonize yes MaxClientsPerIP 8 VerboseLog no DisplayDotFiles yes AnonymousOnly no NoAnonymous yes SyslogFacility ftp # FortunesFile /usr/share/fortune/zippy DontResolve yes MaxIdleTime 15 # LDAPConfigFile /etc/pureftpd-ldap.conf # MySQLConfigFile /etc/pureftpd-mysql.conf # PGSQLConfigFile /etc/pureftpd-pgsql.conf PureDB /usr/local/etc/pureftpd.pdb # ExtAuth /var/run/ftpd.sock # PAMAuthentication yes UnixAuthentication yes LimitRecursion 10000 8 AnonymousCanCreateDirs no MaxLoad 4 # PassivePortRange 30000 50000 # ForcePassiveIP 192.168.0.1 # AnonymousRatio 1 10 # UserRatio 1 10 AntiWarez yes # Bind 127.0.0.1,21 # AnonymousBandwidth 8 # UserBandwidth 8 Umask 133:022 MinUID 100 AllowUserFXP no AllowAnonymousFXP no ProhibitDotFilesWrite no ProhibitDotFilesRead no AutoRename no AnonymousCantUpload yes #TrustedIP 10.1.1.1 #LogPID yes # AltLog clf:/var/log/pureftpd.log # AltLog stats:/var/log/pureftpd.log # AltLog w3c:/var/log/pureftpd.log #NoChmod yes #KeepAllFiles yes #CreateHomeDir yes #Quota 1000:10 #PIDFile /var/run/pure-ftpd.pid #CallUploadScript yes MaxDiskUsage 99 #NoRename yes CustomerProof yes # PerUserLimits 3:20 # NoTruncate yes TLS 1 # TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3 # IPV4Only yes # IPV6Only yes # FileSystemCharset big5 # ClientCharset big5
вот параметры отличающие мой конфиг от дефалтного
NoAnonymous yes — запрещаем авторизацию анонимным пользователям
PureDB /usr/local/etc/pureftpd.pdb — указываем путь до базы с информацией о виртуальных пользователях
AnonymousCanCreateDirs yes — запрещаем анонимным пользователям создавать директории
TLS 1 — поддерживать как обычные, так и зашифрованные сессии
UnixAuthentication yes — разрешаем авторизацию локальным пользователям, за исключением списка /etc/ftpusers
Настраиваем виртуального пользователя pure-ftpd
pw groupadd ftpgroup pw useradd ftpuser -g ftpgroup -d /dev/null -s /etc pure-pw useradd websait -u ftpuser -d /usr/local/www pure-pw mkdb chmod 775 /usr/local/www/
Настраиваем SSL/TLS на pure-ftpd
Создаем директорию:
mkdir -p /etc/ssl/private
openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
chmod 600 /etc/ssl/private/*.pem
Добавляем локального пользователя:
useradd
echo 'pureftpd_enable="YES"' >> /etc/rc.conf
Запускаем Pure-ftpd
/usr/local/etc/rc.d/pure-ftpd start
Проверяем работу
sockstat | grep pure
Тестируем работу сервера Pure-ftpd
Вот список FTP-клиентов рекомендованный Pure-ftpd:
- CoreFTP Lite (Windows) http://www.coreftp.com/
- SmartFTP (Windows) http://www.smartftp.com/
- IglooFTP Pro (Windows, Linux) http://www.iglooftp.com/
- FlashFXP (Windows) http://www.flashfxp.com/
- SDI FTP (Windows) http://www.sdisw.com/
- LFTP (Unix, MacOS X) http://lftp.yar.ru/
- RBrowser (MacOS X) http://www.rbrowser.com/
- Glub Tech Secure FTP Client (Unix, MacOS X, Windows) http://secureftp.glub.com/
- FileZilla (Windows, OSX, Linux) http://filezilla-project.org/
- Cyberduck (OSX) http://cyberduck.ch/
- WinSCP (Windows) http://winscp.net/
Я, остановлюсь пожалуй на FileZilla. Запускаем и добавляем ftp сервер
Сохраняемся и пробуем подсоединиться к ftp.
ВСЁ!
Документация для вкуривания:
- http://download.pureftpd.org/pub/pure-ftpd/doc/README.TLS
- http://download.pureftpd.org/pub/pure-ftpd/doc/README.Virtual-Users
- man pure-pw
- man pure-ftpd
Свежие комментарии