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 (при мен отново е създадена
)Снимка
- Задаваме следните настройки
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
, не забравяйте да смените освен 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, въвеждаме паролата си и трябва да видим качената снимка
Снимка
Източник: Основен

