Contenido

Instalacion

Guia de instalacion

Guía de instalación paso a paso del programa

Requisitos iniciales

  • Servidor Debian/Ubuntu en el que se realizará la instalación (En este ejemplo se usará Debian GNU/Linux 10 buster)
  • Usuario capaz de ejecutar comandos con sudo.
  • Conexión a Internet
  • Git (Si se quiere descargar el programa directamente desde los repositorios)

Pasos para realizar la instalación

1. Descarga

Lo primero que tenemos que hacer es descargar en el servidor los archivos del programa con el método que veamos más conveniente: scp, ftp, git… Por ejemplo, si quisiesemos descargarlo con git tendríamos que ejecutar el siguiente comando:

git clone https://github.com/victoravtr/Proyecto.git

/images/instalacion/git_clone.png

Además, también tenemos que descargar el repositorio que contiene la webshell:

git clone https://github.com/billchurch/webssh2.git
cp -r webssh2/ /var/www/

2. MYSQL

Aunque el programa ofrece la opción de realizar una instalación de forma automática, la instalación de mysql debe realizarla el propio usuario. Se haría de la siguiente manera:

  1. Primero, instalamos maria-db con apt
sudo apt install mariadb-server
  1. Cuando la instalación haya completado, tenemos que configurar el servidor:
sudo mysql_secure_installation

Este comando hará que aparezca un menú en el que tendremos que configurar:

  • Contraseña de root: la que queramos.
  • Eliminar los usuarios anónimos: sí.
  • Desactivar el acceso remoto como root: no.
  • Eliminar bases de datos de pruebsa: sí.
  • Recargar la tabla de privilegios: sí.

/images/instalacion/mysql_secure_installation.png

Una vez hayamos terminado la configuración, tenemos que crear el usuario y la base de datos que va a usar el usuario. Para ello tenemos que hacer lo siguiente:

  1. Nos logeamos el mysql con el comando sudo mysql -u root -p
sudo mysql -u root -p
  1. Creamos el usuario proyecto con el comando CREATE USER ‘proyecto’@'%’ IDENTIFIED BY ‘contraseña’;;
CREATE USER 'proyecto'@'%' IDENTIFIED BY 'contraseña';
  1. Creamos la base de datos proyecto_db con el comando CREATE DATABASE proyecto_db;
CREATE DATABASE proyecto_db;
  1. Le damos todos los privilegios al usuario que hemos creado en la base de datos que acabamos de crear con el comando _GRANT ALL PRIVILEGES ON proyecto_db.* TO ‘proyecto’@'%';_
GRANT ALL PRIVILEGES ON proyecto_db.* TO 'proyecto'@'%';
  1. Ejecutamos el comando FLUSH PRIVILEGES; para que se apliquen los cambios.
FLUSH PRIVILEGES;

/images/instalacion/mysql_configure.png


3. Instalación

Tenemos 2 opciones para instalar el programa: la forma manual y la forma automática.


3.1 Instalación automática(Recomendado)

Una vez hayamos descargado el programa solo tenemos que entrar en la carpeta “Proyecto” y ejecutar el script install.sh como sudo.

cd Proyecto
sudo ./install

Aceptaríamos todo lo que nos va preguntando y, de esta forma, se instalará el programa de forma automática, a excepción de mysql que requiere la configuración manual previamente hecha.


3.2 Instalación manual(No recomendado)

Para realizar la instalación manual tenemos que instalar todos los componentes que necesita el programa, crear la estructura de carpetas que se va a necesitar y configurar los distintos archivos que necesita el programa:

Se necesita:

ssh - openssh.com

Entorno de ejecución para JavaScript que gestiona el funcionamiento de la webshell.

sudo apt install openssh-server
nodejs - nodejs.org

Entorno de ejecución para JavaScript que gestiona el funcionamiento de la webshell.

sudo apt install nodejs
npm - npmjs.com

Gestor de paquetes de nodejs.

sudo apt install npm
forever - github.com/foreversd

Libería de nodejs para gestionar la ejecución de aplicaciones.

sudo npm install forever -g
sendmail - proofpoint.com

Permite ejecutar y configurar de forma sencilla el envio de correos desde php.

sudo apt install sendmail
python3 - python.org

Necesario para ejecutar los scripts de python.

sudo apt install python3
python3-pip - pip.pypa.io

Sirve para instalar liberías de python de forma sencilla, pywinrm en nuestro caso.

apt install python3-pip
pywinrm - github.com/diyan/pywinrm

Libería que permite la ejecución de comandos entre sistemas linux y windows por medio de WinRM.

pip3 install pywinrm
sshpass - sourceforge.net/projects/sshpass

Permite indicarle a ssh una contraseña por en el propio comando de conexion, en nuestro caso la usamos para establecer la conexión con otros sistemas.

apt install sshpass
apache2 - apache.org

Es el servidor web HTTP que usará el programa.

apt install apache2
php - php.net

Lenguaje en el que está programado el backend del programa, su lógica.

apt install php
apt install php-mysqli
mariadb-server - mariadb.org

El sistema de gestión de bases de datos que usaremos.


Además, necesitas crear el sistema de carpetas que el programa va a utilizar y colocar en ellas los archivos requeridos:

  • /etc/proyecto

  • /etc/proyecto/apache/

    • Dentro del directorio se debe colocar el archivo proyecto.conf
  • /etc/proyecto/general

    • Dentro del directorio se debe colocar el archivo exe_switch
  • /etc/proyecto/mysql/

    • Dentro del directorio se deben colocar los archivos db_config.conf y init_db.sql
  • /etc/proyecto/zabbix/

    • Dentro del directorio se deben colocar los archivos zabbix_agentd.conf, zabbix_agentd32.exe y zabbix_agentd64.exe
  • /var/www/proyecto

    • Dentro del directorio se deben colocar todos los archivos que están en el interior de la carpeta Web-Proyecto-Content

Por último, debes editar una serie de archivos para asegurar el correcto funcionamiento del programa:

Apache:

  • Copiar archivo /etc/proyecto/apache/proyecto.conf en /etc/apache2/sites-available/proyecto.conf
  • Situarnos en el directorio /etc/apache2/sites-available/ y ejecutar los siguientes comandos:
sudo a2dissite 000-default.conf
sudo a2enssite proyecto.conf
sudo service apache2 restart

/images/instalacion/apache_conf.png

Hosts:

  • Obtenemos nuestra IP con el comando hostname -I
  • La añadimos al archivo /etc/hosts
hostname -I
echo "IP  proyecto.local" >> /etc/hosts

/images/instalacion/hosts.png

PHP:

  • Abrimos el archivo /etc/php/7.3/apache2/php.ini con el editor de texto que prefiramos y editamos las siguientes variables:
  • upload_max_filesize: aumentamos su valor a 2048M, por ejemplo.
  • post_max_size: aumentamosn su valor a 2100M, por ejemplo.
  • extension=mysqli: eliminamos la ”," del principio de línea /images/instalacion/php.png

MYSQL:

  • Editamos el archivo /etc/proyecto/mysql/db_config.conf con el editor que prefiramos para incluir la configuración que realizamos antes en mysql /images/instalacion/mysql_file.png

WEBSHELL:

  • Por último, habría que instalar la webshell y ponerla en marcha con forever
sudo npm install /var/www/webssh2/app/ 
sudo forever start /var/www/webssh2/app/index.js

/images/instalacion/forever.png


Con todo esto, la aplicación ya estaría operativa.


Configuración clientes

Para poder utilizar el programa es necesario que los clientes objetivos tengan habilitado una forma de comunicación. Para operar con los clientes Linux debe de estar habilitado un servidor ssh. Para operar con los clientes Windows se presentan 2 casos:

  • Windows workstation: podemos elegir entre SSH y WinRM
  • Windows Server: deben de tener habilitado un servidor ssh.

Configuración clientes Windows


Configuración ssh


Workstation
Windows 10

Para instalar un servidor ssh en Windows 10 tenemos que ir a “Aplicaciones”, dentro del panel de configuración.

/images/instalacion/config_windows.png

Características opcionales…

/images/instalacion/app_carac.png

Agregar una característica…

/images/instalacion/add_carac.png

Instalamos el servidor OpenSSH…

/images/instalacion/windows_10_openssh.png

Ahora solo tendríamos que configurar el servicio:

  • Abrimos una terminal de powershell como administrador y ejecutamos el siguiente comando para cambiar la shell predeterminada:
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force

/images/instalacion/cambiar_shell.png

  • Editamos el archivo C:\ProgramData\ssh\shhd_config, incluimos el nombre del usuario local con el que nos conectaremos y le indicamos el que use el puerto 22. /images/instalacion/windows_ssh_config.png

Puede que necesites configurar el firewall para permitir las conexiones por el puerto 22. Para hacerlo, debes ejecuar otro comando de powershell:

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -Program "C:\System32\OpenSSH\sshd.exe"
Windows 8/7

La instalación de OpenSSH en Windows 7 y Windows 8 es la misma:

  • Descargamos el progama desde la siguiente URL y lo descomprimimos: github.com/PowerShell/Win32-OpenSSH
  • Abrimos una terminal en carpeta que acabamos de descomprimir y ejecutamos el siguiente comando:
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
  • Por último, editamos el archivo de configuración y añadimos la regla en el firewall como hicimos con Windows 10.

Server
Windows Server 2019

La instalación de OpenSSH en Windows Server 2019 es la misma que haríamos en un Windows 10.

Windows Server 2016/2012

La instalación de OpenSSH en Windows Server 2016/2012 es la misma que haríamos en un Windows 7.

Configuración WinRM

Workstation
Windows 10/8/7

La instalación y configuración de WinRM es la misma para los 3 sistemas:

  • Abrimos una terminal de cmd como administradores.
  • Ejecutamos el siguiente comando para habilitar el servicio:
winrm quickconfig

/images/instalacion/winrm_1.png

  • Ejecutamos los siguientes comandos para configurar el servicio:
winrm set winrm/config/service/auth @{Basic="true"}
winrm set winrm/config/service @{AllowUnencrypted="true"}
winrm set winrm/config/client/auth @{Basic="true"}
winrm set winrm/config/client @{AllowUnencrypted="true"}
  • Con los siguientes comandos podemos comprobar la configuración, debería de quedar de la siguiente manera:
winrm get winrm/config/service
winrm get winrm/config/client

/images/instalacion/winrm_config.png

Configuración clientes Linux

Configuración ssh

Debian/Ubuntu

La instalación del servidor ssh es la misma en Debian que en Ubuntu:

  • Lo instalamos con el siguiente comando:
sudo apt install openssh-server
  • Si queremos conectarnos con el usuario root tenemos que editar el archivo /etc/ssh/sshd_config y cambiar la línea "#PermitRootLogin prohibit-password “ por “PermitRootLogin yes”