Blog

  • Főoldal
  • IT

Bevezetés

Ez a cikk bemutatja, hogyan állíthatod be a ProFTPD-t Ubuntu rendszeren, hogy MySQL-t adatbázisból vegye ki a felhasználók adatait.

Előfeltételek

Feltételezem, hogy már telepítetted és beállítottad a MySQL-t és a phpMyAdmin-t. Példaként az Ubuntumnak a 192.168.1.50 IP-címet állítottam be, ezek az adatok eltérhetnek a Te beállításaidtól, így szükség esetén cseréld le őket.

Telepítsd a ProFTPD-t MySQL támogatással

sudo apt-get install proftpd-basic proftpd-mod-mysql

Ezzel telepíti az összes szükséges csomagot. Ha a telepítés kéri, válassza az önálló módot.

Állítsd be az adatbázist

Jelentkezzen be a phpMyAdmin telepítésébe. (192.168.1.50/phpmyadmin)

A phpmyadmin bejelentkező képernyője

Válaszd a „Felhasználói fiók” lapot, majd kattintson a „Felhasználói fiók hozzáadása” gombra.

Felhasználói fiók hozzáadása

Javaslom, hogy használd a „proftpd”-t (idézőjelek nélkül) felhasználónévként, és állítsd be a jelszót. Ezekre az információkara, később szükségünk lesz. A „Felhasználói adatbázis ” részben kattints az „Ugyanazonon nevű adatbázis létrehozása és az összes jogosultság megadása” lehetőségre, majd görgess le és kattints a „Mehet” gombra.

Ezután létrehozunk egy felhasználót és egy adatbázist, amelyet a ProFTPD használhat. Fel kell töltenünk az adatbázist néhány táblával. A bal oldalon egy új adatbázis jelenik meg, kattintson a „proftpd” adatbázisra. Most kattintson az SQL fülre, illessze be a következőket, és kattintson a „Go” gombra:

CREATE TABLE IF NOT EXISTS `ftpgroup` (
  `groupname` varchar(16) COLLATE utf8_general_ci NOT NULL,
  `gid` smallint(6) NOT NULL DEFAULT '5500',
  `members` varchar(16) COLLATE utf8_general_ci NOT NULL,
  KEY `groupname` (`groupname`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='proftpd group table';

CREATE TABLE IF NOT EXISTS `ftpuser` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `userid` varchar(32) COLLATE utf8_general_ci NOT NULL DEFAULT '',
  `passwd` varchar(32) COLLATE utf8_general_ci NOT NULL DEFAULT '',
  `uid` smallint(6) NOT NULL DEFAULT '5500',
  `gid` smallint(6) NOT NULL DEFAULT '5500',
  `homedir` varchar(255) COLLATE utf8_general_ci NOT NULL DEFAULT '',
  `shell` varchar(16) COLLATE utf8_general_ci NOT NULL DEFAULT '/sbin/nologin',
  `count` int(11) NOT NULL DEFAULT '0',
  `accessed` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `userid` (`userid`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='proftpd user table';

Felhasználó létrehozása

Kattintson a bal oldali oszlopban található „ ftpuser ” táblázatra, majd a „ Beszúrás ” fülre. Adjon meg egy felhasználót az FTP-hez való bejelentkezéshez. Adja meg a felhasználói azonosítót (ez az a felhasználónév, amellyel a felhasználó bejelentkezik az FTP-re) és a homedir címet (az FTP felhasználói kezdőlapnak jelen kell lennie a rendszerben).

A ProFTPD konfigurálása

Szerkessze a ProFTPD konfigurációs fájlt:

sudo nano /etc/proftpd/proftpd.conf

# A felhasználók csak a saját könyvtárukban lehetnek:
DefaultRoot ~
# SQL konfiguráció hozzáadása és a shell érvényesítésének kikapcsolása
Include /etc/proftpd/sql.conf
RequireValidShell 

Ezután szerkessze az sql konfigurációs fájlt:

sudo nano /etc/proftpd/sql.conf

Azt javaslom, hogy most töröljön mindent, ami a fájlban van, vagy ha az alapértelmezett konfigurációra van szüksége, először készítsen biztonsági másolatot, másolja ki az alábbi konfigurációt, és mentse el.

SQLBackend        mysql
#Passwords jelenleg kódolatlanul használjuk az adatbázisban
SQLAuthTypes            Plaintext
SQLAuthenticate         users groups
# Adatbázis kapcsolat létrehozása
SQLConnectInfo  proftpd@localhost mysql_user mysql_password
SQLUserInfo     ftpuser userid passwd uid gid homedir shell
SQLGroupInfo    ftpgroup groupname gid members
SQLMinID        500
SQLLog PASS updatecount
# Update modified everytime user uploads or deletes a file
SQLLog  STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
SqlLogFile /var/log/proftpd/sql.log

FONTOS. A „mysql_database”, „mysql_user” és „mysql_password” kifejezéseket le kell cserélnie az oktatóanyagban korábban kiválasztott/generált megfelelő értékekkel. Ha követte a javasolt elnevezési konvenciókat, a sornak valahogy így kell kinéznie:

SQLConnectInfo proftpd@localhost proftpd jelszó

A MySQL modulok engedélyezése a ProFTPD szerkesztésben:

sudo nano /etc/proftpd/modules.conf

Távolítsa el a címkét/a két sor megjegyzését:

LoadModule mod_sql.c 
LoadModule mod_sql_mysql.c

Indítsa újra a ProFTPD-t:

sudo /etc/init.d/proftpd stop 
sudo /etc/init.d/proftpd start