Ditulis pada tanggal 9 April 2013, oleh admin, pada kategori Artikel, Basis Data, Dunia Web, Litbang

Tentang PureFTPd

Pure-FTPd didasarkan pada Troll-FTPd, ditulis oleh Arnt Gulbrandsen ketika ia bekerja di Trolltech 1995-1999. Ketika Gulbrandsen berhenti merawat Troll-FTPd, Frank Denis menciptakan Pure-FTPd pada tahun 2001 dan saat ini dikembangkan oleh tim yang dipimpin oleh Denis.

Pure-FTPd adalah perangkat lunak sumber terbuka dengan lisensi BSD.

Pemasangan di sistem Fedora

Pastikan bahwa mysql telah terpasang dan berjalan dengan benar.

# yum install mysql mysql-server

Pasang PureFTPd:

# yum install pure-ftpd

Membuat basisdata Mysql. Dalam hal ini, menggunakan nama pureftpd.

# mysql -u root -p
mysql> CREATE DATABASE pureftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP
ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'sandiftpd';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE,
DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain'
IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;
mysql> USE pureftpd;
mysql>CREATE TABLE ftpd (
User varchar(16) NOT NULL default '',
status enum('0','1') NOT NULL default '0',
Password varchar(64) NOT NULL default '',
Uid varchar(11) NOT NULL default '-1',
Gid varchar(11) NOT NULL default '-1',
Dir varchar(128) NOT NULL default '',
ULBandwidth smallint(5) NOT NULL default '0',
DLBandwidth smallint(5) NOT NULL default '0',
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default '*',
QuotaSize smallint(5) NOT NULL default '0',
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY User (User)
) TYPE=MyISAM;
mysql> quit

Pengaturan

Sunting pengaturan /etc/pure-ftpd/pure-ftpd.conf. Ubah variabel:

ChrootEveryone   yes
MySQLConfigFile  /etc/pure-ftpd/pureftpd-mysql.conf
CreateHomeDir    yes

ChrootEveryone memungkinkan pengguna untuk mengganti akar direktori, sehingga pengguna tersebut tidak mengakses direktori lain. CreateHomeDir memungkinkan PureFTPd membuat direktori rumah pengguna dan direktori tersebut belum tersedia.

Mengatur /etc/pure-ftpd/pureftpd-mysql.conf:

MYSQLSocket      /var/lib/mysql/mysql.sock
#MYSQLServer     localhost
#MYSQLPort       3306
MYSQLUser       pureftpd
MYSQLPassword   sandiftpd
MYSQLDatabase   pureftpd
#MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext
MYSQLCrypt      md5
MYSQLGetPW      SELECT Password FROM ftpd WHERE User="L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "R")
MYSQLGetUID     SELECT Uid FROM ftpd WHERE User="L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "R")
MYSQLGetGID     SELECT Gid FROM ftpd WHERE User="L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "R")
MYSQLGetDir     SELECT Dir FROM ftpd WHERE User="L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "R")
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "R")
MySQLGetQTASZ   SELECT QuotaSize FROM ftpd WHERE User="L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "R")
MySQLGetQTAFS   SELECT QuotaFiles FROM ftpd WHERE User="L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "R")

Pastikan mengganti sandiftpd dengan sandi MySQL di MYSQLPassword. Dalam MYSQLCrypt menggunakan enkripsi md5, sehingga dalam table MySQL Password, pastikan nilai isian telah dienskripsi md5. Metode lainnya adalah: cleartext, crypt, fungsi MySQL password, dan untuk memilih otomatis, any.

Menambah pengguna

Masuk MySQL sebagi root atau pengguna dengan hak menambah baris tabel ftpd. Masukkan baris SQL:

INSERT INTO `ftpd` (
`User`, `status`, `Password`, `Uid`,
`Gid`, `Dir`, `ULBandwidth`,
`DLBandwidth`, `comment`,
`ipaccess`, `QuotaSize`, `QuotaFiles`
) VALUES (
'pengguna', '1', MD5('rahasia'),
'2001', '2001',
'/home/pengguna',
'100', '100', '', '*',
'50', '0'
);

Permasalahan

  1. Gagal masuk dan di /var/log/messages muncul kesalahan:
    Apr  8 20:29:59 sever pure-ftpd: (?@192.168.0.1) [WARNING] Can't login as [pengguna]: account disabled

    Ubah nilai MinUID dalam /etc/pure-ftpd/pure-ftpd.conf di bawah nilai UID terendah seluruh pengguna sistem dikurangi satu. Misal UID terendah adalah 1000, maka:

    MinUID 999

Pustaka

  1. “Virtual Hosting With PureFTPd And MySQL (Incl. Quota And Bandwidth Management) On Fedora 9 | HowtoForge – Linux Howtos and Tutorials”. http://www.howtoforge.com/virtual-hosting-with-pureftpd-mysql-fedora9 (diakses Selasa, 09 April 2013 07:33:35 UTC+0700)
  2. “ai??i?? one technologist insight Ai?? PureFTP Server with MySQL account disabled error”. http://tgrove.com/2007/12/03/pureftp-server-with-mysql-account-disabled-error/ (diakses Selasa, 09 April 2013 08:47:19 UTC+0700)
  3. “README.MySQL”. http://download.pureftpd.org/pub/pure-ftpd/doc/README.MySQL (dimodifikasi Jumat, 17 Agustus 2012 21:40:07 UTC+07.00, diakses Selasa, 09 April 2013 09:08:10 UTC+0700)