Install Plesk on CentOS 7
Using a Different System? Plesk is a proprietary web host control panel that allows users to administer their personal and/or clients websites, databases
Cieľom tohto návodu je zbaviť sa verejných pripojení SSH a verejných RDP. Umiestnením tohto všetkého za veľmi pohodlného klienta HTML5 môžeme pridať vrstvu zabezpečenia pre prístup k nášmu cloudu.
Guacamole tiež zaznamenáva akýkoľvek vzdialený prístup, takže neoprávnený prístup sa stáva oveľa vysledovateľnejším.
Poznámka: Pre Let's encrypt (možnosť B) potrebujeme názov domény. Ak ho nemáte, môžete tento krok preskočiť a jednoducho vykonať možnosť A .
Začnite roztočením VPS vo vašej požadovanej zóne Vultr. 1024 MB
VPS bude stačiť, ako guacamole nie je tak náročná.
Začnite povolením súkromnej siete na VPS. To je dobre zdokumentovaná tu
Najprv obrázok trochu pritvrdíme. A skontrolujme, či bol poskytnutý obrázok ufw
povolený.
root@vultr:~# ufw status
Status: inactive
V predvolenom nastavení je to zakázané, takže budeme musieť pridať niekoľko pravidiel.
Začnime s konfiguráciou týchto portov.
ufw allow 22/tcp
ufw allow 8080/tcp
Ďalej povoľte bránu firewall.
ufw enable
Nerobte si starosti, ak dostanete varovanie. Ak ste pridali port 22
, nebudete čeliť žiadnym problémom.
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Po povolení požiadajte o stav brány firewall a uvidíme konfiguráciu nášho portu.
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)
Pred začatím inštalácie musíme aktualizovať a inovovať repo. S balíkmi, ako je Tomcat
, ktorý je založený na jazyku Java, existuje neustály prúd objavených chýb a ich súvisiacich opráv. Zvyčajne je dobré to urobiť ako prvé, namiesto toho, aby ste sa ponáhľali priamo do našej inštalácie.
apt-get update
apt-get -y upgrade
Ďalej sú to všetky závislosti. Guacamole ich má pomerne veľa. (Úplný zoznam závislostí a ich funkcie nájdete tu ). Pokračujme inštaláciou všetkých z nich.
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
Keď inštalátor požiada o koreňové heslo MySQL, poskytnite ho a nezabudnite si ho poznačiť. Toto heslo použijeme neskôr na vytvorenie databázy Guacamole.
Teraz, keď máme všetky naše závislosti, môžeme pokračovať v sťahovaní Guacamole. Samotné guacamole prichádza väčšinou v zdrojovej forme a nie binárne. Najprv sa presunieme do /tmp
priečinka, aby sme sa vyhli neporiadku v iných častiach disku. Potom si stiahnite celý zdrojový kód.
Na stiahnutie sú štyri zdrojové/binárne súbory:
guacamole-0.9.13-incubating.war
: Toto je webová aplikácia. WAR
Súbor je zazipovaný web balíček poskytuje jednotné webové stránky umiestnené na webových stránkach Tomcatguacamole-server-0.9.13-incubating.tar.gz
: Tento súbor poskytne backendovú guacd
aplikáciu. To vytvára prúdy cez RDP a SSH.guacamole-auth-jdbc-0.9.13-incubating.tar.gz
: Budeme používať lokálnu databázu MySQL, takže potrebujeme príslušný JDBC
konektor.mysql-connector-java-5.1.43.tar.gz
: Bez ovládača databázy konektor JDBC nerobí nič. Tento súbor poskytuje samotný tím MySQL.Poznámka: Sťahovanie sa vyriešilo na najbližší server .
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
Po stiahnutí všetkých týchto súborov rozbaľte 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
Teraz, keď sme rozbalili celý zdrojový kód, urobme niekoľko guacamole
priečinkov, ktoré bude používať aplikácia guacamole a jej závislosti.
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
Všetko je pripravené pre naše nové binárne súbory Guacamole. Teraz môžeme spustiť proces kompilácie a inštalácie. Presuňte sa do extrahovaného priečinka servera Guacamole.
cd /tmp/guacamole-server-0.9.13-incubating
Nakonfigurujte aplikáciu tak, aby tiež vytvorila init.d
súbor na neskoršie spustenie ako služby.
./configure --with-init-dir=/etc/init.d
Príkaz by mal končiť „áno“ vo všetkých knižniciach a protokoloch. Ak nie, vráťte sa a skontrolujte príkaz apt-get, aby ste sa uistili, že ste nevynechali žiadny balík.
------------------------------------------------
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.
Ďalej skompilujte a nainštalujte server Gucamole.
make && make install
Once this all is done, run ldconfig
to rebuild the search path for libraries that have been added.
ldconfig
Proceed by using systemctl
to setup guacd
(Guacamole Daemon) to start on boot.
systemctl enable guacd
Guacamole binaries are now installed. Now we will get the web application ready for Tomcat.
Start by moving the war
file to the guacamole
folder we just created, once this is done create a logical link in the tomcat directory to point to our war
file.
cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
Then we need the mysql connector and JDBC. The JDBC driver is needed in the extensions
folder, the connector in the lib
folder.
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
Zadajte svoj e-mail a vyjadrite súhlas s otázkami, ktoré položil inštalatér. (Na No
zdieľanie e-mailu môžete pokojne zvoliť " ".) Certbot sa automaticky opýta, čo má robiť s HTTPS
. Použijeme možnosť 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
Posledná vec, ktorú budeme robiť, je aktualizácia DH
parametrov. Tie sú štandardne pre štandardy z roku 2017 trochu slabé.
Vytvorte nejaké nové.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Potom ich pridajte na predvolenú stránku v Nginx.
nano /etc/nginx/sites-available/default
Pridajte ich do konfigurácie servera.
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;
}
}
Skontrolujte chyby.
nginx -t
Aplikujte zmeny reštartovaním servera.
service nginx restart
Vyčistite staré 8080
pravidlo
ufw delete allow 8080/tcp
Poznámka: Ak by ste mali dostať „502 Bad Gateway“, budete musieť reštartovať tomcat8 .
service tomcat8 restart
Certifikáty Let's Encrypt vyžadujú obnovenie. Na to môžeme vytvoriť úlohu cron. Začnite úpravou súboru crontab
.
crontab -e
Pridajte nasledujúci riadok.
00 2 * * * /usr/bin/certbot renew --quiet
Tým sa o 2:00 skontroluje, či si nejaké certifikáty vyžadujú obnovenie, a ak áno, obnoví sa.
Prejdite na svoj server Guacamole (buď http://<ip>/
alebo https://rdp.example.com)
).
Na tento test budete potrebovať dve ďalšie inštancie: jeden Linux VM a ďalší Windows Server 2012 R2 so súkromnou IP povolenou na oboch.
Kliknite na „ username
“ v pravom hornom rohu a prejdite na „ Settings
“. Potom prejdite na „ Connections
“ a vyberte „ New Connection
“.
Vyplňte nasledujúce nastavenia (ostatné môžete ponechať predvolené).
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>
Stlačte „ save
“ a vráťte sa na domovskú obrazovku. Teraz môžete kliknúť na pripojenie " Windows Server 2012 R2
" a vykoná sa RDP k tomuto počítaču.
Stlačte „ Ctrl+Shift+Alt
“. Tým sa zobrazí ponuka na bočnej strane. Tu sa môžete odpojiť alebo vykonávať iné administratívne úlohy pre Guacamole.
Kliknite username
na v hornej časti ponuky a prejdite na „ Settings
“. Potom prejdite na Connections
kartu „ “ a vyberte „ New Connection
“.
Vyplňte nasledujúce nastavenia (ostatné môžete ponechať predvolené).
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)
Stlačte „ save
“ a vráťte sa na domovskú obrazovku. Teraz môžete kliknúť na toto novovytvorené pripojenie a byť pripojený k vášmu serveru Linux cez SSH.
Teraz máte webovú bránu RDP/SSH HTML5. Teraz môžete zablokovať verejný prístup RDP a SSH vašej platformy a pristupovať k svojmu prostrediu z akéhokoľvek moderného prehliadača. Pre viac informácií o tom, čo môže ponúknuť guacamole, tam je veľký video ukazujúce všetky mo platformy tu .
Using a Different System? Plesk is a proprietary web host control panel that allows users to administer their personal and/or clients websites, databases
Introduction Lets Encrypt is a certificate authority service that offers free TLS/SSL certificates. The process of installation is simplified by Certbot,
Používate iný systém? Čo je Tekkit Classic? Tekkit Classic je modpack pre hru, ktorú každý pozná a miluje; Minecraft. Obsahuje niektoré z ver
Using a Different System? Jekyll is a great alternative to WordPress for blogging or sharing content. It doesnt require any databases and it is very easy i
Používate iný systém? Ak si zakúpite server Debian, mali by ste mať vždy najnovšie bezpečnostné záplaty a aktualizácie, či už spíte alebo nie
PHP a súvisiace balíky sú najčastejšie používané komponenty pri nasadzovaní webového servera. V tomto článku sa naučíme, ako nastaviť PHP 7.0 alebo PHP 7.1 o
Squid je populárny bezplatný linuxový program, ktorý vám umožňuje vytvoriť webový proxy server na presmerovanie. V tejto príručke uvidíte, ako nainštalovať Squid na CentOS, aby vás zmenil
Úvod Lighttpd je fork Apache, ktorého cieľom je byť oveľa menej náročný na zdroje. Je ľahký, odtiaľ jeho názov, a jeho použitie je celkom jednoduché. Installin
1. Virtualmin/Webmin Virtualmin je výkonný a flexibilný ovládací panel webhostingu pre systémy Linux a UNIX založený na známej webovej základni Open Source
Yii je rámec PHP, ktorý vám umožňuje rýchlejšie a jednoduchšie vyvíjať aplikácie. Inštalácia Yii na Ubuntu je jednoduchá, ako sa presne dozviete
Screen je aplikácia, ktorá umožňuje viacnásobné použitie terminálových relácií v rámci jedného okna. To vám umožňuje simulovať viacero okien terminálu, kde je to možné
Tento tutoriál vysvetľuje, ako nastaviť server DNS pomocou Bind9 na Debiane alebo Ubuntu. V celom článku podľa toho nahraďte názov vašej-domény.com. Pri th
Úvod Logrotate je nástroj pre Linux, ktorý zjednodušuje správu protokolových súborov. Zvyčajne beží raz denne prostredníctvom úlohy cron a spravuje základňu protokolov
VULTR nedávno vykonal zmeny na ich konci a všetko by teraz malo fungovať dobre po vybalení so zapnutým NetworkManagerom. Ak chcete deaktivovať
Icinga2 je výkonný monitorovací systém a pri použití v modeli master-client môže nahradiť potrebu monitorovacích kontrol založených na NRPE. Hlavný klient
Používate iný systém? Red5 je mediálny server s otvoreným zdrojom implementovaný v jazyku Java, ktorý vám umožňuje spúšťať aplikácie Flash pre viacerých používateľov, ako napríklad živé vysielanie
Používate iný systém? Apache Cassandra je bezplatný a otvorený systém správy databáz NoSQL, ktorý je navrhnutý tak, aby poskytoval škálovateľnosť, vysokú
Používate iný systém? Vanilla forum je open source aplikácia fóra napísaná v PHP. Je plne prispôsobiteľný, ľahko použiteľný a podporuje externé
Používate iný systém? Úvod Kanboard je bezplatný a otvorený softvérový program na riadenie projektov, ktorý je navrhnutý tak, aby uľahčil a vizualizoval
Používate iný systém? Úvod Kanboard je bezplatný a otvorený softvérový program na riadenie projektov, ktorý je navrhnutý tak, aby uľahčil a vizualizoval
Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.
Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.
Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.
Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.
Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…
Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.
Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.
Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.
V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.
Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac