Proftpd + MySQL Kategoria: Linux | Tagi: do poprawki, ftp, mysql, proftpd | Autor: Bartłomiej Gałęzia

== instalujemy serwer mysql i proftpd z mod_mysql

apt-get install mysql-server
apt-get install proftpd proftpd-mod-mysql

== dodajemy user i grupe dla wirtualnych userow

groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "proftpd user" -g ftpgroup ftpuser

== zakladamy usera, baze i tabele w mysql

mysql -u root -p
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO 'proftpd'@'localhost' IDENTIFIED BY 'haslodlasuperuserawbazie';
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO 'proftpd'@'localhost.localdomain' IDENTIFIED BY 'haslodlasuperuserawbazie';
FLUSH PRIVILEGES;
CREATE DATABASE ftp;
USE ftp;
CREATE TABLE ftpgroup (
groupname varchar(16) NOT NULL default '',
gid smallint(6) NOT NULL default '2001',
members varchar(16) NOT NULL default '',
KEY groupname (groupname)
) ENGINE=MyISAM;
CREATE TABLE ftpuser (
id int(10) unsigned NOT NULL auto_increment,
userid varchar(32) NOT NULL default '',
passwd varchar(32) NOT NULL default '',
uid smallint(6) NOT NULL default '2001',
gid smallint(6) NOT NULL default '2001',
homedir varchar(255) NOT NULL default '',
shell varchar(16) NOT NULL default '/sbin/nologin',
count int(11) NOT NULL default '0',
accessed datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id),
UNIQUE KEY userid (userid)
) ENGINE=MyISAM;
quit;

== konfigurujemy proftpd

vim /etc/proftpd/proftpd.conf
<add replace uncoment>
DefaultRoot ~
CreateHome on
Include /etc/proftpd/sql.conf
RequireValidShell off

== ladujemy modul mysql'a

vim /etc/proftpd/modules.conf

LoadModule mod_sql.c
LoadModule mod_sql_mysql.c

== konfigurujemy polaczenie proftpd z mysql

# vim /etc/proftpd/sql.conf

SQLBackend mysql
SQLAuthTypes Crypt
SQLConnectInfo ftp@localhost proftpd 
haslodlasuperuserawbazie
SQLUserInfo ftpuser userid passwd uid gid homedir shell
SQLGroupInfo ftpgroup groupname gid members
# Update count every time user logs in
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
SQLLog STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser

== dodajemy usera ftp w bazie (do tego trzeba napisac cos w php)

# mysql -u root -p

INSERT INTO `ftpgroup` (`groupname`, `gid`, `members`) VALUES ('ftpgroup', 2001, 'ftpuser');
INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`) VALUES ('', 'username', ENCRYPT('password'), 2001, 2001, '/var/www/ftp/username/', '/sbin/nologin', 0, '', '');

== zmieniamy uprawnienia na katalogu w ktorym beda katalogi domeowe userow ftp

# chown ftpuser:ftpgroup /var/www/ftp/

== restart proftpd

# 
service proftpd stop
# service proftpd start

done

Dodaj komentarz

Brak komentarzy, bądź pierwszy i dodaj swój komentarz