Създайте HTML 5 RDP/SSH Frontend с помощта на Guacamole на Ubuntu 16.04 LTS

Въведение

Целта на този урок е да се отървете от публичните SSH и публичните RDP връзки. Като поставим всичко това зад много удобен HTML5 клиент, можем да добавим слой сигурност за достъп до нашия облак.

Guacamole също регистрира всеки отдалечен достъп, така че неоторизираният достъп става много по-проследим.

Забележка: За Let's encrypt (опция B) имаме нужда от име на домейн. Ако нямате такъв, можете да пропуснете тази стъпка и просто изпълнява опция А .

Стъпка 1 - Подготовка на системата

Започнете със завъртане на VPS в желаната от вас зона Vultr. А 1024 MBVPS ще бъде достатъчно, тъй като не е Гуакамоле че взискателни.

Активиране на частния IP

Започнете, като активирате частната мрежа на VPS. Това е добре документирано тук

Подготовка на защитната стена

Първо нека втвърдим малко изображението. И нека проверим дали предоставеното изображение е ufwактивирано.

root@vultr:~# ufw status
Status: inactive

По подразбиране е деактивиран, така че ще трябва да добавим няколко правила.

  • Правило 1: ssh: TCP порт 22
  • Правило 2: http: TCP порт 8080 (временно правило за тестване за Guacamole)

Нека започнем с конфигурирането на тези портове.

ufw allow 22/tcp
ufw allow 8080/tcp

След това активирайте защитната стена.

ufw enable

Не се притеснявайте, ако получите предупреждение. Ако добавите порт 22, няма да се сблъскате с никакви проблеми.

root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

След като бъде активирано, поискайте състоянието на защитната стена и ще видим конфигурацията на нашия порт.

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)

Стъпка 2 - Инсталиране на Guacamole

Инсталиране на всички зависимости

Преди да започнем да инсталираме, трябва да актуализираме и надстроим репо. С пакети като Tomcat, който е базиран на Java, има постоянен поток от открити грешки и свързаните с тях корекции на грешки. Обикновено е добра идея да направим това първо, вместо да бързаме директно към нашата инсталация.

apt-get update
apt-get -y upgrade 

Следват всички зависимости. Гуакамоле има доста от тях. (Пълен списък на зависимостите и тяхната функция можете да намерите тук ). Нека продължим, като инсталираме всички тях.

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

Когато инсталаторът поиска root парола за MySQL, предоставете я и не забравяйте да я вземете под внимание. Ще използваме тази парола по-късно, за да създадем базата данни Guacamole.

Изтегляне на Гуакамоле

Сега, когато имаме всичките си зависимости, можем да продължим с изтеглянето на Guacamole. Самото гуакамоле идва предимно в изходна форма, а не в двоичен файл. Първо ще се преместим в /tmpпапката, за да избегнем претрупване на други части на диска. След това изтеглете целия изходен код.

Има четири изходни/двоични файла за изтегляне:

  • guacamole-0.9.13-incubating.war: Това е уеб приложението. А WARфайла е компресиран уеб пакет, който осигурява единен уебсайт се хоства на сайта Tomcat
  • guacamole-server-0.9.13-incubating.tar.gz: Този файл ще предостави бекенд guacdприложението. Това създава потоците през RDP и SSH.
  • guacamole-auth-jdbc-0.9.13-incubating.tar.gz: Ще използваме локална MySQL база данни, така че се нуждаем от свързания JDBCконектор.
  • mysql-connector-java-5.1.43.tar.gz: Без драйвер за база данни JDBC конекторът не прави нищо. Този файл е предоставен от самия екип на MySQL.

Забележка: изтеглянията са разрешени до най-близкия сървър .

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

След като изтеглим всички тези файлове, извлечете 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

Съставяне на гуакамоле

След като извлечехме целия изходен код, нека направим няколко guacamoleпапки, които ще бъдат използвани от приложението guacamole и неговите зависимости.

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

Всичко е готово за нашите нови бинарни файлове Guacamole. Сега можем да започнем процеса на компилация и инсталиране. Преминете към извлечената папка на Guacamole Server.

cd /tmp/guacamole-server-0.9.13-incubating

Конфигурирайте приложението също така да създаде init.dфайл за стартиране като услуга по-късно.

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

Командата трябва да завършва с „да“ за всички библиотеки и протоколи. Ако не, върнете се и проверете командата apt-get, за да се уверите, че не сте пропуснали нито един пакет.

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

След това компилирайте и инсталирайте сървъра Gucamole.

make && make install

След като всичко това е направено, стартирайте, за ldconfigда изградите отново пътя за търсене за добавени библиотеки.

ldconfig

Продължете, като използвате systemctlto setup guacd(Guacamole Daemon), за да стартирате при стартиране.

systemctl enable guacd

Бинарните файлове на Guacamole вече са инсталирани. Сега ще подготвим уеб приложението за Tomcat.

Започнете с преместване на warфайла в guacamoleпапката, която току-що създадохме, след като това стане, създайте логическа връзка в директорията tomcat, която да сочи към нашия warфайл.

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

След това се нуждаем от mysql конектора и JDBC. Драйверът JDBC е необходим в extensionsпапката, конекторът в libпапката.

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/

Конфигуриране на Guacamole и Tomcat

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

Creating the database

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

Testing the setup

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.

Step 3 - Fine tuning and cleanup

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

Step 4 (option A) - Running on HTTP only

  • If you are not going to use Let's Encrypt certificates and not use a DNS, execute the actions in this step and afterwards go directly to Step 6. - Option A
  • If you want to create a more secure site and you have a DNS ready, you can skip this and go straight to option B (Step 5).

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.

Step 5 (option B) - Setting up Nginx

Installation and configuration of Nginx

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

Installing Let's Encrypt

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 Nginx to use certificates

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

Предоставете своя имейл и се съгласете с въпросите, зададени от инсталатора. (Можете спокойно да изберете " No" за споделяне на вашия имейл.) Certbot автоматично ще попита какво трябва да прави с HTTPS. Ще използваме вариант 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

Последното нещо, което ще направим, е да актуализираме DHпараметрите. Те по подразбиране са малко слаби за стандартите за 2017 г.

Създайте няколко нови.

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

След това ги добавете към сайта по подразбиране в Nginx.

nano /etc/nginx/sites-available/default

Добавете ги към конфигурацията на сървъра.

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

Проверете за грешки.

nginx -t

Приложете промените, като рестартирате сървъра.

service nginx restart

Почистете старото 8080правило

ufw delete allow 8080/tcp

Забележка: ако трябва да получите "502 Bad Gateway", ще трябва да рестартирате tomcat8 .

service tomcat8 restart

Автоматично подновяване на сертификати

Сертификатите Let's Encrypt изискват подновяване. Можем да създадем cron работа за това. Започнете с редактиране на crontab.

crontab -e

Добавете следния ред.

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

Това ще провери в 2:00 часа сутринта дали сертификатите изискват подновяване и ще ги поднови, ако го направят.

Стъпка 6 - Тестване на всичко

Отидете на вашия сървър Guacamole ( http://<ip>/или https://rdp.example.com)).

За този тест ще ви трябват още два екземпляра: една Linux VM и друга Windows Server 2012 R2 с активиран частен IP и на двете.

Добавяне на Windows RDP връзка

Щракнете върху " username" в горния десен ъгъл и отидете на " Settings". След това отидете на " Connections" и изберете " New Connection".

Попълнете следните настройки (можете да оставите другите по подразбиране).

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>

Натиснете " save" и се върнете към началния екран. Сега можете да щракнете върху връзката " Windows Server 2012 R2" и тя ще RDP към тази машина.

Добавяне на Linux SSH връзка

Натиснете " Ctrl+Shift+Alt". Това ще изскочи менюто отстрани. Тук можете да прекъснете връзката или да изпълнявате други административни задачи за Guacamole.

Щракнете usernameвърху горната част на менюто и отидете на " Settings". След това отидете на раздела " Connections" и изберете " New Connection".

Попълнете следните настройки (можете да оставите другите по подразбиране).

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)

Натиснете " save" и се върнете към началния екран. Сега можете да щракнете върху тази новосъздадена връзка и да бъдете свързани към вашия Linux сървър чрез SSH.

Заключение

Вече имате уеб RDP/SSH HTML5 шлюз. Сега можете да защитите стената на публичния RDP и SSH достъп на вашата платформа и да получите достъп до вашата среда от всеки модерен браузър. За повече информация за това, което може да предложи Гуакамоле, има голяма видеоклип, показващ всички possiblities на платформата тук .


Инсталирайте Lets Encrypt SSL в приложението WordPress с едно щракване

Инсталирайте Lets Encrypt SSL в приложението WordPress с едно щракване

Въведение Lets Encrypt е услуга на сертифициращ орган, която предлага безплатни TLS/SSL сертификати. Процесът на инсталиране е опростен от Certbot,

Как да настроите надстройки без надзор на Debian 9 (разтягане)

Как да настроите надстройки без надзор на Debian 9 (разтягане)

Използване на различна система? Ако закупите сървър на Debian, винаги трябва да имате най-новите корекции за сигурност и актуализации, независимо дали спите или не

Как да инсталирате и конфигурирате PHP 7.0 или PHP 7.1 на Ubuntu 16.04

Как да инсталирате и конфигурирате PHP 7.0 или PHP 7.1 на Ubuntu 16.04

PHP и свързаните с него пакети са най-често използваните компоненти при разгръщане на уеб сървър. В тази статия ще научим как да настроим PHP 7.0 или PHP 7.1 o

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Три безплатни контролни панела на сървъра (бърза инсталация)

Три безплатни контролни панела на сървъра (бърза инсталация)

1. Virtualmin/Webmin Virtualmin е мощен и гъвкав контролен панел за уеб хостинг за Linux и UNIX системи, базиран на добре познатата уеб база с отворен код

Настройване на приложение Yii на Ubuntu 14.04

Настройване на приложение Yii на Ubuntu 14.04

Yii е PHP рамка, която ви позволява да разработвате приложения по-бързо и лесно. Инсталирането на Yii в Ubuntu е лесно, както ще научите точно l

Настройте свой собствен DNS сървър на Debian/Ubuntu

Настройте свой собствен DNS сървър на Debian/Ubuntu

Този урок обяснява как да настроите DNS сървър с помощта на Bind9 на Debian или Ubuntu. В цялата статия заменете your-domain-name.com съответно. При th

Използване на Logrotate за управление на регистрационни файлове

Използване на Logrotate за управление на регистрационни файлове

Въведение Logrotate е помощна програма за Linux, която опростява администрирането на лог файлове. Обикновено се изпълнява веднъж на ден чрез cron задание и управлява базата от регистрационни файлове

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Настройте Red5 Media Server на Ubuntu 16.04

Настройте Red5 Media Server на Ubuntu 16.04

Използване на различна система? Red5 е медиен сървър с отворен код, внедрен в Java, който ви позволява да стартирате Flash многопотребителски приложения, като например предаване на живо

Компилирайте и инсталирайте Nginx с модула PageSpeed ​​на Debian 8

Компилирайте и инсталирайте Nginx с модула PageSpeed ​​на Debian 8

В тази статия ще видим как да компилирате и инсталирате основната линия на Nginx от официалните източници на Nginx с модула PageSpeed, който ви позволява да

Как да инсталирате Apache Cassandra 3.11.x на Ubuntu 16.04 LTS

Как да инсталирате Apache Cassandra 3.11.x на Ubuntu 16.04 LTS

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Vanilla Forum на Ubuntu 16.04

Как да инсталирате Vanilla Forum на Ubuntu 16.04

Използване на различна система? Vanilla forum е приложение за форум с отворен код, написано на PHP. Той е напълно адаптивен, лесен за използване и поддържа външен

Как да инсталирате Kanboard на Ubuntu 18.04 LTS

Как да инсталирате Kanboard на Ubuntu 18.04 LTS

Използване на различна система? Въведение Kanboard е безплатна програма за управление на проекти с отворен код, която е предназначена да улеснява и визуализира

Как да инсталирате Kanboard на Debian 9

Как да инсталирате Kanboard на Debian 9

Използване на различна система? Въведение Kanboard е безплатна програма за управление на проекти с отворен код, която е предназначена да улеснява и визуализира

Как да инсталирате Gitea на Debian 9

Как да инсталирате Gitea на Debian 9

Използване на различна система? Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от Git. Gitea е написана на Голанг и е

Как да инсталирате Gitea на Ubuntu 18.04

Как да инсталирате Gitea на Ubuntu 18.04

Използване на различна система? Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от git. Gitea е написана на Голанг и е

Инсталирайте Lynis на Debian 8

Инсталирайте Lynis на Debian 8

Въведение Lynis е безплатен инструмент за одит на системата с отворен код, който се използва от много системни администратори за проверка на целостта и заздравяване на техните системи. аз

Как да инсталирате Thelia 2.3 на Debian 9

Как да инсталирате Thelia 2.3 на Debian 9

Използване на различна система? Thelia е инструмент с отворен код за създаване на уебсайтове за е-бизнес и управление на онлайн съдържание, написано на PHP. Изходен код на Thelia i

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече