strona główna
artykuły
 apache + php4
 postfix + mysql + courier-pop3
 proftpd + mysql
tłumaczenia
download
linki
kontakt

Google
 

Artykuł ten przedstawia instalację i konfigurację serwera ftp z mysql opartego na PROFTPD + MYSQL na Debianie (SARGE.)

Spis treści:
1. Instalacja pakietów
2. Konfiguracja ProFTPd-mysql
3. Konfiguracja MySQL
4. Dodanie nowego konta ftp

1. Instalacja pakietów
Bierzemy się do roboty i ściągamy potrzebne pakiety. Użuwamy do tego wydajemy polecenie:

apt-get install proftpd-mysql proftpd-common mysql-client mysql-common mysql-server libmysqlclient10

2. Konfiguracja ProFTPd-mysql
W pliku konfiguracyjny proftpd-mysql, to znaczy w katalogu /etc znajduje plik proftpd.conf w którym musimy dopisać następujące linijki:

SQLConnectInfo proftpd@localhost:3306 proftpd naszehaslo
SQLUserInfo users name pass uid gid home shell
SQLGroupInfo groups name gid members
SQLAuthenticate users* groups*
SQLAuthTypes PlainText

A teraz opisze co każda z tych zmiennych oznacza.
SQLConnectInfo - ta zmienna określa połącznie z bazą danych, czyli nazwę bazy danych, adres serwera bazy danych oraz port. Następnie po spacji podajemy użytkownika i hasło, które podajemy w formie zwykłego tekstu (plaintext).
SQLUserInfo - Dyrektywa ta zawiera informacje o wyszukiwaniu informacji o użytkowniku w bazie danych. Podajemy tu najpierw nazwę bazy, a następnie nazwy kolumn o użytkowniku.
SQLGroupInfo - Podobnie jak zmienna SQLUserInfo, tylko że zawiera informacje o grupach.
SQLAuthenticate - Tu podajemy metodę autoryzacji. W przykładzie mamy opcje: users* groups*. Takie parametry pozwalają na zalogowanie się jedynie użytkowników zapisanych w bazie, wraz z weryfikacją ich przynależności do grup. W przeciwnym przypadku (brak groups*), gid = 65533 ew. inny jeśli zdefiniujemy SQLDefaultGID. Obowiązuje również powiązanie numerów z bazy z numerami systemowymi.
SQLAuthTypes - Zmienna ta określa jak kodowane są hasła. Dla PlainText pozwala na umieszczenie haseł w tabeli w postaci zwykłego tekstu. Dostępne są również inne opcje, które oczywiście decydują o bezpieczeństwie dotępu do serwera. W przypadku braku tej dyrektywy, jak i poprzedniej, MySQL nie będzie używany do autoryzacji użytkowników. Można także zamiast PlainText użyć: OpenSSL, Crypt oraz Backend.

No to mamy skonfigurowany ProFTPd do działania z bazą MySQL, teraz wystarczy utworzyć tylko bazę i tabele, lecz najpierws omówię jeszcze parę przydatnych dyrektyw.
DefaultRoot - ta dyrektywa określa nam do jakiego katalogu ma się logować użytkownik. Można ją np. ustawić na ~/public_html/. Teraz użytkownik będzie miał dostęp tylko do katalogu public_html w swoim katalogu domowym.
MaxClients - tu ustawiamy ile użytkowników może byc jednocześnie zalogowanych na serwerze.
MaxClientsPerHost - podobneie jak wyżej, tylko że to jest ograniczenie z jednego adresu IP.

3. Konfiguracja MySQL
Teraz zajmiemy się konfiguracją serwera MySQL, lecz to wiąże się tylko z utworzeniem bazy danych.

USE mysql;
INSERT INTO user (Host, User, Password) VALUES ('localhost','proftpd',password('naszehaslo'));

CREATE DATABASE proftpd;

USE proftpd;
CREATE TABLE users (
name varchar(30) NOT NULL default '',
pass varchar(30) NOT NULL default '',
uid int(11) NOT NULL auto_increment,
gid int(11) NOT NULL,
home varchar(255) NOT NULL,
shell varchar(255) NOT NULL,
PRIMARY KEY (uid),
UNIQUE KEY name (name)
) TYPE=MyISAM AUTO_INCREMENT=50 ;

USE proftpd;
CREATE TABLE groups (
name varchar(30) NOT NULL default '',
gid int(11) NOT NULL,
members text NOT NULL,
PRIMARY KEY (gid),
UNIQUE KEY name (name)
) TYPE=MyISAM AUTO_INCREMENT=50 ;

I to już wyszystko :)

4. Dodanie nowego konta ftp
No to kończymy, czyli dodamy użytkownika ftp.

USE proftpd;
INSERT INTO users (name,pass,gid,home,shell) VALUES ('konto1','haslo','2000','/home/ftp/konto1','/bin/sh');
INSERT INTO groups (name,gid,members) VALUES ('grupa1','2000','konto1');

To teraz siadamy sobie wygodnie i kopiujemy pliki na serwer. Życzę Wam szybkiego stawiania takiego serwera.

Copyright © 2004-2008 debianek89