despre compartiment
Aici puteti gasi articole in romana despre instalarea, configurarea si administrarea unor servicii precum si a intregului sistem.
login
articole
28.03.04 19:30Configurarea PureFTPd cu useri in MySQL DB.
Ultima modificare: 07.02.05 19:10
PureFTPd este un ftp server securizat, si foarte flexibil.
Are la baza Troll-FTPd.

Pastrarea datelor despre utilizatori in baza de date MySQL are
urmatoarele avantaje:

1. Nu necesita crearea userilor de system pentru a permite access ftp
( e nevoie doar de un singur utilizator - care va fi proprietarul
fisierelor).

2. Administrarea conturilor e mai simpla (spre deosebire de alte metode
cu useri virtuali - puredb).
Adaugarea de utilizatori noi - la fel, se poate face
dintr-un php script, prin inserararea valorilor
necesare in tabela cu useri ftp.


Instalare:

[root@neo gr]# cd /usr/src

Downloadam ultima versiune a PureFTPd serverului ( 1.0.18 la momentul
scrierii articolului) de pe site-ul
producatorului - http://www.pureftpd.org .

[root@neo src]# wget
ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.18.tar.gz
[root@neo src]# tar -xzvf pure-ftpd-1.0.18.tar.gz
[root@neo src]# cd pure-ftpd-1.0.18

[root@neo pure-ftpd-1.0.18]# ./configure
> --prefix=/usr
> --bindir=/usr/bin
> --sbindir=/usr/sbin
> --sysconfdir=/etc
> --libexecdir=/usr/libexec/pureftpd
> --localstatedir=/var
> --without-inetd
> --with-altlog
> --with-ratios
> --with-quotas
> --with-ftpwho
> --with-diraliases
> --with-peruserlimits
> --with-mysql
> --without-banner
> --with-privsep


E nevoie sa aveti instalat pachetul MySQL-devel, din distributia pe
care o folositi.

Urmeaza compilarea propriu-zisa:

[root@neo pure-ftpd-1.0.18]# make && make install

Daca totul a decurs fara probleme - urmeaza configurarea.

Cream fisierul /etc/pure-ftpd.conf

Un exemplu:

#######################################################
# utilizatorii vor avea ca root (/) dirtectorul home personal, din care
nu vor putea iesi
ChrootEveryone yes

# numarul maxim al utilizatorilor, conectati simultan
MaxClientsNumber 50

# serverul va rula in background, si nu din inetd
Daemonize
yes

# numarul maxim al utilizatorilor conectati de pe aceeasi adresa ip
MaxClientsPerIP 3

# daca e setata la yes - optiunea data permite folosirea ftp serverului
doar de catre
# utilizatorii anonimi, si nu de catre cei autentificati - nu este
scopul nostru
AnonymousOnly
no

# acceptam numai utilizatori autentificati
NoAnonymous
yes

# in loguri nu vor aparea hostname-urile utilizatorilor, ci numai
adresele ip
DontResolve
yes

# autentificarea utilizatorilor dupa schema unix standard - /etc/passwd
UnixAuthentication yes

# fisierul de configurarea a setarilor MySQL
MySQLConfigFile
/etc/pureftpd-mysql.conf

# utilizatorul nu va putea avea mai mult de 2000 fisiere intr-un
director
# si nu va putea avea mai mult de 8 directoare recursive
LimitRecursion
2000 8

# ip-ul si portul pe care va asculta ftp serverul
Bind
69.93.45.23,21

# drepturile fisierelor noi create
Umask
022:022

# utilizatorii vor avea access la scrierea fisierelor ascunse
(.htaccess de exemplu)
ProhibitDotFilesWrite no

# utilizatorii vor putea citi aceste fisiere
ProhibitDotFilesRead no

# utilizatorii anonimi nu pot uploada fisiere
AnonymousCantUpload no

# daca directorul home al utilizatorul nu exista, va fi creat automat
la prima logare
# functie foarte utila
CreateHomeDir
yes

# daca spatiul pe disk a intrecut valoarea data (in procente)
# utilizatorii nu vor mai putea scrienimic pe disk
MaxDiskUsage
90

##############################################################

Mai multa informatie - man pure-ftpd

- crearea bazei de date necesare:

[root@neo etc]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 9092 to server version: 4.0.18-standard-log

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> create database ftp;
Query OK, 1 row affected (0.06 sec)

mysql> use ftp;
Database changed

mysql> CREATE TABLE users (
-> id int(4) NOT NULL auto_increment,
-> User varchar(24) NOT NULL default '',
-> Password varchar(64) NOT NULL default '',
-> Uid int(5) NOT NULL default '10000',
-> Gid int(5) NOT NULL default '10000',
-> Dir varchar(255) NOT NULL default '',
-> QuotaSize int(10) NOT NULL default
'50',
-> PRIMARY KEY (id)
-> );
Query OK, 0 rows affected (0.04 sec)

mysql> grant all privileges on ftp.users to ftpadmin@localhost
identified by 'parola';
Query OK, 0 rows affected (0.07 sec)

Vom adauga un utilizator:

mysql> insert into users (User, Password, Uid, Gid, Dir, QuotaSize)
values ('gr', 123456, 500, 500, '/home/gr', 100);
Query OK, 1 row affected (0.03 sec)


Am adaugat utilizatorul gr, cu parola 123456, uid 500, gid 500,
directorul home - /home/gr, si quota de 100 Mb.

Exemplu a fisierului /etc/pureftpd-mysql.conf :

##############################################################
# nu ne vom conecta la baza de date printr-o conexiune TCP pe 3306,
# ci direct prin Unix socket, pentru cresterea performantei
MYSQLSocket /tmp/mysql.sock

# userul care are access la citire a datelor din tabela ftp.users
MYSQLUser ftpadmin

# parola utilizatorului dat
MYSQLPassword parola

# baza in care usnt pastrate datele respective
MYSQLDatabase ftp

# felul in care vor fi pastrate parolele - crypt, md5, cleartext,
# sau password (functia password din MySQL)
MYSQLCrypt cleartext

# in continuare - comenzile SQL pentru a scoate informatia din baza de
date

# parola
MYSQLGetPW SELECT Password FROM users
WHERE User="\L"

# uid-ul utilizatorului - proprietar al fisierelor
MYSQLGetUID SELECT Uid FROM users WHERE
User="\L"

# gid-ul utilizatorului - proprietar la fisierelor
MYSQLGetGID SELECT Gid FROM users WHERE
User="\L"

# directorul home al utilizatorului
MYSQLGetDir SELECT Dir FROM users WHERE
User="\L"

# quota utilizatorului - in Mb
MySQLGetQTASZ SELECT QuotaSize FROM users WHERE User="\L"
##############################################################

Nu uitati sa setati drepturile corespunzatoare pentru fisierul
/etc/pureftpd-mysql.conf .

[root@neo etc]# chmod 400 /etc/pureftpd-mysql.conf


[root@neo pure-ftpd-1.0.18]# cp configuration-file/pure-config.pl /usr/sbin/
[root@neo pure-ftpd-1.0.18]# chmod +x /usr/sbin/pure-config.pl

Ca sa porniti ftp serverul - folositi comanda
[root@neo etc]# pure-config.pl /etc/pure-ftpd.conf

Un utilitar pentru monitorizarea utilizatorilor conectati - pure-ftpwho.

[root@neo etc]# pure-ftpwho

+------+---------+-------+------+-------------------------------------------+
| PID | Login |For/Spd| What
|
File/IP
|
+------+---------+-------+------+-------------------------------------------+
| 2080 | gr | 00:00 | IDLE
|
|
| ' | ' |
' | ' |
->
stoner.phys.uaic.ro |
+------+---------+-------+------+-------------------------------------------+



Mai multe amanunte - la http://www.pureftpd.org/README.MySQL



TODO:
- a adauga despre pure-quotacheck
- limitare de banda

- ratios
Autor: GRisha
Comentarii: 0

Adauga Comentariu:
Nume:
E-mail:
Cometariu:
 
counter
Informatia de pe site este prezentata "AS IS" si nimeni NU garanteaza veridicitatea sa
Hosting si intretinerea site-ului - REMSYS © 2003-2007