Cómo instalar Vtiger CRM Open Source Edition en CentOS 7
Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.
El objetivo de este tutorial es deshacerse de las conexiones SSH públicas y RDP públicas. Al colocar todo esto detrás de un cliente HTML5 muy conveniente, podemos agregar una capa de seguridad para acceder a nuestra nube.
Guacamole también registra cualquier acceso remoto, por lo que el acceso no autorizado se vuelve mucho más rastreable.
Nota: Para cifrar Let's (opción B) necesitamos un nombre de dominio. Si no tiene uno, puede omitir este paso y sólo hay que ejecutar la opción A .
Comience girando un VPS en su zona Vultr deseada. Un 1024 MB
VPS será suficiente, ya que Guacamole no es tan exigente.
Comience habilitando la red privada en el VPS. Esto está bien documentado aquí
Primero endurezcamos un poco la imagen. Y verifiquemos si la imagen aprovisionada se ha ufw
habilitado.
root@vultr:~# ufw status
Status: inactive
Por defecto está deshabilitado, por lo que necesitaremos agregar algunas reglas.
Comencemos con la configuración de estos puertos.
ufw allow 22/tcp
ufw allow 8080/tcp
Luego habilite el firewall.
ufw enable
No se preocupe si recibe una advertencia. Si agregó puerto 22
, no enfrentará ningún problema.
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Una vez habilitado, solicite el estado del firewall y veremos la configuración de nuestro puerto.
ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
8080/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
8080/tcp (v6) ALLOW Anywhere (v6)
Antes de comenzar a instalar, necesitamos actualizar y actualizar el repositorio. Con paquetes como Tomcat
, que está basado en Java, hay un flujo constante de errores descubiertos y sus correcciones de errores asociadas. Por lo general, es una buena idea hacer esto primero en lugar de apresurarse directamente a nuestra instalación.
apt-get update
apt-get -y upgrade
El siguiente es todas las dependencias. Guacamole tiene bastantes de ellos. (Puede encontrar una lista completa de dependencias y su función aquí ). Continuemos instalándolos todos.
apt-get -y install build-essential tomcat8 freerdp libcairo2-dev libjpeg-turbo8-dev libpng12-dev libossp-uuid-dev libavcodec-dev libavutil-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvorbis-dev libwebp-dev mysql-server mysql-client mysql-common mysql-utilities libswscale-dev libvncserver-dev libpulse-dev libssl-dev
Cuando el instalador solicite una contraseña raíz de MySQL, proporcione una y asegúrese de anotarla. Usaremos esta contraseña más adelante para crear la base de datos Guacamole.
Ahora que tenemos todas nuestras dependencias, podemos continuar con la descarga de Guacamole. El guacamole en sí viene principalmente en forma de fuente, y no en binario. Primero nos moveremos a la /tmp
carpeta para evitar saturar otras partes del disco. Luego descargue todo el código fuente.
Hay cuatro archivos fuente / binarios para descargar:
guacamole-0.9.13-incubating.war
: Esta es la aplicación web. Un WAR
archivo es un paquete web comprimido que proporciona un único sitio web alojado en un sitio web de Tomcatguacamole-server-0.9.13-incubating.tar.gz
: Este archivo proporcionará la guacd
aplicación de fondo. Esto crea las secuencias a través de RDP y SSH.guacamole-auth-jdbc-0.9.13-incubating.tar.gz
: Utilizaremos una base de datos MySQL local, por lo que necesitamos el JDBC
conector asociado .mysql-connector-java-5.1.43.tar.gz
: Sin un controlador de base de datos, el conector JDBC no hace nada. Este archivo lo proporciona el equipo de MySQL.Nota: las descargas se resolvieron en el servidor más cercano .
cd /tmp
wget http://apache.belnet.be/incubator/guacamole/0.9.13-incubating/binary/guacamole-0.9.13-incubating.war
wget http://apache.cu.be/incubator/guacamole/0.9.13-incubating/source/guacamole-server-0.9.13-incubating.tar.gz
wget http://apache.cu.be/incubator/guacamole/0.9.13-incubating/binary/guacamole-auth-jdbc-0.9.13-incubating.tar.gz
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.43.tar.gz
Una vez que hayamos descargado todos estos archivos, extraiga los tar.gz
.
tar -xzvf guacamole-server-0.9.13-incubating.tar.gz
tar -xzvf guacamole-auth-jdbc-0.9.13-incubating.tar.gz
tar -xzvf mysql-connector-java-5.1.43.tar.gz
Ahora que hemos extraído todo el código fuente, hagamos algunas guacamole
carpetas, que serán utilizadas por la aplicación guacamole y sus dependencias.
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
Todo está listo para nuestros nuevos binarios de Guacamole. Ahora podemos comenzar el proceso de compilación e instalación. Vaya a la carpeta extraída del Servidor Guacamole.
cd /tmp/guacamole-server-0.9.13-incubating
Configure la aplicación para crear también un init.d
archivo para ejecutarlo como un servicio más adelante.
./configure --with-init-dir=/etc/init.d
El comando debe terminar con un 'sí' en todas las bibliotecas y protocolos. Si no, regrese y verifique el comando apt-get para asegurarse de que no se haya perdido ningún paquete.
------------------------------------------------
guacamole-server version 0.9.13-incubating
------------------------------------------------
Library status:
freerdp ............. yes
pango ............... yes
libavcodec .......... yes
libavutil ........... yes
libssh2 ............. yes
libssl .............. yes
libswscale .......... yes
libtelnet ........... yes
libVNCServer ........ yes
libvorbis ........... yes
libpulse ............ yes
libwebp ............. yes
Protocol support:
RDP ....... yes
SSH ....... yes
Telnet .... yes
VNC ....... yes
Services / tools:
guacd ...... yes
guacenc .... yes
Init scripts: /etc/init.d
Type "make" to compile guacamole-server.
A continuación, compile e instale el servidor Gucamole.
make && make install
Una vez hecho todo esto, ejecute ldconfig
para reconstruir la ruta de búsqueda para las bibliotecas que se han agregado.
ldconfig
Continúe usando la systemctl
configuración guacd
(Guacamole Daemon) para iniciar el arranque.
systemctl enable guacd
Los binarios de guacamole ya están instalados. Ahora prepararemos la aplicación web para Tomcat.
Comience moviendo el war
archivo a la guacamole
carpeta que acabamos de crear, una vez hecho esto, cree un enlace lógico en el directorio tomcat para apuntar a nuestro war
archivo.
cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
Entonces necesitamos el conector mysql y JDBC. Se necesita el controlador JDBC en la extensions
carpeta, el conector en la lib
carpeta.
cp mysql-connector-java-5.1.43/mysql-connector-java-5.1.43-bin.jar /etc/guacamole/lib/
cp guacamole-auth-jdbc-0.9.13-incubating/mysql/guacamole-auth-jdbc-mysql-0.9.13-incubating.jar /etc/guacamole/extensions/
Una vez que el conector y JDBC estén en su lugar, necesitamos editar el tocamt8
archivo. Este archivo contiene muchas tomcat8
configuraciones, y en nuestro caso necesitamos agregar la GUACAMOLE_HOME
variable al final del archivo.
nano /etc/default/tomcat8
Añadir con lo siguiente.
GUACAMOLE_HOME=/etc/guacamole
Lo siguiente es crear la base de datos. Guacamole almacena su configuración de conexión en una base de datos, no dentro de un archivo.
Inicie sesión con el root password
que utilizó durante la instalación.
mysql -u root -p
El primer paso es crear una base de datos llamada 'guacamole_db'.
create database guacamole_db;
Luego ejecuta el create user
comando. Esto creará un usuario con una contraseña mysupersecretpassword
, este usuario solo podrá conectarse localhost
.
create user 'guacamole_user'@'localhost' identified by "mysupersecretpassword";
Otorgue CRUD
operaciones a este usuario para la base de datos guacamole_db
.
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
Vacíe los privilegios y salga del shell.
flush privileges;
exit
Termine agregando el esquema Guacamole a nuestra base de datos recién creada.
cat /tmp/guacamole-auth-jdbc-0.9.13-incubating/mysql/schema/*.sql | mysql -u root -p guacamole_db
Una vez hecho esto, necesitamos editar el guacamole.properties
archivo. Este archivo contiene nuestra configuración de servidor MySQL recientemente creada.
nano /etc/guacamole/guacamole.properties
Agregue los detalles y las credenciales de conexión de MySQL.
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: mysupersecretpassword
Termine creando un enlace simbólico a la carpeta compartida de tomcat, ya que aquí es donde el WAR
archivo buscará estas propiedades.
ln -s /etc/guacamole /usr/share/tomcat8/.guacamole
Termine reiniciando el tomcat8
servidor e inicie el guacd
demonio del servidor.
service tomcat8 restart
service guacd start
Puede verificar mediante el comando de estado.
service tomcat8 status
service guacd status
Ahora puedes navegar a tu VPS en el puerto 8080
http://<yourpublicip>:8080/guacamole/
Use el nombre de usuario guacadmin
y la misma contraseña guacadmin
. Esto le otorgará acceso a un servidor Guacamole vacío.
Haga clic en la esquina superior derecha de su nombre de usuario guacadmin
y seleccione Settings
. Una vez que esté en la página de configuración, vaya a la Users
pestaña y seleccione el usuario guacadmin
.
Ahora cambie su contraseña a otra o cree un nuevo usuario administrador y elimine la predeterminada guacadmin
.
Estos son los pasos finales: limpiar después de que haya terminado.
Elimine el código fuente descargado y los binarios de la /tmp
carpeta.
rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*
Además, haga que la aplicación web Guacamole sea la predeterminada. En el ecosistema tomcat, la aplicación que obtiene la ROOT
carpeta es la que se inicia de manera predeterminada cuando accede al sitio web.
Eliminar el antiguo ROOT
marcador de posición.
rm -rf /var/lib/tomcat8/webapps/ROOT
Y haga un enlace simbólico para que sea el servidor guacamole ROOT
.
ln -s /var/lib/tomcat8/webapps/guacamole /var/lib/tomcat8/webapps/ROOT
Esto requiere un reinicio de tomcat.
service tomcat8 restart
Edite el tomcat8/server.xml
archivo y cambie el puerto del conector.
nano /etc/tomcat8/server.xml
Busque el Connector port
.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
Y reemplazar 8080
con 80
.
De forma predeterminada, tomcat no permite el enlace de puertos a continuación 1024
. Para habilitar esto, debemos decirle a tomcat8 que cree enlaces autenticados.
Edite el default
archivo de tomcat8 y descomente la AUTHBIND
línea y use la opciónyes
nano /etc/default/tomcat8
AUTHBIND=yes
Una vez hecho esto, intall authbind
.
apt-get install authbind
Configúrelo para que 80
tomcat8 pueda reclamar el puerto.
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80
Permita el puerto a 80
través del firewall y elimine la regla para 8080
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Reiniciar tomcat.
service tomcat8 restart
Eso es todo, ahora Guacamole debería estar funcionando en el puerto 80
.
Tomcat realmente no es una de las mejores y más robustas aplicaciones para usar certbot
. Por suerte Nginx es. Solo haremos un proxy de tomcat a Nginx. Utiliza la funcionalidad lista para usar de certbot a costa de sacrificar un poco de RAM.
apt-get install nginx
Una vez instalado, edite la configuración predeterminada.
nano /etc/nginx/sites-available/default
Elimine todas las configuraciones de ejemplo y agregue la siguiente configuración.
server {
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
Esto creará un proxy para el sitio web que se ejecuta en 8080
. Reinicie Nginx y actívelo en el arranque.
systemctl restart nginx
systemctl enable nginx
Comprueba si todo funciona.
systemctl status nginx
Deshabilite el puerto de prueba 8080
y permita el tráfico en el puerto 80
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Antes de que podamos usar certbot
, necesitamos agregar el correcto ppa
al sistema que contiene nuestros paquetes certbot.
add-apt-repository ppa:certbot/certbot
Presione " ENTER
" para aceptar el cambio de configuración.
Actualice apt
para reunir los nuevos paquetes.
apt-get update
Finalmente, instale el módulo Nginx para asignar los certificados.
apt-get -y install python-certbot-nginx
Configure el firewall para permitir HTTPS
.
ufw allow 443/tcp
Antes de que podamos solicitar nuevos certificados, necesitamos un nombre DNS.
nano /etc/nginx/sites-available/default
Agregue la siguiente server_name
configuración.
server_name rdp.example.com;
Cambie la configuración para reflejar esta nueva configuración.
server {
server_name rdp.example.com;
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
Compruebe si todo funciona y reinicie Nginx.
nginx -t
service nginx restart
Ahora solicite un certificado con certbot.
certbot --nginx -d rdp.example.com
Proporcione su correo electrónico y acepte las preguntas formuladas por el instalador. (Puede elegir " No
" compartir su correo electrónico de forma segura). Certbot le preguntará automáticamente qué necesita hacer HTTPS
. Vamos a utilizar la opción 2: redirect to HTTPS
.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Lo último que haremos será actualizar los DH
parámetros. Estos son, por defecto, un poco débiles para los estándares de 2017.
Crea algunos nuevos.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
A continuación, agréguelos al sitio predeterminado en Nginx.
nano /etc/nginx/sites-available/default
Agréguelos a la configuración del servidor.
server {
server_name rdp.example.com;
listen 0.0.0.0:80;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
Verificar errores.
nginx -t
Aplique los cambios reiniciando el servidor.
service nginx restart
Limpiar la vieja 8080
regla
ufw delete allow 8080/tcp
Nota: si recibe un "502 Bad Gateway", necesitará reiniciar tomcat8 .
service tomcat8 restart
Encriptemos los certificados requieren renovación. Podemos crear un trabajo cron para esto. Comience editando el crontab
.
crontab -e
Agrega la siguiente línea.
00 2 * * * /usr/bin/certbot renew --quiet
Esto verificará a las 2:00 a.m. si algún certificado requiere una renovación y los renovará si lo hacen.
Vaya a su servidor de Guacamole (ya sea http://<ip>/
o https://rdp.example.com)
).
Para esta prueba, necesitará dos instancias más: una máquina virtual Linux y otra Windows Server 2012 R2 con una IP privada habilitada en ambas.
Haz clic en " username
" en la esquina superior derecha y ve a " Settings
". Luego vaya a " Connections
" y seleccione " New Connection
".
Complete la siguiente configuración (puede dejar los otros valores predeterminados).
Name: Windows Server 2012 R2
Location: ROOT
Protocol: RDP
Maximum number of connections: 1
Maximum number of connections per user: 1
Parameters > Hostname: 10.99.0.12
Parameters > Port: 3389
Username: Administrator
Password: <password> (provided by Vultr)
Security mode: Any
Ignore server certificate: <checked>
Presione " save
" y regrese a la pantalla de inicio. Ahora puede hacer clic en la Windows Server 2012 R2
conexión " " y se ejecutará RDP en esta máquina.
Presione " Ctrl+Shift+Alt
". Esto abrirá el menú al costado. Aquí puede desconectar o realizar otras tareas administrativas para Guacamole.
Haz clic username
en la parte superior del menú y ve a " Settings
". Luego vaya a la Connections
pestaña " " y seleccione " New Connection
".
Complete la siguiente configuración (puede dejar los otros valores predeterminados).
Name: Linux
Location: ROOT
Protocol: SSH
Maximum number of connections: 5
Maximum number of connections per user: 2
Parameters > Hostname: 10.99.0.11
Parameters > Port: 22
Username: root
Password: <password> (provided by Vultr)
Presione " save
" y regrese a la pantalla de inicio. Ahora puede hacer clic en esta conexión recién creada y conectarse a su servidor Linux a través de SSH.
Ahora tiene una puerta de enlace web RDP / SSH HTML5. Ahora puede firewall el acceso público RDP y SSH de su plataforma y acceder a su entorno desde cualquier navegador moderno. Para obtener más información sobre lo que Guacamole puede ofrecer, hay un excelente video que muestra todas las posibilidades de la plataforma aquí .
Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.
Esta guía completa le mostrará cómo configurar un servidor Counter-Strike 1.6 en Linux, optimizando el rendimiento y la seguridad para el mejor juego. Aprende los pasos más recientes aquí.
LiteCart es una plataforma de carrito de compras gratuita y de código abierto escrita en PHP, jQuery y HTML 5. Es un software de comercio electrónico simple, liviano y fácil de usar.
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
McMyAdmin es un panel de control del servidor de Minecraft utilizado para administrar su servidor. Aunque McMyAdmin es gratuito, hay varias ediciones, algunas de las cuales son pai
TeamTalk es un sistema de conferencia que permite a los usuarios tener conversaciones de audio / video de alta calidad, chat de texto, transferir archivos y compartir pantallas. Es yo
Using a Different System? Introduction CyberPanel is one of the first control panels on the market that is both open source and uses OpenLiteSpeed. What thi
¿Usando un sistema diferente? Introducción Grafana es un software de código abierto que transforma múltiples feeds de sistemas como Graphite, Telegraf, an
PhpBB es un programa de tablón de anuncios de código abierto. Este artículo le mostrará cómo instalar phpBB en la parte superior de un servidor web Apache en Ubuntu 16.04. Fue escrito
¿Usando un sistema diferente? Foreman es una herramienta gratuita y de código abierto que lo ayuda con la configuración y administración de servidores físicos y virtuales. Forema
Tener un solo usuario, que es root, puede ser peligroso. Así que arreglemos eso. Vultr nos brinda la libertad de hacer lo que queramos con nuestros usuarios y nuestros servidores.
Using a Different System? ESpeak can generate text-to-speech (TTS) audio files. These can be useful for many reasons, such as creating your own Turin
¿Usando un sistema diferente? Thelia es una herramienta de código abierto para crear sitios web de comercio electrónico y administrar contenido en línea, escrito en PHP. Código fuente de Thelia i
¿Usando un sistema diferente? Fuel CMS es un sistema de gestión de contenido basado en CodeIgniter. Su código fuente está alojado en GitHub. Esta guía le mostrará cómo t
¿Usando un sistema diferente? Couch CMS es un sistema de gestión de contenido (CMS) simple y flexible, gratuito y de código abierto que permite a los diseñadores web diseñar
¿Usando un sistema diferente? LibreNMS es un completo sistema de monitoreo de red de código abierto. Utiliza SNMP para obtener los datos de diferentes dispositivos. Una variedad
Introducción ¿Tiene problemas con la conectividad cuando los visitantes de otros países acceden a su sitio web? Preguntándose por qué la velocidad de descarga de su extranjero
¿Usando un sistema diferente? Ghost es una plataforma de blogs de código abierto que ha estado ganando popularidad entre los desarrolladores y usuarios comunes desde su 201
Pip es una herramienta para administrar paquetes de Python. El uso de un administrador de paquetes permite una gestión eficiente de su servidor. En este tutorial, explicaré cómo t
Cacti es una herramienta de gráficos y monitoreo de red de código abierto y libre escrita en PHP. Con la ayuda de RRDtool (herramienta de base de datos Round-Robin), Cacti se puede usar t
ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.
Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.
Esta guía completa le mostrará cómo configurar un servidor Counter-Strike 1.6 en Linux, optimizando el rendimiento y la seguridad para el mejor juego. Aprende los pasos más recientes aquí.
Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición
ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.
Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+
Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.
Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información
13 Herramientas comerciales de extracción de datos de Big Data
Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.