PureFTPd с MySQL потребители в Debian

Настройки свързвани с конфигуриране на вътрешна мрежа и Интернет.

Модератори: Freya, Kulu Ngile

PureFTPd с MySQL потребители в Debian

Мнениеот Kulu Ngile » Чет 08, Ное, 2007 23:54

Целта на статията е да се инсталира ftp сървър, като се използват виртуални потребители от MySQL, а не потребители от системата. Също така ще използваме ограничения на upload и download скоростта, както и MD5 на паролата в MySQL.

1. Инсталиране на MySQL и phpmyadmin
Код за потвърждение: Избери целия код
samba:~# apt-get install mysql-server mysql-client libmysqlclient15-dev phpmyadmin

Ще ви бъдат зададени въпроси за:
- root акаунт и парола на MySQL
- кой web server искате да се конфигурира автоматично -> задайте apache и apache2
- съгласете се за рестартиране на apache-то

2. Инсталиране на PureFTPd с MySQL поддръжка
Код за потвърждение: Избери целия код
samba:~# apt-get install pure-ftpd-mysql

Като изберете standalone server и откажете setuid root.

Ще създадеме ftp user kulu и ftp group kulugroup, където всички наши виртуални потребители ще бъдат мапвани. Ще зададем id на потребителя и групата да е 2222, като вие можете да ползвате, които искате, стига да са свободни.
Код за потвърждение: Избери целия код
samba:~# groupadd -g 2222 kulugroup
samba:~# useradd -u 2222 -s /bin/false -d /bin/null -g kulugroup kulu


3. Създаване на база данни за PureFTPd и потребителски акаунт
- логваме се в phpmyadmin (http://localhost/phpmyadmin)
- избираме "Привилегии" -> "Добавяне на нов потебител"
създаваме:
user-> kulu
host-> localhost
pass-> password

Снимка

Повтаряме процедурата, като променяме само host-а, т.е.:
user-> kulu
host-> localhost.localdomain
pass-> password

Снимка


- избираме "База от данни" и създаваме нова с име kuluftp

Снимка


П.П. При мен вече е създадена, но при вас няма да е и просто ви показвам откъде се прави :)

- създаваме таблица ftptable с брой на полетата 9 (при мен отново е създадена :P)

Снимка


- Задаваме следните настройки
1-во поле: User -> varchar-> 16 -> PRIMARY KEY
2-ро поле: Status-> enum '0','1' ->default 0
3-то поле: Password-> varchar ->64
4-то поле: UID -> varchar ->11 ->default -1
5-то поле: GID -> varchar -> 11 ->default -1
6-то поле: DIR -> varchar -> 128
7-мо поле: DLBandwidth -> smallint ->5 -> default 0
8-мо поле: ULBandwidth -> smallint ->5 -> default 0
9-то поле: IP -> varchar-> 15 -> *

Снимка


- задаме права на кулу за контрол в/у базата данни kuluftp
* От левият панел избираме HOME и след това от десният панел избираме привилегии
Снимка
* Маркираме kulu и натискаме бутона за редактиране (моливчето :))
* От "Привилегии специфични за базата от данни" избираме БД-то kuluftp
Снимка

* Задаваме следните права: SELECT, INSERT, UPDATE, DELETE, CREATE и DROP
Снимка


Повтаряме процедурата за другият акаунт на kulu с хост local.localdomain

- създаване на потребител, който ще се логва - от левият панел избираме kuluftp и кликаме в/у ftptable; от десният панел кликаме на "Вмъкване". Създаваме нов потребител със следните параметри:
User: Gaara
Status: 1
Password: gaarapass
UID 2222
GID 2222
DIR /home/ftp_store
DLBandwidth 200
ULBandwidth 200
IP *

Снимка

4. Нстройка на PureFTPd
- редактирайте /etc/pure-ftpd/db/mysql.conf, като трябва да изглежда по следният начин (ако ползвате друг user вместо kulu :cry:, не забравяйте да смените освен MYSQLUser и MYSQLPassword)
MYSQLSocket /var/run/mysqld/mysqld.sock
#MYSQLServer localhost
#MYSQLPort 3306
MYSQLUser kulu
MYSQLPassword password
MYSQLDatabase kuluftp
#MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext
MYSQLCrypt md5
MYSQLGetPW SELECT Password FROM ftptable WHERE User="\L" AND Status="1" AND (IP = "*" OR IP LIKE "\R")
MYSQLGetUID SELECT UID FROM ftptable WHERE User="\L" AND Status="1" AND (IP = "*" OR IP LIKE "\R")
MYSQLGetGID SELECT GID FROM ftptable WHERE User="\L"AND Status="1" AND (IP = "*" OR IP LIKE "\R")
MYSQLGetDir SELECT DIR FROM ftptable WHERE User="\L"AND Status="1" AND (IP = "*" OR IP LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftptable WHERE User="\L"AND Status="1" AND (IP = "*" OR IP LIKE "\R")
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftptable WHERE User="\L"AND Status="1" AND (IP = "*" OR IP LIKE "\R")


- създаваме файла /etc/pure-ftpd/conf/ChrootEveryone със съдържание "yes".
Код за потвърждение: Избери целия код
samba:~# echo "yes" >/etc/pure-ftpd/conf/ChrootEveryone

Така ще накараме pureftpd-то да chroot-ва всеки юзър в собствена домашна папка, с което забраняваме браузването извън неговият home folder

- създаваме файла /etc/pure-ftpd/conf/CreateHomeDir с параметър "yes".
Код за потвърждение: Избери целия код
samba:~# echo "yes" > /etc/pure-ftpd/conf/CreateHomeDir

Така ще се създаде home folder-a на потребителя, ако не съществува при първото логване.

- рестартраме pureftpd
Код за потвърждение: Избери целия код
samba:~# /etc/init.d/pure-ftpd-mysql restart


5. Тестване - аз използвам ncftp клинет, който е конзолен и ми е много удобен. Ето го и резултата:
Код за потвърждение: Избери целия код
[gaara@debian wall]$ ncftp -u Gaara -p gaarapass ftp://192.168.0.2
NcFTP 3.2.1 (Jul 29, 2007) by Mike Gleason (http://www.NcFTP.com/contact/).
Connecting to 192.168.0.2...                                                   
--------- Welcome to Pure-FTPd [privsep] [TLS] ----------
You are user number 1 of 50 allowed.
Local time is now 02:13. Server port: 21.
This is a private system - No anonymous login
IPv6 connections are also welcome on this server.
You will be disconnected after 15 minutes of inactivity.
Logging in...                                                                   
Your bandwidth usage is restricted
User Gaara has group access to:  kulugroup
OK. Current restricted directory is /
Logged in to 192.168.0.2.                                                       
Current remote directory is /.
ncftp / >

Ще кача една картинка.
Код за потвърждение: Избери целия код
ncftp / > put debian.jpg
debian.jpg:                                            148,93 kB  196,05 kB/s 
ncftp / > ls
debian.jpg
ncftp / >

За да видим резултата през iceweasel-a въвеждаме следният линк-> ftp://Gaara@192.168.0.2, въвеждаме паролата си и трябва да видим качената снимка

Снимка

Източник: Основен
Последна промяна Kulu Ngile на Чет 15, Ное, 2007 12:14, променена общо 1 път
Ако съдбата е срещу теб, толкова по-зле за нея.

Изображение
APT HOWTO
Kulu Ngile
Унуфри
 
Мнения: 1233
Регистриран на: Съб 04, Мар, 2006 2:04
Местоположение: София

Назад към Мрежови настройки

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта

cron