Opsæt Cacti på Debian Jessie
Introduktion Cacti er et open source overvågnings- og grafværktøj, som er fuldt baseret på RRD-data. Gennem Cacti kan du overvåge næsten enhver type enhed
Målet med denne tutorial er at slippe af med de offentlige SSH- og offentlige RDP-forbindelser. Ved at placere alt dette bag en meget praktisk HTML5-klient, kan vi tilføje et lag af sikkerhed for at få adgang til vores sky.
Guacamole logger også enhver fjernadgang, så uautoriseret adgang bliver meget mere sporbar.
Bemærk: Til Lad os kryptere (mulighed B) har vi brug for et domænenavn. Hvis du ikke har en, kan du springe dette trin over og bare udføre valgmulighed A .
Start med at dreje en VPS op i din ønskede Vultr-zone. En 1024 MB
VPS vil være nok, da Guacamole ikke er så krævende.
Start med at aktivere det private netværk på VPS'en. Dette er veldokumenteret her
Lad os først hærde billedet lidt. Og lad os kontrollere, om det billede, der er klargjort, er ufw
aktiveret.
root@vultr:~# ufw status
Status: inactive
Som standard er det deaktiveret, så vi bliver nødt til at tilføje et par regler.
Lad os starte med at konfigurere disse porte.
ufw allow 22/tcp
ufw allow 8080/tcp
Aktivér derefter firewallen.
ufw enable
Bare rolig, hvis du modtager en advarsel. Hvis du tilføjede port 22
, vil du ikke støde på nogen problemer.
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Når det er aktiveret, anmod om status for firewallen, og vi vil se vores portkonfiguration.
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)
Før vi begynder at installere, skal vi opdatere og opgradere repoen. Med pakker som Tomcat
, som er Java-baseret, er der en konstant strøm af opdagede fejl og deres tilhørende fejlrettelser. Det er normalt en god idé at gøre dette først i stedet for at skynde sig direkte ind i vores installation.
apt-get update
apt-get -y upgrade
Det næste er alle afhængigheder. Guacamole har en del af dem. (En komplet liste over afhængigheder og deres funktion kan findes her ). Lad os fortsætte med at installere dem alle.
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
Når installationsprogrammet beder om en MySQL root-adgangskode, skal du angive en og være sikker på at notere den. Vi vil bruge denne adgangskode senere til at oprette Guacamole-databasen.
Nu hvor vi har alle vores afhængigheder, kan vi fortsætte med at downloade Guacamole. Guacamole selv kommer for det meste i en kildeform og ikke en binær. Først vil vi flytte til /tmp
mappen for at undgå rod i andre dele af disken. Download derefter hele kildekoden.
Der er fire kilde-/binære filer at downloade:
guacamole-0.9.13-incubating.war
: Dette er webapplikationen. En WAR
fil er en zippet webpakke, der giver et enkelt websted hostet på et Tomcat-webstedguacamole-server-0.9.13-incubating.tar.gz
: Denne fil vil levere backend- guacd
applikationen. Dette skaber streams gennem RDP og SSH.guacamole-auth-jdbc-0.9.13-incubating.tar.gz
: Vi vil bruge en lokal MySQL-database, så vi har brug for den tilhørende JDBC
connector.mysql-connector-java-5.1.43.tar.gz
: Uden en databasedriver gør JDBC-stikket ingenting. Denne fil leveres af MySQL-teamet selv.Bemærk: downloads løst til den nærmeste 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
Når vi har downloadet alle disse filer, skal du udpakke tar.gz
''erne.
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
Nu hvor vi har udtrukket al kildekoden, lad os lave et par guacamole
mapper, disse vil blive brugt af guacamole-applikationen og dens afhængigheder.
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
Alt er klar til vores nye Guacamole binære filer. Vi kan nu starte kompilering og installationsprocessen. Flyt over til den udpakkede Guacamole Server-mappe.
cd /tmp/guacamole-server-0.9.13-incubating
Konfigurer applikationen til også at oprette en init.d
fil til at køre den som en tjeneste senere.
./configure --with-init-dir=/etc/init.d
Kommandoen skal slutte med et 'ja' på alle biblioteker og protokoller. Hvis ikke, gå tilbage og tjek kommandoen apt-get for at sikre dig, at du ikke gik glip af nogen pakke.
------------------------------------------------
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.
Næste kompilér og installer Gucamole-serveren.
make && make install
Når alt dette er gjort, skal du køre for ldconfig
at genopbygge søgestien for biblioteker, der er blevet tilføjet.
ldconfig
Fortsæt ved at bruge systemctl
til opsætning guacd
(Guacamole Daemon) for at starte ved opstart.
systemctl enable guacd
Guacamole binære filer er nu installeret. Nu gør vi webapplikationen klar til Tomcat.
Start med at flytte war
filen til den guacamole
mappe, vi lige har oprettet, når dette er gjort, opret et logisk link i tomcat-mappen for at pege på vores war
fil.
cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
Så har vi brug for mysql-stikket og JDBC. JDBC-driveren er nødvendig i extensions
mappen, stikket i lib
mappen.
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
Angiv din e-mail og accepter de spørgsmål, som installatøren stillede. (Du kan roligt vælge " No
" at dele din e-mail.) Certbot vil automatisk spørge, hvad den skal gøre med HTTPS
. Vi vil bruge mulighed 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
Det sidste, vi vil gøre, er at opdatere DH
parametrene. Disse er som standard en smule svage for 2017-standarder.
Opret nogle nye.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Tilføj dem derefter til standardwebstedet i Nginx.
nano /etc/nginx/sites-available/default
Tilføj dem til serverkonfigurationen.
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;
}
}
Tjek for fejl.
nginx -t
Anvend ændringerne ved at genstarte serveren.
service nginx restart
Ryd den gamle 8080
regel op
ufw delete allow 8080/tcp
Bemærk: Hvis du skulle modtage en "502 Bad Gateway", skal du genstarte tomcat8 .
service tomcat8 restart
Lad os kryptere certifikater kræver fornyelse. Vi kan skabe et cron job til dette. Start med at redigere crontab
.
crontab -e
Tilføj følgende linje.
00 2 * * * /usr/bin/certbot renew --quiet
Dette vil kontrollere kl. 02.00, om nogen certifikater kræver en fornyelse, og forny dem, hvis de gør det.
Gå til din Guacamole-server (enten http://<ip>/
eller https://rdp.example.com)
).
Til denne test skal du bruge to instanser mere: en Linux VM og en anden Windows Server 2012 R2 med en privat IP aktiveret på begge.
Klik på " username
" i øverste højre hjørne og gå til " Settings
". Gå derefter til " Connections
" og vælg " New Connection
".
Udfyld følgende indstillinger (du kan lade de andre stå som standard).
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>
Tryk på " save
" og gå tilbage til startskærmen. Nu kan du klikke på " Windows Server 2012 R2
"-forbindelsen, og den vil RDP til denne maskine.
Tryk på " Ctrl+Shift+Alt
". Dette vil poppe ud i menuen på siden. Her kan du afbryde forbindelsen eller udføre andre administrative opgaver for Guacamole.
Klik username
på øverst i menuen og gå til " Settings
". Gå derefter til fanen " Connections
" og vælg " New Connection
".
Udfyld følgende indstillinger (du kan lade de andre stå som standard).
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)
Tryk på " save
" og gå tilbage til startskærmen. Nu kan du klikke på denne nyoprettede forbindelse og blive forbundet til din Linux-server via SSH.
Du har nu en web-RDP/SSH HTML5-gateway. Nu kan du firewall den offentlige RDP- og SSH-adgang til din platform og få adgang til dit miljø fra enhver moderne browser. For mere information om, hvad Guacamole kan tilbyde, er der en fantastisk video, der viser alle platformens muligheder her .
Introduktion Cacti er et open source overvågnings- og grafværktøj, som er fuldt baseret på RRD-data. Gennem Cacti kan du overvåge næsten enhver type enhed
Introduktion Lets Encrypt er en certifikatmyndighedstjeneste, der tilbyder gratis TLS/SSL-certifikater. Installationsprocessen forenkles af Certbot,
Bruger du et andet system? Denne vejledning viser dig, hvordan du installerer groupware iRedMail på en ny installation af Debian Wheezy. Du bør bruge en serve
Introduktion Lighttpd er en forgrening af Apache, der sigter mod at være meget mindre ressourcekrævende. Den er let, deraf navnet, og den er ret enkel at bruge. Installer
1. Virtualmin/Webmin Virtualmin er et kraftfuldt og fleksibelt webhotel kontrolpanel til Linux og UNIX systemer baseret på den velkendte Open Source web-base
Yii er en PHP-ramme, der giver dig mulighed for at udvikle applikationer hurtigere og nemmere. Installation af Yii på Ubuntu er ligetil, da du vil lære nøjagtigt
Screen er et program, der tillader flere terminalsessioner inden for et vindue. Dette giver dig mulighed for at simulere flere terminalvinduer, hvor det ma
Introduktion Logrotate er et Linux-værktøj, der forenkler administrationen af logfiler. Det kører typisk en gang om dagen via et cron-job og administrerer logbasen
VULTR har for nylig foretaget ændringer i deres ende, og alt skulle nu fungere fint ud af boksen med NetworkManager aktiveret. Skulle du ønske at deaktivere
Icinga2 er et kraftfuldt overvågningssystem, og når det bruges i en master-klient-model, kan det erstatte behovet for NRPE-baserede overvågningstjek. Mester-klienten
I denne artikel vil vi se, hvordan du kompilerer og installerer Nginx mainline fra de officielle kilder til Nginx med PageSpeed-modulet, som giver dig mulighed for at
Bruger du et andet system? Apache Cassandra er et gratis og open source NoSQL-databasestyringssystem, der er designet til at give skalerbarhed, høj
Bruger du et andet system? Introduktion Kanboard er et gratis og open source projektstyringssoftwareprogram, som er designet til at lette og visualisere
Bruger du et andet system? Introduktion Kanboard er et gratis og open source projektstyringssoftwareprogram, som er designet til at lette og visualisere
Bruger du et andet system? Gitea er et alternativt open source, selvhostet versionskontrolsystem drevet af Git. Gitea er skrevet på Golang og er
Bruger du et andet system? Gitea er et alternativt open source, selv-hostet versionskontrolsystem drevet af git. Gitea er skrevet på Golang og er
Bruger du et andet system? Thelia er et open source-værktøj til at skabe e-business-websteder og administrere onlineindhold skrevet i PHP. Thelia kildekode i
Hvad er Dirty Cow (CVE-2016-5195)? Dirty Cow-sårbarheden udnyttes gennem, hvordan Linux behandler kode. Det giver en uprivilegeret bruger mulighed for at gai
Det kan være farligt at have kun én bruger, som er root. Så lad os ordne det. Vultr giver os friheden til at gøre som vi vil med vores brugere og vores servere
Adminer er et letvægtsalternativ til phpMyAdmin. Til sammenligning er dens samlede pakkestørrelse 400KB mod 4,2 MB phpMyAdmin. I modsætning til phpMyAdmin, som
Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.
Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.
Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.
Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.
Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...
Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.
Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af dataene. Denne blog dækker udviklingen af datalagring på basis af en infografik.
Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.
I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.
For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af mac-maskiner. Læs denne artikel for at lære mere