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

Uso de Pydio en una instalación multiservidor ISPConfig 3

Uso de Pydio en una instalación multiservidor ISPConfig 3

Este tutorial le muestra cómo puede usar pydio (anteriormente Ajaxplorer) en una instalación multiservidor de ISPConfig 3 .

Requisitos

Tienes que configurar ISPConfig 3 en tus servidores. La mejor manera de hacerlo es seguir nuestros tutoriales de "servidor perfecto".

Preparando

Tienes que decidir en qué servidor quieres que resida pydio. Este será el servidor donde sus clientes accederán a la interfaz de pydio.
Instalaremos el software de pydio en una web recién creada.
En este ejemplo, usamos una configuración de dos servidores donde el primero (maestro) el servidor es server1.mydomain.com con ip 192.168.10.10 y el segundo servidor (esclavo) es server2.mydomain.com con ip 192.168.10.11.
Instalaremos pydio en un subdirectorio /webftp de nuestro dominio myftpdomain.com que se encuentra en el servidor esclavo.
Sustituya estos datos por los de sus servidores.

Crear el sitio web

Puede omitir esto si ya ha creado un sitio web o si desea instalar pydio en un subdirectorio de un sitio existente.

Cree el sitio web iniciando sesión en ISPConfig como cliente o administrador y vaya a la pestaña "Sitios".

Haga clic en el botón "Agregar nuevo sitio web" e ingrese su dominio en el campo "Dominio". Luego haga clic en "Guardar".

Instalar pydio

Inicie sesión en su servidor a través de ssh y cambie a la ruta del sitio web.

ssh [email protected]
cd /var/www/myftpdomain.com/web/

Ahora descargue la última versión de pydio desde http://pyd.io/download/ o directamente desde sourceforge. Al momento de escribir esto, la versión 5.2.1 es la más actual.
¡No use los paquetes de distribución! ¡Usa solo tar.gz o zip!

Descargue y extraiga el paquete. Luego cambie el nombre del directorio extraído.
No olvide modificar el propietario de todos los archivos para que coincida con el propietario del sitio web. En nuestro caso, estos son el usuario web2 y el grupo cliente1.

wget -O pydio.tar.gz http://downloads.sourceforge.net/project/ajaxplorer/pydio/stable-channel/5.2.1/pydio-core-5.2.1.tar.gz
tar xzf pydio .tar.gz
mv pydio-core-5.2.1 webftp
rm pydio.tar.gz
chown -R web2:client1 webftp

Abra el archivo webftp/conf/bootstrap_conf.php y descomente esta línea:

define("AJXP_LOCALE", "en_EN.UTF-8");

Es posible que deba modificar el valor para que coincida con su sistema local, p. gramo. cámbielo a en_US.UTF-8 o de_DE.UTF-8.

Ahora debería poder acceder a la instalación de pydio en http://myftpdomain.com/webftp/.

Si recibe algunas advertencias allí, verifique el texto y corríjalas donde sea necesario. Luego haga clic en "haga clic aquí para continuar con Pydio".

En la página de bienvenida, haga clic en "¡Iniciar asistente!".

Complete los campos de esta manera:

Acceso de administrador
Inicio de sesión de administrador:
Nombre visible del administrador:
Contraseña de administrador:

Opciones globales
Rellene los campos según sus necesidades.

Almacenamiento de configuración
Tipo de almacenamiento:sin base de datos (inicio rápido)

Agregar algunos usuarios
No ingrese nada aquí.

Luego haga clic en el botón "Instalar pydio ahora".

Después de unos segundos, debería ser redirigido a la pantalla de inicio de sesión. Inicie sesión con el usuario administrador y la contraseña que ingresó en el paso anterior.

En el primer inicio de sesión, podrá elegir qué espacio de trabajo usar. Seleccione "Mis archivos" y marque la casilla "Usar este espacio de trabajo como predeterminado". Luego haga clic en "Entrar".

Uso de Pydio en una instalación multiservidor ISPConfig 3 - Página 2

En su pantalla de inicio, señale la esquina superior derecha y seleccione "Configuración" en el menú desplegable.

Necesitamos hacer algunos ajustes ahora. Al principio se debe agregar un espacio de trabajo. Vaya a "Espacios de trabajo y usuarios" -> "Espacios de trabajo" y haga clic en el botón "Nuevo espacio de trabajo" en la parte superior. En la ventana emergente, seleccione "Servidor FTP" como controlador de acceso y obtendrá una ventana como esta:

Complete los campos de esta manera:

Etiqueta del espacio de trabajo:rellene como desee, prefiero "WebFTP"

Conexión
Host:localhost
Puerto:21
Ruta:/
Seguro:No
Activo:Sí

Servidor FTP Teaks
ID de usuario:1000
¡Nada más que cambiar aquí!

FTP dinámico
Pasar datos FTP a través del controlador de autenticación:Sí

Credenciales de usuario
Usuario:dejar vacío
Contraseña:dejar vacío
Credenciales de sesión:Sí

Archivos comunes
Carpeta Papelera de reciclaje:vacía(!)
Deje el resto de los campos como están.

Comunes del repositorio
Derechos predeterminados:lectura y escritura
Alias:ISPConfigFTP
Deje el resto de los campos como están.

Una vez que haga clic en el botón "Siguiente" en la esquina inferior derecha, debería obtener algo como esto:

Configuración adicional

Vaya a "Configuración global" -> "Complementos de funciones" -> "Acceso"

Haga doble clic en la entrada "Panel de usuario" y establezca la opción "Disponible" en "No" y haga clic en "Guardar" en la esquina superior derecha.

Ahora cierre sesión desde el panel de administración (esquina superior derecha) y será redirigido a la pantalla de inicio de sesión.

Modificar código para acceder a ISPConfig

Tendremos que modificar algunos archivos de código de pydio para que use la API remota de ISPConfig. Primero necesitamos configurar el uso remoto en ISPConfig.

Inicie sesión en ISPConfig como administrador y haga clic en la pestaña "Sistema" y en "Usuarios remotos". Haga clic en el botón "Agregar nuevo usuario".

Ingrese el nombre de usuario y la contraseña para el usuario remoto y marque las casillas que dicen "Funciones del servidor" y "Funciones de usuario FTP de sitios". Luego haga clic en "Guardar".

Uso de Pydio en una instalación multiservidor ISPConfig 3 - Página 3

Ahora (vuelva a) abrir la consola ssh del servidor y navegue hasta la carpeta webftp que creó durante la instalación de pydio.

Edite conf/bootstrap_repositories.php

/*
 * Copyright 2007-2013 Charles du Jeu - Abstrium SAS <team (at) pyd.io>
 * This file is part of Pydio.
 *
 * Pydio is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Pydio is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Pydio.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://pyd.io/>.
 *
 * Description : configuration file
 * BASIC REPOSITORY CONFIGURATION.
 * The standard repository will point to the data path (ajaxplorer/data by default), folder "files"
 * Use the GUI to add new repositories.
 *   + Log in as "admin" and open the "Settings" Repository
 */
defined('AJXP_EXEC') or die( 'Access not allowed');

// ADMIN REPOSITORY
$REPOSITORIES["ajxp_conf"] = array(
    "DISPLAY"           =>      "Settings",
    "DISPLAY_ID"                =>      "165",
    "DESCRIPTION_ID"    =>      "506",
    "DRIVER"            =>      "ajxp_conf",
    "DRIVER_OPTIONS"=> array()
);

Abra el archivo plugins/auth.ftp/class.ftpAuthDriver.php y busque esto (alrededor de la línea 110):

function setFtpDataCallback($actionName, $httpVars, $fileVars){

Agregue esta función a la clase justo debajo de la función "logoutCallback". Reemplace los valores con los suyos:

       function get_ispc_host($username) {
			// connect to ispc via remoting and read ftp user
			$server = '';
			$login = '<your remote user>';
			$pass = '<your remote user password>';


			$soap_location = 'https://pathtoispconfig:8080/remote/index.php';
			$soap_uri = 'https://pathtoispconfig:8080/remote/';

			$client = new SoapClient(null, array('location' => $soap_location,

			'uri'      => $soap_uri));
			try {
				//* Login to the remote server
				if($session_id = $client->login($login,$pass)) {
				
					$check = $client->sites_ftp_user_server_get($session_id, $username);
					if($check) {
						$server = isset($check['ip_address']) ? $check['ip_address'] : $check['hostname'];
					}
					
					if($client->logout($session_id)) {
					}
				}
			} catch (SoapFault $e) {
			}
			
			return ($server != '' ? $server : 'localhost');
        }

En el mismo archivo busque la función "setFTPDataCallback" que debería estar justo debajo. Agregue el siguiente código al comienzo de las funciones para que se vea así:

    public function setFtpDataCallback($actionName, $httpVars, $fileVars)
    {
               if(isset($httpVars['userid'])) {
                       // get host from ispconfig                      
                       $httpVars['FTP_HOST'] = $this->get_ispc_host($httpVars['userid']);
               }
        $options = array("CHARSET", "FTP_DIRECT", "FTP_HOST", "FTP_PORT", "FTP_SECURE", "PATH");
        $ftpOptions = array();
      [...]
    }

Abra el archivo plugins/access.ftp/class.ftpAccessDriver.php y agregue "return true;" al principio de la función "isWriteable":

        public function isWriteable($path, $type="dir"){
               return true;

               $parts = parse_url($path);
               [...]
        }

Abra data/plugins/boot.conf/bootstrap.json y haga que parezca

{
  "core.conf":{
    "USER_CREATE_REPOSITORY":false,
    "SAVE_GUEST_PREFERENCES":false,
    "SKIP_USER_HISTORY":false,
    "USERS_LIST_COMPLETE_LIMIT":"20",
    "USERS_LIST_COMPLETE_MIN_CHARS":"3",
    "USERS_LIST_HIDE_LOGIN":false,
    "ALLOW_CROSSUSERS_SHARING":false,
    "UNIQUE_INSTANCE_CONFIG":{
      "instance_name":"conf.serial",
      "group_switch_value":"conf.serial"
    }
  },
  "core.auth":{
    "ENABLE_USERS":true,
    "CASE_SENSITIVE":true,
    "ALLOW_GUEST_BROWSING":false,
    "PASSWORD_MINLENGTH":"6",
    "SESSION_SET_CREDENTIALS":true,
    "SECURE_LOGIN_FORM":false,
    "MASTER_INSTANCE_CONFIG":{
      "instance_name":"auth.ftp",
      "TRANSMIT_CLEAR_PASS":true,
      "REPOSITORY_ID":"<YOUR_VALUE>",
      "LOGIN_REDIRECT":"",
      "FTP_LOGIN_SCREEN":true,
      "AUTOCREATE_AJXPUSER":false,
      "AJXP_ADMIN_LOGIN":"",
      "group_switch_value":"auth.ftp"
    },
    "MULTI_MODE":{
      "instance_name":"MASTER_SLAVE",
      "group_switch_value":"MASTER_SLAVE"
    },
    "MULTI_USER_BASE_DRIVER":"",
    "SLAVE_INSTANCE_CONFIG":[

    ],
    "SLAVE_INSTANCE_CONFIG_group_switch":""
  }
}

Reemplaza por el hash md5 que encuentras en el archivo data/plugins/conf.serial/aliases.ser .

Abra el archivo plugins/auth.ftp/manifest.xml. Tienes que cambiar algunas líneas allí.

Alrededor de la línea 53:
if(el.name !="userid" &&el.name!="contraseña" &&el.name !="get_action" &&el.name!="login_seed"){
eliminar el el.name !="userid" && parte para que se vea así:
if(el.name!="contraseña" &&el.name !="get_action" &&el.name!="login_seed"){

Alrededor de la línea 79:

AJXP_MESSAGE[ftp_auth.1]

agregue esto directamente detrás:

entonces se ve así:
AJXP_MESSAGE[ftp_auth.1]


(Si desea otorgar acceso al directorio base en lugar del directorio web, por ejemplo, si también desea acceder a la carpeta "privada", simplemente cambie "/web" a "/" en el último campo de entrada oculto.)

Alrededor de la línea 82:
Elimine estas tres líneas del archivo:

AJXP_MESSAGE[ftp_auth.2] AJXP_MESSAGE[ftp_auth.8]  


Alrededor de la línea 86 (después de eliminar las líneas anteriores):
Elimine las 13 líneas del archivo. Esta sección comienza con:


AJXP_MESSAGE[ftp_auth.3]

y termina con
AJXP_MESSAGE[ftp_auth.7] AJXP_MESSAGE[441]


Guarde sus cambios.

¡IMPORTANTE! Ahora tienes que borrar el caché de datos:

rm datos/caché/*.ser

Ahora has terminado. Una vez que vuelva a cargar su pantalla de inicio de sesión de pydio en el navegador, se le solicitará una ligeramente diferente a la anterior:



Ahora puede iniciar sesión con cada usuario ftp que cree dentro de ISPConfig, sin importar en qué servidor de su configuración multiservidor reside. Diviértete.


Panels
  1. Perfect Server Automated ISPConfig 3 Instalación en Debian 10 - 11 y Ubuntu 20.04

  2. Perfect Server Automated ISPConfig 3 Instalación en Debian 10 - 11 y Ubuntu 20.04

  3. Perfect Server Automated ISPConfig 3 Instalación en Debian 10 - 11 y Ubuntu 20.04

  4. Instalación del servidor VNC en OpenSuse 13.2

  5. Uso de Fail2ban para bloquear inicios de sesión incorrectos de ISPConfig

Instalación del servidor Samba en OpenSuse 13.2

Instalación del servidor Samba en Ubuntu 15.10

Uso de WebDAV con ISPConfig 3 en Ubuntu 9.10

Cómo configurar un multisitio Gallery2 en un servidor ISPConfig

El servidor perfecto - Ubuntu 11.04 [ISPConfig 3]

El servidor perfecto - Ubuntu 11.10 [ISPConfig 3]