Установка и настройка proftpd с хранением пользователей в БД MySQL на FreeBSD устанавливаем из портов: Код | #cd /usr/ports/ftp/proftpd/ #make install WITH_MYSQL=yes #make clean
|
proftpd установлен, приступим к его настроки. Для начала посмотрим, подключился ли модуль для работы с MySQL. Код | #cd /usr/local/libexec/ #./proftpd -l | grep mod_sql.c mod_sql_mysql.c
|
Всё нормально, можно продолжать. Конфигурационный файл находится в /usr/local/etc/proftpd.conf Код | ServerName "My FTP Server" ServerType standalone DefaultServer on Port 21 Umask 022 MaxInstances 30 # Под кем будет запускаться FTP демон User nobody Group nogroup # Разршим доступ, только группе ftp
AllowGroupftp DenyALL
# настройки для авторизации через mysql. (пароли используются в открытом виде: PlainText)
SQLConnectInfo proftpd@localhost:3306 proftpd myftpserver SQLAuthTypes PlainText SQLUserInfo users userid passwd uid gid homedir shell DefaultRoot ~ RequireValidShell off SQLGroupInfo groups groupname gid members SQLAuthenticate users groups SQLLogFile/var/log/proftpd.log
|
----------------------------------------- Создание БД для FTP. Для начала создадим пользователя, который будет владельцем данной базы данных, пусть это будет proftpd: Код | mysql -u root -p Enter password: mysql>grant select,insert,update,delete,create,drop ->on proftpd.* ->to proftpd@localhost ->identified by 'myftpserver'; Query OK, 0 rows affected (0.16 sec) mysql>exit; Зайдём теперь под только что созданным пользователем, и собственно создадим саму БД: mysql -u proftpd -p Enter password: mysql>create database proftpd; Далее создадим две табилци users и groups: mysql>use proftpd; Database changed mysql> CREATE TABLE users ( -> userid VARCHAR(30) NOT NULL UNIQUE, -> passwd VARCHAR(80) NOT NULL, -> uid INTEGER UNIQUE, -> gid INTEGER, -> homedir VARCHAR(255), -> shell VARCHAR(255) -> ); Query OK, 0 rows affected (0.03 sec)
mysql> CREATE TABLE groups ( -> groupname VARCHAR(30) NOT NULL, -> gid INTEGER NOT NULL, -> members VARCHAR(255) -> ); Query OK, 0 rows affected (0.01 sec) mysql> mysql> use proftpd Database changed mysql> CREATE TABLE users ( -> userid VARCHAR(30) NOT NULL UNIQUE, -> passwd VARCHAR(80) NOT NULL, -> uid INTEGER UNIQUE, -> gid INTEGER, -> homedir VARCHAR(255), -> shell VARCHAR(255) -> ); Query OK, 0 rows affected (0.03 sec)
|
Добавим тестового пользователя: Код | mysql>insert into groups values('ftp','5001',''); mysql>insert into users values('test','testftp','5001','5001','/home/ftp/test','/sbin/nologin'); mysql>exit; mkdir /home/ftp/test chown 5001.5001 /home/ftp/test
|
создаём лог-файл: Код | touch /var/log/proftpd.log
|
Запуск демона: Код | cd /usr/local/etc/rc.d cp proftpd.sh.sample proftpd.sh chmod +x proftpd.sh sh proftpd start ps ax | grep proftpd 10544 ?? Is 0:00,01 proftpd: (accepting connections) (proftpd)
|
Proftpd ждёт ваших коннектов
|