Instal·leu Plesk a CentOS 7
Utilitzeu un sistema diferent? Plesk és un tauler de control d'amfitrió web propietari que permet als usuaris administrar els seus llocs web personals i/o de clients, bases de dades
L'objectiu d'aquest tutorial és desfer-se de les connexions públiques SSH i RDP públiques. Si posem tot això darrere d'un client HTML5 molt còmode, podem afegir una capa de seguretat per accedir al nostre núvol.
Guacamole també registra qualsevol accés remot, de manera que l'accés no autoritzat es fa molt més traçable.
Nota: per a Let's encrypt (opció B) necessitem un nom de domini. Si no en teniu cap, podeu ometre aquest pas i només executar l'opció A .
Comenceu fent girar un VPS a la vostra zona Vultr desitjada. Un 1024 MB
VPS serà suficient, ja que el guacamole no és tan exigent.
Comenceu habilitant la xarxa privada al VPS. Això està ben documentat aquí
Primer endurim una mica la imatge. I comprovem si la imatge que s'ha subministrat està ufw
habilitada.
root@vultr:~# ufw status
Status: inactive
Per defecte està desactivat, així que haurem d'afegir unes quantes regles.
Comencem per configurar aquests ports.
ufw allow 22/tcp
ufw allow 8080/tcp
A continuació, activeu el tallafoc.
ufw enable
No us preocupeu si rebeu un avís. Si heu afegit port 22
, no trobareu cap 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
Un cop habilitat, sol·liciteu l'estat del tallafoc i veurem la configuració del nostre port.
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)
Abans de començar la instal·lació, hem d'actualitzar i actualitzar el repo. Amb paquets com ara Tomcat
, que està basat en Java, hi ha un flux constant d'errors descoberts i les seves correccions d'errors associades. En general, és una bona idea fer-ho primer en comptes de precipitar-se directament a la nostra instal·lació.
apt-get update
apt-get -y upgrade
El següent és totes les dependències. Guacamole en té uns quants. (Podeu trobar una llista completa de dependències i la seva funció aquí ). Continuem instal·lant-los tots.
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
Quan l'instal·lador demani una contrasenya d'arrel de MySQL, proporcioneu-ne una i assegureu-vos de prendre-ne nota. Més endavant utilitzarem aquesta contrasenya per crear la base de dades de Guacamole.
Ara que tenim totes les nostres dependències, podem continuar baixant Guacamole. El guacamole en si ve principalment en forma d'origen, i no en binari. Primer passarem a la /tmp
carpeta per evitar desordenar altres parts del disc. A continuació, descarregueu tot el codi font.
Hi ha quatre fitxers font/binaris per descarregar:
guacamole-0.9.13-incubating.war
: Aquesta és l'aplicació web. Un WAR
fitxer és un paquet web comprimit que proporciona un únic lloc web allotjat en un lloc web de Tomcatguacamole-server-0.9.13-incubating.tar.gz
: aquest fitxer proporcionarà l' guacd
aplicació de fons. Això crea els fluxos mitjançant RDP i SSH.guacamole-auth-jdbc-0.9.13-incubating.tar.gz
: Utilitzarem una base de dades MySQL local, per tant necessitem el JDBC
connector associat .mysql-connector-java-5.1.43.tar.gz
: Sense un controlador de base de dades, el connector JDBC no fa res. Aquest fitxer és proporcionat pel propi equip de MySQL.Nota: les descàrregues s'han resolt al servidor més proper .
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
Un cop hem baixat tots aquests fitxers, extreu els tar.gz
's.
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
Ara que hem extret tot el codi font, anem a fer unes quantes guacamole
carpetes, aquestes seran utilitzades per l'aplicació guacamole i les seves dependències.
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
Tot està preparat per als nostres nous binaris Guacamole. Ara podem iniciar el procés de compilació i instal·lació. Passeu a la carpeta del servidor Guacamole extret.
cd /tmp/guacamole-server-0.9.13-incubating
Configureu l'aplicació per crear també un init.d
fitxer per executar-la com a servei més endavant.
./configure --with-init-dir=/etc/init.d
L'ordre hauria d'acabar amb un "sí" a totes les biblioteques i protocols. Si no, torneu enrere i comproveu l'ordre apt-get per assegurar-vos que no us perdeu cap paquet.
------------------------------------------------
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ó, compileu i instal·leu el servidor Gucamole.
make && make install
Un cop fet tot això, executeu ldconfig
per reconstruir el camí de cerca de les biblioteques que s'han afegit.
ldconfig
Continueu utilitzant la systemctl
configuració guacd
(Guacamole Daemon) per iniciar l'arrencada.
systemctl enable guacd
Ara els binaris de Guacamole estan instal·lats. Ara prepararem l'aplicació web per Tomcat.
Comenceu movent el war
fitxer a la guacamole
carpeta que acabem de crear, un cop fet això creeu un enllaç lògic al directori Tomcat per apuntar al nostre war
fitxer.
cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
Aleshores necessitem el connector mysql i JDBC. El controlador JDBC es necessita a la extensions
carpeta, el connector a 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/
Once the connector and JDBC are in place, we need to edit the tocamt8
file. This file contains a lot of tomcat8
settings, and in our case we need to add the GUACAMOLE_HOME
variable at the end of the file.
nano /etc/default/tomcat8
Append with the following.
GUACAMOLE_HOME=/etc/guacamole
Next up is creating the database. Guacamole stores its connection configuration in a database, not inside a file.
Login with the root password
you used during the installation.
mysql -u root -p
The first step is to create a database called 'guacamole_db'.
create database guacamole_db;
Then run the create user
command. This will create a user with a password mysupersecretpassword
, this user will only be able to connect from localhost
.
create user 'guacamole_user'@'localhost' identified by "mysupersecretpassword";
Grant CRUD
operations to this user for the database guacamole_db
.
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
Flush privileges and exit the shell.
flush privileges;
exit
Finish up by adding the Guacamole schema to our newly created database.
cat /tmp/guacamole-auth-jdbc-0.9.13-incubating/mysql/schema/*.sql | mysql -u root -p guacamole_db
Once this is done, we need to edit the guacamole.properties
file. This file contains our recently created MySQL server configuration.
nano /etc/guacamole/guacamole.properties
Append the MySQL connection details and credentials.
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: mysupersecretpassword
Finish up by creating a symbolic link to the tomcat share folder, as this is where the WAR
file will search these properties.
ln -s /etc/guacamole /usr/share/tomcat8/.guacamole
End by restarting the tomcat8
server and start the guacd
server daemon.
service tomcat8 restart
service guacd start
You can verify by using the status command.
service tomcat8 status
service guacd status
Now you can browse to your VPS on port 8080
http://<yourpublicip>:8080/guacamole/
Use the username guacadmin
and the same password guacadmin
. This will grant you access to an empty Guacamole server.
Click in the top right corner on your username guacadmin
and select Settings
. Once you are in the settings page go to the Users
tab and select the user guacadmin
.
Now change your password to something else or create a new admin user and delete the default guacadmin
one.
These are the final steps: cleaning up after you are done.
Delete the downloaded source code and binaries from the /tmp
folder.
rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*
Also, make the Guacamole web application the default one. In the tomcat ecosystem the application that gets the ROOT
folder is the one that is started by default when you access the website.
Delete the old ROOT
placeholder.
rm -rf /var/lib/tomcat8/webapps/ROOT
And make a symbolic link for the guacamole server to be the ROOT
one.
ln -s /var/lib/tomcat8/webapps/guacamole /var/lib/tomcat8/webapps/ROOT
This requires a tomcat restart.
service tomcat8 restart
Edit the tomcat8/server.xml
file and change the connector port.
nano /etc/tomcat8/server.xml
Search for the Connector port
.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
And replace 8080
with 80
.
By default, tomcat doesn't allow the binding of ports below 1024
. To enable this we need to tell tomcat8 to create authenticated binds.
Edit the default
file of tomcat8 and uncomment the AUTHBIND
line and use the option yes
nano /etc/default/tomcat8
AUTHBIND=yes
Once this is done, intall authbind
.
apt-get install authbind
Configure it so that port 80
can be claimed by tomcat8.
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80
Allow port 80
through the firewall and delete the rule for 8080
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Restart tomcat.
service tomcat8 restart
That's it, now Guacamole should be running on port 80
.
Tomcat really isn't one of the best and most robust applications to use with certbot
. Luckily Nginx is. We will just to proxy tomcat to Nginx. It uses the out-of-the-box functionality of certbot at the cost of sacrificing a little bit of RAM.
apt-get install nginx
Once installed, edit the default configuration.
nano /etc/nginx/sites-available/default
Delete all example configurations and add the following configuration.
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;
}
}
This will create a proxy for the website running at 8080
. Restart Nginx, and enable it at boot.
systemctl restart nginx
systemctl enable nginx
Check if everything is working.
systemctl status nginx
Disable the testing port 8080
and allow traffic on port 80
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Before we can use certbot
, we need to add the correct ppa
to the system containing our certbot packages.
add-apt-repository ppa:certbot/certbot
Press "ENTER
" to accept the configuration change.
Update apt
to gather the new packages.
apt-get update
Finally, install the Nginx module for assigning the certificates.
apt-get -y install python-certbot-nginx
Configure the firewall to allow HTTPS
.
ufw allow 443/tcp
Before we can request new certificates, we need a DNS name.
nano /etc/nginx/sites-available/default
Add the following server_name
setting.
server_name rdp.example.com;
Change the configuration to reflect this new setting.
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;
}
}
Check if all is working and restart Nginx.
nginx -t
service nginx restart
Now request a certificate with certbot.
certbot --nginx -d rdp.example.com
Proporcioneu el vostre correu electrònic i accepteu les preguntes fetes per l'instal·lador. (Podeu triar " No
" amb seguretat per compartir el vostre correu electrònic.) Certbot us preguntarà automàticament què ha de fer amb HTTPS
. Farem servir l'opció 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
L'últim que farem és actualitzar els DH
paràmetres. Aquests són, per defecte, una mica febles per als estàndards del 2017.
Crea-ne de nous.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
A continuació, afegiu-los al lloc predeterminat a Nginx.
nano /etc/nginx/sites-available/default
Afegiu-los a la configuració 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;
}
}
Comproveu si hi ha errors.
nginx -t
Apliqueu els canvis reiniciant el servidor.
service nginx restart
Neteja l'antiga 8080
regla
ufw delete allow 8080/tcp
Nota: si rebeu una "502 Bad Gateway", haureu de reiniciar el tomcat8 .
service tomcat8 restart
Els certificats de Let's Encrypt requereixen renovació. Podem crear un treball cron per a això. Comenceu editant el crontab
.
crontab -e
Afegiu la línia següent.
00 2 * * * /usr/bin/certbot renew --quiet
Això comprovarà a les 2:00 a.m. si algun certificat requereix una renovació i els renovarà si ho fan.
Aneu al vostre servidor de Guacamole (o http://<ip>/
bé https://rdp.example.com)
).
Per a aquesta prova, necessitareu dues instàncies més: una màquina virtual Linux i una altra Windows Server 2012 R2 amb una IP privada habilitada en ambdues.
Feu clic a " username
" a l'extrem superior dret i aneu a " Settings
". A continuació, aneu a " Connections
" i seleccioneu " New Connection
".
Ompliu la configuració següent (podeu deixar els altres per defecte).
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>
Premeu " save
" i torneu a la pantalla d'inici. Ara podeu fer clic a la Windows Server 2012 R2
connexió " " i es farà RDP a aquesta màquina.
Premeu " Ctrl+Shift+Alt
". Això sortirà el menú al costat. Aquí pots desconnectar o realitzar altres tasques administratives per a Guacamole.
Feu clic username
a la part superior del menú i aneu a " Settings
". A continuació, aneu a la Connections
pestanya " " i seleccioneu " New Connection
".
Ompliu la configuració següent (podeu deixar els altres per defecte).
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)
Premeu " save
" i torneu a la pantalla d'inici. Ara podeu fer clic en aquesta connexió acabada de crear i connectar-vos al vostre servidor Linux mitjançant SSH.
Ara teniu una passarel·la web RDP/SSH HTML5. Ara podeu tallar l'accés públic RDP i SSH de la vostra plataforma i accedir al vostre entorn des de qualsevol navegador modern. Per obtenir més informació sobre el que pot oferir Guacamole, hi ha un gran vídeo que mostra totes les possibilitats de la plataforma aquí .
Utilitzeu un sistema diferent? Plesk és un tauler de control d'amfitrió web propietari que permet als usuaris administrar els seus llocs web personals i/o de clients, bases de dades
Introducció Lets Encrypt és un servei d'autoritat de certificació que ofereix certificats TLS/SSL gratuïts. El procés d'instal·lació està simplificat per Certbot,
Utilitzeu un sistema diferent? Què és Tekkit Classic? Tekkit Classic és un modpack per al joc que tothom coneix i estima; Minecraft. Conté algunes de la ver
Utilitzeu un sistema diferent? Jekyll és una gran alternativa a WordPress per crear blocs o compartir contingut. No requereix cap base de dades i és molt fàcil
Utilitzeu un sistema diferent? Si compres un servidor Debian, sempre hauríeu de tenir els darrers pedaços i actualitzacions de seguretat, tant si esteu adormit com si no.
PHP i els paquets relacionats són els components més utilitzats quan es desplega un servidor web. En aquest article, aprendrem a configurar PHP 7.0 o PHP 7.1 o
Squid és un popular programa Linux gratuït que us permet crear un servidor intermediari web de reenviament. En aquesta guia, veureu com instal·lar Squid a CentOS per convertir-vos-hi
Introducció Lighttpd és una bifurcació d'Apache destinada a ser molt menys intensiu en recursos. És lleuger, d'aquí el seu nom, i és bastant senzill d'utilitzar. Instal·lant
1. Virtualmin/Webmin Virtualmin és un tauler de control d'allotjament web potent i flexible per a sistemes Linux i UNIX basat en la coneguda base web de codi obert
Yii és un framework PHP que permet desenvolupar aplicacions de manera més ràpida i senzilla. Instal·lar Yii a Ubuntu és senzill, ja que aprendràs exactament
Screen és una aplicació que permet l'ús múltiple de sessions de terminal dins d'una finestra. Això us permet simular diverses finestres de terminal on es fa
Aquest tutorial explica com configurar un servidor DNS amb Bind9 a Debian o Ubuntu. Al llarg de l'article, substituïu el vostre-nom-domini.com en conseqüència. Al th
Introducció Logrotate és una utilitat Linux que simplifica l'administració dels fitxers de registre. Normalment s'executa un cop al dia mitjançant un treball cron i gestiona la base de registres
Recentment, VULTR ha fet canvis al seu extrem, i ara tot hauria de funcionar bé des de la caixa amb NetworkManager habilitat. Si voleu desactivar
Icinga2 és un sistema de supervisió potent i, quan s'utilitza en un model de client mestre, pot substituir la necessitat de controls de monitoratge basats en NRPE. El mestre-client
Utilitzeu un sistema diferent? Red5 és un servidor multimèdia de codi obert implementat a Java que us permet executar aplicacions Flash multiusuari com ara la transmissió en directe.
En aquest article, veurem com compilar i instal·lar la línia principal de Nginx des de les fonts oficials de Nginx amb el mòdul PageSpeed, que us permet
Utilitzeu un sistema diferent? Apache Cassandra és un sistema de gestió de bases de dades NoSQL gratuït i de codi obert dissenyat per proporcionar escalabilitat, alta
Utilitzeu un sistema diferent? Apache Cassandra és un sistema de gestió de bases de dades NoSQL gratuït i de codi obert dissenyat per proporcionar escalabilitat, alta
Utilitzeu un sistema diferent? Vanilla Forum és una aplicació de fòrum de codi obert escrita en PHP. És totalment personalitzable, fàcil d'utilitzar i admet externa
La Intel·ligència Artificial no està en el futur, és aquí mateix en el present. En aquest bloc Llegiu com les aplicacions d'Intel·ligència Artificial han afectat diversos sectors.
També ets víctima d'atacs DDOS i estàs confós sobre els mètodes de prevenció? Llegiu aquest article per resoldre les vostres consultes.
Potser haureu sentit que els pirates informàtics guanyen molts diners, però us heu preguntat mai com guanyen aquest tipus de diners? anem a discutir.
Vols veure els invents revolucionaris de Google i com aquests invents van canviar la vida de tots els éssers humans actuals? A continuació, llegiu al bloc per veure els invents de Google.
El concepte de cotxes autònoms per sortir a les carreteres amb l'ajuda de la intel·ligència artificial és un somni que tenim des de fa temps. Però malgrat les diverses promeses, no es veuen enlloc. Llegeix aquest blog per saber-ne més...
A mesura que la ciència evoluciona a un ritme ràpid, fent-se càrrec de molts dels nostres esforços, també augmenten els riscos de sotmetre'ns a una singularitat inexplicable. Llegeix, què pot significar per a nosaltres la singularitat.
Els mètodes d'emmagatzematge de les dades que han anat evolucionant poden ser des del naixement de les dades. Aquest bloc tracta l'evolució de l'emmagatzematge de dades a partir d'una infografia.
Llegeix el blog per conèixer de la manera més senzilla les diferents capes de l'Arquitectura Big Data i les seves funcionalitats.
En aquest món digital, els dispositius domèstics intel·ligents s'han convertit en una part crucial de les vides. A continuació, es mostren alguns avantatges sorprenents dels dispositius domèstics intel·ligents sobre com fan que la nostra vida valgui la pena i sigui més senzilla.
Recentment, Apple va llançar macOS Catalina 10.15.4, una actualització de suplements per solucionar problemes, però sembla que l'actualització està causant més problemes que provoquen el bloqueig de les màquines Mac. Llegiu aquest article per obtenir més informació