Linuxos FTP szerver? Naná!

Wired to FTPLehet, hogy már kezd nevetségessé válni az én linux-debian mániám, de láthatjátok, hogy rengeteg célfeladatra kiváló teljesítményt és minőséget nyújt.

Tehát arról van szó, hogyha egy dedikált ftp szervert szeretnénk üzemeltetni akkor lehet okosabb dolog lenne adatbázisban tárolni a júzerek adatait.

Az ftpd és mysql-re fog az egész épülni. Hajrá, kezdjünk neki:

apt-get install pure-ftpd-mysql mysql-server mysql-client

Létre kell hozni csoportot és egy felhasználót a rendszerben:
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c „pureftpd user” -g ftpgroup ftpuser

Jelentkezzünk be parancssorból mysql-be:
mysql -u root -p

Adjuk meg a root jelszót, aztán végezzük el az alábbi parancsokat:
GRANT SELECT ON ftpd.* TO vhosts@localhost IDENTIFIED BY ‘mypasswd’;
FLUSH PRIVILEGES;
CREATE DATABASE ftpd;
USE ftpd;

CREATE TABLE users (
user varchar(30) NOT NULL,
password varchar(64) NOT NULL,
home varchar(128) NOT NULL,
bandwidth_limit_upload smallint(5) NOT NULL default 0,
bandwidth_limit_download smallint(5) NOT NULL default 0,
ip_allow varchar(15) NOT NULL default ‘any’,
quota smallint(5) NOT NULL default ‘0’,
quota_files int(11) NOT NULL default 0,
active enum(‘yes’,’no’) NOT NULL default ‘yes’,
PRIMARY KEY (user),
UNIQUE KEY User (user)
) TYPE=MyISAM;

INSERT INTO users (user, password, home) VALUES (‘username’, MD5(‘mypasswd’), ‘/home/username’);

quit;

Most létrehoztuk a szükséges táblákat és egy próbarekordot, amit majd később esetleg módosíthatunk.

Futtassuk ezeket:
echo „” >> /etc/pure-ftpd/db/mysql.conf

Szerkesszük a fent kiürített file-t:
pico /etc/pure-ftpd/db/mysql.conf

Másoljuk be az alábbi sorokat a megnyitott szerkesztőbe:
MYSQLSocket /var/run/mysqld/mysqld.sock

MYSQLUser vhosts
MYSQLPassword mypasswd
MYSQLDatabase ftpd
MYSQLCrypt md5
MYSQLDefaultUID 2001
MYSQLDefaultGID 2001
MYSQLGetPW SELECT password FROM users WHERE user = „\L” AND active = „yes” AND (ip_allow = „any” OR ip_allow LIKE „\R”)
MYSQLGetDir SELECT home FROM users WHERE user = „\L”AND active = „yes” AND (ip_allow = „any” OR ip_allow LIKE „\R”)
MySQLGetBandwidthUL SELECT bandwidth_limit_upload FROM users WHERE user = „\L”AND active = „yes” AND (ip_allow = „any” OR ip_allow LIKE „\R”)
MySQLGetBandwidthDL SELECT bandwidth_limit_download FROM users WHERE user = „\L”AND active = „yes” AND (ip_allow = „any” OR ip_allow LIKE „\R”)
MySQLGetQTASZ SELECT quota FROM users WHERE user = „\L”AND active = „yes” AND (ip_allow = „any” OR ip_allow LIKE „\R”)
MySQLGetQTAFS SELECT quota_files FROM users WHERE user = „\L”AND active = „yes” AND (ip_allow = „any” OR ip_allow LIKE „\R”)

Végezzünk el néhány beállítást ismét:
echo „yes” > /etc/pure-ftpd/conf/DontResolve
echo „yes” > /etc/pure-ftpd/conf/ChrootEveryone

Ha nem tetszik az alapértelmezett 21-es port akkor meg lehet változtatni:

echo „port” > /etc/pure-ftpd/conf/Bind

Ha tűzfal van és gondok adódnak a csatlakozással (passzív mód) érdemes megadni az ftpd-nek a port range-t:

echo „porttól portig” > /etc/pure-ftpd/conf/PassivePortRange

pl.: echo „29799 29899” > /etc/pure-ftpd/conf/PassivePortRange, tehát nem kell a két portszám közé se kötőjel, se semmi, csak szóköz.

 

Ha mindennel végeztünk újraindítjuk az ftpd szervert:
/etc/init.d/pure-ftpd-mysql restart

 

Ha nem szeretnénk szívni később parancssori mysql-el a felhasználók menedzselését illetőleg telepítsük fel az alábbi csomagokat:

aptitude install apache2
aptitude install php5 libapache2-mod-php5

apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json
apt-get install phpmyadmin

/etc/init.d/apache2 restart

 

Ezek után a http://szerver-ip-címe/phpmyadmin címen tudunk a mysql root felhasználóval bejelentkezni és az ftpd táblában ügyködni.

Fontos! Ha jelszót viszünk be ne felejtsünk el md5 kódolást beállítani!

Szólj hozzá!