Utwórz interfejs HTML 5 RDP / SSH za pomocą Guacamole na Ubuntu 16.04 LTS

Wprowadzenie

Celem tego samouczka jest pozbycie się publicznych połączeń SSH i publicznych połączeń RDP. Umieszczając to wszystko za bardzo wygodnym klientem HTML5, możemy dodać warstwę bezpieczeństwa dostępu do naszej chmury.

Guacamole rejestruje również każdy dostęp zdalny, więc nieautoryzowany dostęp staje się znacznie bardziej identyfikowalny.

Uwaga: do szyfrowania Let's (opcja B) potrzebujemy nazwy domeny. Jeśli nie masz, możesz pominąć ten krok i po prostu wykonać opcja A .

Krok 1 - Przygotowanie systemu

Zacznij od podkręcenia VPS w wybranej strefie Vultr. Wystarczy 1024 MBVPS, ponieważ Guacamole nie jest tak wymagający.

Włączanie prywatnego adresu IP

Zacznij od włączenia sieci prywatnej na VPS. Jest to dobrze udokumentowane tutaj

Przygotowywanie zapory ogniowej

Najpierw trochę zahartujmy obraz. Sprawdźmy, czy obraz, który został udostępniony, został ufwwłączony.

root@vultr:~# ufw status
Status: inactive

Domyślnie jest wyłączony, więc będziemy musieli dodać kilka reguł.

  • Reguła 1: ssh: port TCP 22
  • Reguła 2: http: port TCP 8080 (tymczasowa reguła testowania dla Guacamole)

Zacznijmy od skonfigurowania tych portów.

ufw allow 22/tcp
ufw allow 8080/tcp

Następnie włącz zaporę.

ufw enable

Nie martw się, jeśli otrzymasz ostrzeżenie. Jeśli dodasz port 22, nie napotkasz żadnych problemów.

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 włączeniu poproś o status zapory, a my zobaczymy konfigurację naszego 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)

Krok 2 - Instalacja Guacamole

Instalowanie wszystkich zależności

Przed rozpoczęciem instalacji musimy zaktualizować i uaktualnić repozytorium. W przypadku takich pakietów Tomcat, które są oparte na Javie, istnieje ciągły strumień wykrytych błędów i powiązanych z nimi poprawek. Zazwyczaj dobrym pomysłem jest zrobienie tego jako pierwszego zamiast pośpiechu bezpośrednio do naszej instalacji.

apt-get update
apt-get -y upgrade 

Dalej są wszystkie zależności. Guacamole ma ich sporo. (Pełna lista zależności i ich funkcji można znaleźć tutaj ). Kontynuujmy instalację wszystkich.

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

Gdy instalator poprosi o hasło root MySQL, podaj je i pamiętaj o tym. Będziemy używać tego hasła później, aby utworzyć bazę danych Guacamole.

Pobieranie Guacamole

Teraz, gdy mamy już wszystkie nasze zależności, możemy kontynuować pobieranie Guacamole. Sam Guacamole występuje głównie w formie źródłowej, a nie binarnej. Najpierw przejdziemy do /tmpfolderu, aby uniknąć zaśmiecania innych części dysku. Następnie pobierz cały kod źródłowy.

Do pobrania są cztery pliki źródłowe / binarne:

  • guacamole-0.9.13-incubating.war: To jest aplikacja internetowa. WARPlik jest spakowany pakiet internetowy umożliwiający jednej witryny hostowane na stronie Tomcat
  • guacamole-server-0.9.13-incubating.tar.gz: Ten plik zapewni guacdaplikację zaplecza . To tworzy strumienie przez RDP i SSH.
  • guacamole-auth-jdbc-0.9.13-incubating.tar.gz: Będziemy używać lokalnej bazy danych MySQL, więc potrzebujemy powiązanego JDBCkonektora.
  • mysql-connector-java-5.1.43.tar.gz: Bez sterownika bazy danych złącze JDBC nic nie robi. Ten plik jest dostarczany przez sam zespół MySQL.

Uwaga: pobieranie zostało rozwiązane na najbliższym serwerze .

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 pobraniu wszystkich tych plików rozpakuj je 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

Kompilowanie guacamole

Po wyodrębnieniu całego kodu źródłowego, zróbmy kilka guacamolefolderów, które będą używane przez aplikację guacamole i jej zależności.

mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions

Wszystko jest gotowe na nasze nowe pliki binarne Guacamole. Możemy teraz rozpocząć proces kompilacji i instalacji. Przejdź do wyodrębnionego folderu Guacamole Server.

cd /tmp/guacamole-server-0.9.13-incubating

Skonfiguruj aplikację, aby utworzyć init.dplik do późniejszego uruchomienia jako usługa.

./configure --with-init-dir=/etc/init.d

Polecenie powinno kończyć się „tak” we wszystkich bibliotekach i protokołach. Jeśli nie, wróć i sprawdź komendę apt-get, aby upewnić się, że nie przegapiłeś żadnej paczki.

------------------------------------------------
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.

Następnie skompiluj i zainstaluj serwer Gucamole.

make && make install

Po wykonaniu wszystkich czynności uruchom, ldconfigaby odbudować ścieżkę wyszukiwania dla dodanych bibliotek.

ldconfig

Kontynuuj, używając programu systemctlsetup guacd(Guacamole Daemon), aby rozpocząć przy rozruchu.

systemctl enable guacd

Pliki binarne Guacamole są teraz zainstalowane. Teraz przygotujemy aplikację internetową dla Tomcat.

Zacznij od przeniesienia warpliku do guacamolefolderu, który właśnie utworzyliśmy. Po wykonaniu tej czynności utwórz łącze logiczne w katalogu tomcat, aby wskazać nasz warplik.

cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/

Następnie potrzebujemy konektora mysql i JDBC. Sterownik JDBC jest potrzebny w extensionsfolderze, złącze w libfolderze.

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/

Konfigurowanie Guacamole i Tomcat

Gdy łącznik i JDBC są na miejscu, musimy edytować tocamt8plik. Ten plik zawiera wiele tomcat8ustawień, w naszym przypadku musimy dodać GUACAMOLE_HOMEzmienną na końcu pliku.

nano /etc/default/tomcat8

Dołącz z następującymi.

GUACAMOLE_HOME=/etc/guacamole

Tworzenie bazy danych

Następnym krokiem jest utworzenie bazy danych. Guacamole przechowuje konfigurację połączenia w bazie danych, a nie w pliku.

Zaloguj się przy użyciu tego, root passwordktórego użyłeś podczas instalacji.

mysql -u root -p

Pierwszym krokiem jest utworzenie bazy danych o nazwie „guacamole_db”.

create database guacamole_db;

Następnie uruchom create userpolecenie. Spowoduje to utworzenie użytkownika z hasłem mysupersecretpassword, z którego będzie mógł się połączyć localhost.

create user 'guacamole_user'@'localhost' identified by "mysupersecretpassword";

Przyznaj CRUDoperacje temu użytkownikowi dla bazy danych guacamole_db.

GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';

Opróżnij uprawnienia i wyjdź z powłoki.

flush privileges;
exit

Na koniec dodaj schemat Guacamole do naszej nowo utworzonej bazy danych.

cat /tmp/guacamole-auth-jdbc-0.9.13-incubating/mysql/schema/*.sql | mysql -u root -p guacamole_db

Po wykonaniu tej czynności musimy edytować guacamole.propertiesplik. Ten plik zawiera naszą niedawno utworzoną konfigurację serwera MySQL.

nano /etc/guacamole/guacamole.properties

Dołącz szczegóły połączenia MySQL i poświadczenia.

mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: mysupersecretpassword

Zakończ, tworząc symboliczne łącze do folderu udostępniania tomcat, ponieważ w tym miejscu WARplik przeszuka te właściwości.

ln -s /etc/guacamole /usr/share/tomcat8/.guacamole

Testowanie konfiguracji

Zakończ przez zrestartowanie tomcat8serwera i uruchom guacddemona serwera.

service tomcat8 restart
service guacd start

Możesz to sprawdzić za pomocą polecenia status.

service tomcat8 status
service guacd status

Teraz możesz przejść do swojego VPS na porcie 8080

http://<yourpublicip>:8080/guacamole/

Użyj nazwy użytkownika guacadmini tego samego hasła guacadmin. Umożliwi to dostęp do pustego serwera Guacamole.

Kliknij w prawym górnym rogu swoją nazwę użytkownika guacadmini wybierz Settings. Po przejściu na stronę ustawień przejdź do Userskarty i wybierz użytkownika guacadmin.

Teraz zmień hasło na coś innego lub utwórz nowego administratora i usuń domyślne guacadmin.

Krok 3 - Dostrajanie i czyszczenie

Oto ostatnie kroki: sprzątanie po zakończeniu.

Usuń pobrany kod źródłowy i pliki binarne z /tmpfolderu.

rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*

Ustaw także domyślną aplikację internetową Guacamole. W ekosystemie tomcat aplikacja, która pobiera ROOTfolder, jest domyślnie uruchamiana podczas uzyskiwania dostępu do strony internetowej.

Usuń stary ROOTsymbol zastępczy.

rm -rf /var/lib/tomcat8/webapps/ROOT

I stwórz symboliczne łącze dla serwera guacamole ROOT.

ln -s /var/lib/tomcat8/webapps/guacamole /var/lib/tomcat8/webapps/ROOT

Wymaga to ponownego uruchomienia tomcat.

service tomcat8 restart

Krok 4 (opcja A) - działa tylko na HTTP

  • Jeśli nie zamierzasz używać certyfikatów Let's Encrypt i nie korzystasz z DNS, wykonaj czynności w tym kroku, a następnie przejdź bezpośrednio do kroku 6. - Opcja A
  • Jeśli chcesz utworzyć bezpieczniejszą witrynę i masz gotowy DNS, możesz pominąć tę opcję i przejść bezpośrednio do opcji B (krok 5).

Edytuj tomcat8/server.xmlplik i zmień port konektora.

nano /etc/tomcat8/server.xml

Wyszukaj Connector port.

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           redirectPort="8443" />

I wymienić 8080z 80.

Domyślnie tomcat nie pozwala na wiązanie portów poniżej 1024. Aby to włączyć, musimy powiedzieć tomcat8, aby utworzył uwierzytelnione powiązania.

Edytuj defaultplik tomcat8 i odkomentuj AUTHBINDlinię i użyj opcjiyes

nano /etc/default/tomcat8

AUTHBIND=yes

Po wykonaniu tej czynności zainstaluj authbind.

apt-get install authbind

Skonfiguruj go, aby 80tomcat8 mógł przejąć port.

touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80

Zezwól na port 80przez zaporę i usuń regułę dla 8080.

ufw allow 80/tcp
ufw delete allow 8080/tcp

Uruchom ponownie tomcat.

service tomcat8 restart

To wszystko, teraz Guacamole powinien działać na porcie 80.

Krok 5 (opcja B) - Konfiguracja Nginx

Instalacja i konfiguracja Nginx

Tomcat naprawdę nie jest jedną z najlepszych i najbardziej niezawodnych aplikacji do użycia certbot. Na szczęście Nginx jest. Będziemy po prostu proxy tomcat do Nginx. Wykorzystuje gotową funkcjonalność certbota kosztem poświęcenia odrobiny pamięci RAM.

apt-get install nginx

Po zainstalowaniu edytuj domyślną konfigurację.

nano /etc/nginx/sites-available/default

Usuń wszystkie przykładowe konfiguracje i dodaj następującą konfigurację.

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;
  }
}

Spowoduje to utworzenie serwera proxy dla witryny działającej pod adresem 8080. Uruchom ponownie Nginx i włącz go przy rozruchu.

systemctl restart nginx
systemctl enable nginx

Sprawdź, czy wszystko działa.

systemctl status nginx

Wyłącz port testowy 8080i zezwól na ruch na porcie 80.

ufw allow 80/tcp
ufw delete allow 8080/tcp

Instalowanie Let's Encrypt

Zanim zaczniemy korzystać certbot, musimy dodać ppapoprawkę do systemu zawierającego nasze pakiety certbot.

add-apt-repository ppa:certbot/certbot

Naciśnij „ ENTER”, aby zaakceptować zmianę konfiguracji.

Zaktualizuj, aptaby zebrać nowe pakiety.

apt-get update

Na koniec zainstaluj moduł Nginx do przypisywania certyfikatów.

apt-get -y install python-certbot-nginx

Skonfiguruj Nginx, aby używał certyfikatów

Skonfiguruj zaporę ogniową, aby zezwalała HTTPS.

ufw allow 443/tcp

Zanim będziemy mogli poprosić o nowe certyfikaty, potrzebujemy nazwy DNS.

nano /etc/nginx/sites-available/default

Dodaj następujące server_nameustawienie.

server_name rdp.example.com;

Zmień konfigurację, aby odzwierciedlić to nowe ustawienie.

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;
  }
}

Sprawdź, czy wszystko działa i zrestartuj Nginx.

nginx -t
service nginx restart

Poproś o certyfikat za pomocą certbota.

certbot --nginx -d rdp.example.com

Podaj swój adres e-mail i zaakceptuj pytania zadane przez instalatora. (Możesz bezpiecznie wybrać „ No”, aby udostępnić swój e-mail.) Certbot automatycznie zapyta, co musi zrobić HTTPS. Będziemy używać opcji 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

Ostatnią rzeczą, którą będziemy robić, jest aktualizacja DHparametrów. Są one domyślnie nieco słabe jak na standardy 2017 roku.

Utwórz nowe.

openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Następnie dodaj je do domyślnej witryny w Nginx.

nano /etc/nginx/sites-available/default

Dodaj je do konfiguracji serwera.

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;
  }
}

Sprawdź błędy.

nginx -t

Zastosuj zmiany, ponownie uruchamiając serwer.

service nginx restart

Oczyść starą 8080zasadę

ufw delete allow 8080/tcp

Uwaga: jeśli otrzymasz „502 Bad Gateway”, musisz ponownie uruchomić tomcat8 .

service tomcat8 restart

Automatyczne odnawianie certyfikatów

Certyfikaty Let's Encrypt wymagają odnowienia. Możemy w tym celu utworzyć zadanie CRON. Zacznij od edycji crontab.

crontab -e

Dodaj następujący wiersz.

00 2 * * * /usr/bin/certbot renew --quiet

Sprawdzi to o 2:00 rano, czy jakieś certyfikaty wymagają odnowienia i odnowi je, jeśli tak jest.

Krok 6 - Testowanie wszystkiego

Przejdź do swojego serwera Guacamole (albo http://<ip>/albo https://rdp.example.com)).

Do tego testu potrzebne będą dwa kolejne wystąpienia: jedna maszyna wirtualna z systemem Linux i inna Windows Server 2012 R2 z włączonym prywatnym adresem IP na obu.

Dodanie połączenia Windows RDP

Kliknij „ username” w prawym górnym rogu i przejdź do „ Settings”. Następnie przejdź do „ Connections” i wybierz „ New Connection”.

Podaj następujące ustawienia (możesz pozostawić pozostałe domyślne).

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>

Naciśnij „ save” i wróć do ekranu głównego. Teraz możesz kliknąć Windows Server 2012 R2połączenie „ ”, aby uzyskać RDP dla tego komputera.

Dodanie połączenia SSH Linux

Naciśnij „ Ctrl+Shift+Alt”. To wyskoczy menu z boku. Tutaj możesz rozłączyć lub wykonać inne zadania administracyjne dla Guacamole.

Kliknij usernamena górze w menu i przejdź do „ Settings”. Następnie przejdź do Connectionszakładki „ ” i wybierz „ New Connection”.

Podaj następujące ustawienia (możesz pozostawić pozostałe domyślne).

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)

Naciśnij „ save” i wróć do ekranu głównego. Teraz możesz kliknąć to nowo utworzone połączenie i połączyć się z serwerem Linux za pośrednictwem SSH.

Wniosek

Masz teraz bramę internetową RDP / SSH HTML5. Teraz możesz zaporować publiczny dostęp do RDP i SSH na swojej platformie i dostęp do środowiska z dowolnej nowoczesnej przeglądarki. Aby uzyskać więcej informacji na temat tego, co może zaoferować guacamole, jest świetny film pokazujący wszystkie mozliwosci platformy tutaj .



Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.