O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Scopul acestui tutorial este de a scăpa de conexiunile publice SSH și publice RDP. Plasând toate acestea în spatele unui client HTML5 foarte convenabil, putem adăuga un strat de securitate pentru accesarea norului nostru.
De asemenea, Guacamole înregistrează orice acces la distanță, astfel încât accesul neautorizat devine mult mai urmărit.
Notă: Pentru a cripta (opțiunea B) avem nevoie de un nume de domeniu. Dacă nu aveți, puteți sări peste acest pas și doar executa opțiunea A .
Începeți prin a roti un VPS în zona voastră dorită. Un 1024 MB
VPS va fi suficient, deoarece Guacamole nu este atât de solicitant.
Începeți prin activarea rețelei private de pe VPS. Acest lucru este bine documentat aici
Mai întâi, să întărim puțin imaginea. Și să verificăm dacă imaginea furnizată a fost ufw
activată.
root@vultr:~# ufw status
Status: inactive
În mod implicit, este dezactivat, așa că va trebui să adăugăm câteva reguli.
Să începem cu configurarea acestor porturi.
ufw allow 22/tcp
ufw allow 8080/tcp
Apoi activați firewallul.
ufw enable
Nu vă faceți griji dacă primiți un avertisment. Dacă ați adăugat port 22
, nu veți întâmpina probleme.
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Odată activată, solicitați starea firewallului și vom vedea configurația portului nostru.
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)
Înainte de a începe instalarea, trebuie să actualizăm și să actualizăm repo. Cu pachete cum ar fi Tomcat
, bazată pe Java, există un flux constant de buguri descoperite și de bugfix-urile asociate acestora. De obicei, este o idee bună să faceți acest lucru mai întâi în loc să vă grăbiți direct în instalarea noastră.
apt-get update
apt-get -y upgrade
Următoarele sunt toate dependențele. Guacamole are destul de multe dintre ele. (O listă completă de dependențe și funcția lor poate fi găsită aici ). Să continuăm instalându-le pe toate.
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
Când instalatorul solicită o parolă rădăcină MySQL, furnizați una și asigurați-vă că o luați în considerare. Mai târziu vom folosi această parolă pentru a crea baza de date Guacamole.
Acum că avem toate dependențele noastre, putem continua cu descărcarea Guacamole. Guacamole în sine vine mai ales într-o formă sursă, și nu în mod binar. Mai întâi ne vom muta în /tmp
folder pentru a evita aglomerarea altor părți ale discului. Apoi descărcați tot codul sursă.
Există patru fișiere sursă / binare pentru a descărca:
guacamole-0.9.13-incubating.war
: Aceasta este aplicația web. Un WAR
fișier este un pachet web zipped care oferă un singur site găzduit pe un site Tomcatguacamole-server-0.9.13-incubating.tar.gz
: Acest fișier va furniza guacd
aplicația de backend . Aceasta creează fluxurile prin RDP și SSH.guacamole-auth-jdbc-0.9.13-incubating.tar.gz
: Vom folosi o bază de date locală MySQL, deci avem nevoie de JDBC
conectorul asociat .mysql-connector-java-5.1.43.tar.gz
: Fără un driver de bază de date, conectorul JDBC nu face nimic. Acest fișier este furnizat chiar de echipa MySQL.Notă: descărcările rezolvate la cel mai apropiat 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
După ce am descărcat toate aceste fișiere, extrageți- tar.gz
le.
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
Acum că am extras tot codul sursă, să facem câteva guacamole
foldere, acestea vor fi utilizate de aplicația guacamole și de dependențele acesteia.
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
Totul este gata pentru noile noastre binare Guacamole. Acum putem începe procesul de compilare și instalare. Mutați-vă în folderul extras al serverului Guacamole.
cd /tmp/guacamole-server-0.9.13-incubating
Configurați aplicația pentru a crea, de asemenea, un init.d
fișier pentru a fi rulat ca serviciu ulterior.
./configure --with-init-dir=/etc/init.d
Comanda ar trebui să se încheie cu un „da” pe toate bibliotecile și protocoalele. Dacă nu, mergeți înapoi și verificați comanda apt-get pentru a vă asigura că nu ați ratat niciun pachet.
------------------------------------------------
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.
Urmăriți compilarea și instalarea serverului Gucamole.
make && make install
După ce toate acestea sunt făcute, executați ldconfig
pentru a reconstrui calea de căutare pentru bibliotecile care au fost adăugate.
ldconfig
Continuați folosind systemctl
configurarea guacd
(Guacamole Daemon) pentru a începe pornirea.
systemctl enable guacd
Acum sunt instalate binarele Guacamole. Acum vom pregăti aplicația web pentru Tomcat.
Începeți prin mutarea war
fișierului în guacamole
folderul pe care tocmai l-am creat, odată ce acest lucru este realizat, creați o legătură logică în directorul tomcat pentru a indica war
fișierul nostru .
cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
Apoi avem nevoie de conectorul mysql și JDBC. Driverul JDBC este necesar în extensions
folder, conectorul din 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/
Odată ce conectorul și JDBC sunt pe loc, trebuie să edităm tocamt8
fișierul. Acest fișier conține o mulțime de tomcat8
setări, iar în cazul nostru trebuie să adăugăm GUACAMOLE_HOME
variabila la sfârșitul fișierului.
nano /etc/default/tomcat8
Se adaugă cu următoarele.
GUACAMOLE_HOME=/etc/guacamole
Următoarea este crearea bazei de date. Guacamole stochează configurația conexiunii într-o bază de date, nu în interiorul unui fișier.
Conectați-vă cu cel root password
utilizat în timpul instalării.
mysql -u root -p
Primul pas este crearea unei baze de date numită „guacamole_db”.
create database guacamole_db;
Apoi executați create user
comanda. Acest lucru va crea un utilizator cu o parolă mysupersecretpassword
, acest utilizator se va putea conecta doar de la localhost
.
create user 'guacamole_user'@'localhost' identified by "mysupersecretpassword";
Acordă CRUD
operațiuni acestui utilizator pentru baza de date guacamole_db
.
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
Clătiți privilegiile și ieșiți din coajă.
flush privileges;
exit
Finalizează adăugând schema Guacamole la baza noastră de date recent creată.
cat /tmp/guacamole-auth-jdbc-0.9.13-incubating/mysql/schema/*.sql | mysql -u root -p guacamole_db
Odată făcut acest lucru, trebuie să edităm guacamole.properties
fișierul. Acest fișier conține configurația serverului nostru MySQL creat recent.
nano /etc/guacamole/guacamole.properties
Adăugați detaliile și datele de autentificare ale conexiunii MySQL.
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: mysupersecretpassword
Finalizați prin crearea unui link simbolic la folderul de partajare tomcat, deoarece aici este WAR
fișierul va căuta aceste proprietăți.
ln -s /etc/guacamole /usr/share/tomcat8/.guacamole
Terminați prin repornirea tomcat8
serverului și porniți guacd
demonul serverului.
service tomcat8 restart
service guacd start
Puteți verifica folosind comanda status.
service tomcat8 status
service guacd status
Acum puteți naviga la VPS pe port 8080
http://<yourpublicip>:8080/guacamole/
Utilizați numele de utilizator guacadmin
și aceeași parolă guacadmin
. Acest lucru vă va oferi acces la un server Guacamole gol.
Faceți clic în colțul din dreapta sus al numelui de utilizator guacadmin
și selectați Settings
. Odată ce sunteți în pagina de setări, mergeți la Users
fila și selectați utilizatorul guacadmin
.
Acum schimba parola cu altceva sau creează-ți un nou utilizator de admin și șterge-o pe cea implicită guacadmin
.
Acestea sunt etapele finale: curățarea după ce ați terminat.
Ștergeți codul sursă și binarele descărcate din /tmp
folder.
rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*
De asemenea, faceți din aplicația web Guacamole cea implicită. În ecosistemul tomcat, aplicația care primește ROOT
folderul este cea care este pornită implicit atunci când accesați site-ul.
Ștergeți ROOT
marcatorul de locație vechi .
rm -rf /var/lib/tomcat8/webapps/ROOT
Și creează o legătură simbolică pentru ca serverul guacamole să fie ROOT
singurul.
ln -s /var/lib/tomcat8/webapps/guacamole /var/lib/tomcat8/webapps/ROOT
Aceasta necesită o repornire a tomcatului.
service tomcat8 restart
Editați tomcat8/server.xml
fișierul și schimbați portul conectorului.
nano /etc/tomcat8/server.xml
Căutați Connector port
.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
Și înlocuiți 8080
cu 80
.
În mod implicit, tomcat nu permite legarea porturilor de mai jos 1024
. Pentru a activa acest lucru, trebuie să spunem tomcat8 să creeze legături autentificate.
Editați default
fișierul tomcat8 și dezarhivați AUTHBIND
linia și utilizați opțiuneayes
nano /etc/default/tomcat8
AUTHBIND=yes
Odată făcut acest lucru, intall authbind
.
apt-get install authbind
Configurați-l astfel încât portul 80
să poată fi revendicat de tomcat8.
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80
Permiteți portul 80
prin firewall și ștergeți regula pentru 8080
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Reporniți tomcatul.
service tomcat8 restart
Asta e, acum Guacamole ar trebui să funcționeze pe port 80
.
Tomcat nu este într-adevăr una dintre cele mai bune și mai solide aplicații cu care să folosești certbot
. Din fericire, Nginx este. Vom proxy tomcat pentru Nginx. Acesta folosește funcționalitatea out-of-the-box a certbot cu prețul sacrificării unui pic de memorie RAM.
apt-get install nginx
După instalare, editați configurația implicită.
nano /etc/nginx/sites-available/default
Ștergeți toate configurațiile de exemplu și adăugați următoarea configurație.
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;
}
}
Acest lucru va crea un proxy pentru site-ul web care rulează la 8080
. Reporniți Nginx și activați-l la pornire.
systemctl restart nginx
systemctl enable nginx
Verificați dacă totul funcționează.
systemctl status nginx
Dezactivează portul de testare 8080
și permite traficul în port 80
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Înainte de a putea utiliza certbot
, trebuie să adăugăm corect ppa
sistemul care conține pachetele noastre certbot.
add-apt-repository ppa:certbot/certbot
Apăsați " ENTER
" pentru a accepta modificarea de configurare.
Actualizare apt
pentru a aduna noile pachete.
apt-get update
În cele din urmă, instalați modulul Nginx pentru atribuirea certificatelor.
apt-get -y install python-certbot-nginx
Configurați firewallul pentru a permite HTTPS
.
ufw allow 443/tcp
Înainte de a putea solicita noi certificate, avem nevoie de un nume DNS.
nano /etc/nginx/sites-available/default
Adăugați următoarea server_name
setare.
server_name rdp.example.com;
Modificați configurația pentru a reflecta această nouă setare.
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;
}
}
Verificați dacă totul funcționează și reporniți Nginx.
nginx -t
service nginx restart
Acum cereți un certificat cu certbot.
certbot --nginx -d rdp.example.com
Furnizați e-mailul dvs. și fiți de acord cu întrebările adresate de instalator. (Puteți alege în mod sigur " No
" pentru a partaja e-mailul dvs.) Certbot va întreba automat cu ce trebuie să facă HTTPS
. Vom folosi opțiunea 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
Ultimul lucru pe care îl vom face este actualizarea DH
parametrilor. Acestea sunt, implicit, puțin slabe pentru standardele din 2017.
Creați unele noi.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Apoi, adăugați-le pe site-ul implicit din Nginx.
nano /etc/nginx/sites-available/default
Adăugați-le la configurația serverului.
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;
}
}
Verificați erorile.
nginx -t
Aplicați modificările repornind serverul.
service nginx restart
Curățarea vechii 8080
reguli
ufw delete allow 8080/tcp
Notă: dacă ar trebui să primiți un "502 Bad Gateway", va trebui să reporniți tomcat8 .
service tomcat8 restart
Să criptăm certificatele necesită reînnoire. Putem crea un job cron pentru asta. Începeți prin editarea crontab
.
crontab -e
Adăugați următoarea linie.
00 2 * * * /usr/bin/certbot renew --quiet
Acest lucru se va verifica la 2:00 AM dacă există certificate care necesită o reînnoire și le va reînnoi dacă se întâmplă.
Du - te la serverul guacamole (fie http://<ip>/
sau https://rdp.example.com)
).
Pentru acest test, veți avea nevoie de încă două instanțe: una Linux VM și alta Windows Server 2012 R2 cu un IP privat activat pe ambele.
Faceți clic pe " username
" în colțul din dreapta sus și mergeți la " Settings
". Apoi mergeți la " Connections
" și selectați " New Connection
".
Completați următoarele setări (le puteți lăsa pe celelalte implicite).
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>
Apăsați " save
" și reveniți la ecranul de start. Acum puteți face clic pe Windows Server 2012 R2
conexiunea " " și va RDP la acest aparat.
Apăsați " Ctrl+Shift+Alt
". Acest lucru va apărea meniul din lateral. Aici puteți deconecta sau efectua alte sarcini administrative pentru Guacamole.
Faceți clic username
pe butonul din partea de sus a meniului și mergeți la " Settings
". Apoi accesați Connections
fila " " și selectați " New Connection
".
Completați următoarele setări (le puteți lăsa pe celelalte implicite).
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)
Apăsați " save
" și reveniți la ecranul de start. Acum puteți face clic pe această conexiune recent creată și a fi conectat la serverul dvs. Linux prin SSH.
Acum aveți un gateway web RDP / SSH HTML5. Acum puteți firewall accesul public RDP și SSH al platformei dvs. și accesați mediul dvs. din orice browser modern. Pentru mai multe informații despre ce poate oferi Guacamole, există un video excelent care arată toate posibilitățile platformei aici .
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.
Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.
Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.
Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.
CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?
Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.
Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!
Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.
Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe