GNU/Linux >> Tutoriales Linux >  >> Panels >> Panels

ISPConfig 3 ProFTPd para Debian

ISPConfig 3 ProFTPd para Debian

1 Introducción

Soy un nuevo usuario de ISPConfig y he estado jugando con Linux durante algunos años. Mi servidor actualmente es un VPS con OpenVZ y no me permite ejecutar el pureftpd predeterminado que viene con ISPConfig, así que comencé a investigar ProFTPd y descubrí que no era muy difícil cambiar a usarlo.

2 Preinstalación

Tenga en cuenta:esto no incluye el soporte de cuotas porque mi VPS no lo admite. Si tiene alguna sugerencia o idea sobre cómo mejorar esta integración sin tener que modificar ftp_user_edit.php en ISPConfig3, hágamelo saber. Estas instrucciones se realizaron con Debian 5.0 Lenny, pero deberían funcionar igual para 6.0. Para otras Distribuciones, estas instrucciones pueden tener que modificarse ligeramente.

También tenga en cuenta:este proceso funcionó bien para mí en un servidor nuevo y en la instalación de ISPConfig 3. Usar esto en un servidor existente requerirá ingresar y editar/guardar cada usuario de ftp que se haya creado, y puede causar otros problemas. Puedo crear un script php simple para hacer esto automáticamente en el futuro. No soy responsable de ningún problema que pueda surgir, así que utilice este BAJO SU PROPIO RIESGO.

3 Instalación

Ejecutar

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

Run as standalone

Crear grupo y usuario

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

4 Configuración de la base de datos

mysql -u root -p
Usar dbispconfig

Ejecutar consulta:

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 Configuración ProFTPd

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

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

Encuentra la variable db_password.

Anote la contraseña para más tarde.

Editar /etc/proftpd/proftpd.conf

nano /etc/proftpd/proftpd.conf

Encuentra:

#Include /etc/proftpd/sql.conf

Cambiar a:

Include /etc/proftpd/sql.conf

Editar /etc/proftpd/sql.conf

nano /etc/proftpd/sql.conf

Borre todo el contenido y reemplácelo con:

#
# 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>


Asegúrese de cambiar _insertpasswordhere_ por la contraseña que recuperó de ISPConfig.

Si su base de datos MySQL está en otro servidor, cambie localhost para representar su servidor MySQL.

Editar:/etc/proftpd/modules.conf

nano /etc/proftpd/modules.conf

Encuentra:

#LoadModule mod_sql.c

Cambiar a:

LoadModule mod_sql.c

Encuentra:

#LoadModule mod_sql_mysql.c

Cambiar a:

LoadModule mod_sql_mysql.c

Ejecutar:

/etc/init.d/proftpd restart

6 ISPConfig 3 Cambios

Ahora tenemos que cambiar uno de los archivos ispconfig. Esto no es ideal, ya que si actualiza a una nueva versión perderá los cambios, pero es la única forma de hacer que proftpd funcione que pude encontrar.

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

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

Encuentra:

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

Reemplazar con:

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

Nota:si actualmente está conectado al panel web de ISPConfig, debe cerrar la sesión antes de que se registren los cambios en su máquina.


Panels
  1. Instale Horde 5 Webmail para ISPConfig en Debian Jessie a través de PEAR

  2. Cómo instalar ProFTPD en Debian 8

  3. Debian – ¿Obtener el Gcc más nuevo para Debian?

  4. Instale Horde 4 Webmail para ISPConfig en Debian Squeeze a través de PEAR

  5. cómo instalar gui para debian

Instale los complementos ISPConfig 3 - Roundcube en Debian 10

Cómo instalar ISPConfig en Debian 11

Debian – ¿Archivar espejos para la antigua Debian?

Cómo configurar Mailman con Debian e ISPConfig

Aplicación ISPConfig Monitor para Android

¿Cómo instalar ISPConfig en Debian 10?