GNU/Linux >> Znalost Linux >  >> Panels >> Panels

ISPConfig 3 ProFTPd pro Debian

ISPConfig 3 ProFTPd pro Debian

1 Úvod

Jsem nový uživatel ISPConfig a už pár let si hraju s Linuxem. Můj server je v současné době VPS s OpenVZ a nedovolí mi spustit výchozí pureftpd, který je součástí ISPConfig, tak jsem se začal poohlížet po ProFTPd a zjistil jsem, že přechod na jeho používání není příliš těžké.

2 Předinstalace

Poznámka:Toto nezahrnuje podporu kvót, protože moje VPS ji nepodporuje. Pokud máte nějaké návrhy nebo nápady, jak zlepšit tuto integraci, aniž byste museli upravovat ftp_user_edit.php v ISPConfig3, dejte mi prosím vědět. Tyto instrukce byly vytvořeny s Debianem 5.0 Lenny, ale měly by fungovat stejně pro 6.0. Pro ostatní distribuce může být nutné tyto pokyny mírně upravit.

Poznámka:Tento proces pro mě fungoval dobře na novém serveru a instalaci ISPConfig 3. Použití tohoto na existujícím serveru bude vyžadovat vstup a úpravu/uložení každého vytvořeného ftp uživatele a může způsobit další problémy. Mohu vytvořit jednoduchý php skript, který to v budoucnu udělá automaticky. Nenesu odpovědnost za žádné problémy, které mohou nastat, proto to prosím používejte NA VLASTNÍ RIZIKO.

3 Instalace

Spustit

apt-get remove pure-ftpd-common pure-ftpd-mysql
apt-get install proftpd proftpd-mod-mysql

Run as standalone

Vytvořit skupinu a uživatele

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

4 Konfigurace databáze

mysql -u root -p
Použít dbispconfig

Spustit dotaz:

ALTER TABLE `ftp_user` ADD `shell` VARCHAR( 18 ) NOT NULL DEFAULT
'/sbin/nologin',
ADD `count` INT( 11 ) NOT NULL DEFAULT '0',
ADD `accessed` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
ADD `modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00';
CREATE TABLE ftp_group (
groupname varchar(16) NOT NULL default '',
gid smallint(6) NOT NULL default '5500',
members varchar(16) NOT NULL default '',
KEY groupname (groupname)
) TYPE=MyISAM COMMENT='ProFTP group table';
INSERT INTO `ftp_group` (`groupname`, `gid`, `members`) VALUES
('ftpgroup', 2001, 'ftpuser');

5 Konfigurace ProFTPd

Upravte /usr/local/ispconfig/interface/lib/config.inc.php:

nano /usr/local/ispconfig/interface/lib/config.inc.php

Najděte proměnnou db_password.

Heslo si poznamenejte na později.

Upravit /etc/proftpd/proftpd.conf

nano /etc/proftpd/proftpd.conf

Najít:

#Include /etc/proftpd/sql.conf

Změnit na:

Include /etc/proftpd/sql.conf

Upravit /etc/proftpd/sql.conf

nano /etc/proftpd/sql.conf

Vymažte veškerý obsah a nahraďte jej:

#
# Proftpd sample configuration for SQL-based authentication.
#
# (This is not to be used if you prefer a PAM-based SQL authentication)
#

<IfModule mod_sql.c>
DefaultRoot ~

SQLBackend mysql

# The passwords in MySQL are encrypted using CRYPT

SQLAuthTypes  Plaintext Crypt

SQLAuthenticate         users groups

# used to connect to the database
# [email protected] database_user user_password
SQLConnectInfo  [email protected] ispconfig _insertpasswordhere_

# Here we tell ProFTPd the names of the database columns in the "usertable"
# we want it to interact with. Match the names with those in the db
SQLUserInfo     ftp_user username password uid gid dir shell

# Here we tell ProFTPd the names of the database columns in the "grouptable"

# we want it to interact with. Again the names match with those in the db
SQLGroupInfo    ftp_group groupname gid members

# set min UID and GID - otherwise these are 999 each
SQLMinID        500

# create a user's home directory on demand if it doesn't exist
CreateHome off

# Update count every time user logs in
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser

# Update modified everytime user uploads or deletes a file
SQLLog  STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser

RootLogin off

RequireValidShell off

</IfModule>


Nezapomeňte změnit _insertpassword here_ na heslo, které jste získali z ISPConfig.

Pokud je vaše databáze MySQL na jiném serveru, změňte localhost tak, aby představoval váš server MySQL.

Upravit:/etc/proftpd/modules.conf

nano /etc/proftpd/modules.conf

Najít:

#LoadModule mod_sql.c

Změnit na:

LoadModule mod_sql.c

Najít:

#LoadModule mod_sql_mysql.c

Změnit na:

LoadModule mod_sql_mysql.c

Spustit:

/etc/init.d/proftpd restart

6 změn ISPConfig 3

Nyní musíme změnit jeden ze souborů ispconfig. To není ideální, jako když upgradujete na novou verzi, ztratíte změny, ale je to jediný způsob, jak zajistit, aby proftpd fungoval.

Upravit /usr/local/ispconfig/interface/web/sites/ftp_user_edit.php

nano/usr/local/ispconfig/interface/web/sites/ftp_user_edit.php

Najít:

$uid = $web["system_user"];
$gid = $web["system_group"];

Nahradit za:

$userinfo = posix_getpwnam($web["system_user"]);
$uid = $userinfo['uid'];
$gid = $userinfo['gid'];

Poznámka:Pokud jste aktuálně přihlášeni do webového panelu ISPConfig, musíte se před zaregistrováním změn na vašem počítači odhlásit.


Panels
  1. Nastavení ProFTPd + TLS na Debian Squeeze

  2. Debian – získat nejnovější Gcc pro Debian?

  3. Vynucené reklamy na ISPConfig s Debian Etch

  1. Nainstalujte Horde 5 Webmail pro ISPConfig na Debian Jessie přes PEAR

  2. Jak nainstalovat ProFTPD na Debian 8

  3. Hardening Postfix pro ISPConfig 3

  1. Jak nainstalovat PHP 7 (PHP-FPM &FastCGI) pro ISPConfig 3 na Debian 8 (Jessie)

  2. Nainstalujte Horde 4 Webmail pro ISPConfig na Debian Squeeze Through PEAR

  3. jak nainstalovat gui pro debian