|
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.
|