Krijo një frontend HTML 5 RDP/SSH duke përdorur Guacamole në Ubuntu 16.04 LTS

Prezantimi

Qëllimi i këtij tutoriali është të heqë qafe lidhjet publike SSH dhe RDP publike. Duke e vendosur të gjithë këtë pas një klienti shumë të përshtatshëm HTML5, ne mund të shtojmë një shtresë sigurie për të hyrë në renë tonë.

Guacamole gjithashtu regjistron çdo akses në distancë, kështu që aksesi i paautorizuar bëhet shumë më i gjurmueshëm.

Shënim: Për Let's encrypt (opsioni B) na duhet një emër domain. Nëse ju nuk keni një të tillë, ju mund të kaloni këtë hap dhe vetëm ekzekutuar opsion A .

Hapi 1 - Përgatitja e sistemit

Filloni duke rrotulluar një VPS në zonën tuaj të dëshiruar Vultr. Një 1024 MBVPS do të jetë e mjaftueshme, pasi Guacamole nuk është aq kërkues.

Aktivizimi i IP-së private

Filloni duke aktivizuar rrjetin privat në VPS. Kjo është e dokumentuar mirë këtu

Përgatitja e murit të zjarrit

Së pari, le ta forcojmë pak imazhin. Dhe le të kontrollojmë nëse imazhi që është dhënë është ufwaktivizuar.

root@vultr:~# ufw status
Status: inactive

Si parazgjedhje është i çaktivizuar, kështu që do të na duhet të shtojmë disa rregulla.

  • Rregulli 1: ssh: porta TCP 22
  • Rregulli 2: http: porta TCP 8080 (rregulli i përkohshëm i testimit për Guacamole)

Le të fillojmë me konfigurimin e këtyre porteve.

ufw allow 22/tcp
ufw allow 8080/tcp

Më pas aktivizoni murin e zjarrit.

ufw enable

Mos u shqetësoni nëse merrni një paralajmërim. Nëse keni shtuar portin 22, nuk do të përballeni me asnjë problem.

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

Pasi të aktivizohet, kërkoni statusin e murit të zjarrit dhe ne do të shohim konfigurimin e portit tonë.

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)

Hapi 2 - Instalimi i Guacamole

Instalimi i të gjitha varësive

Para se të fillojmë instalimin, duhet të përditësojmë dhe përmirësojmë depon. Me paketa të tilla si Tomcat, e cila është e bazuar në Java, ekziston një rrjedhë e vazhdueshme e gabimeve të zbuluara dhe korrigjimeve të tyre të lidhura me të metat. Zakonisht është një ide e mirë ta bëni këtë fillimisht në vend që të nxitoni direkt në instalimin tonë.

apt-get update
apt-get -y upgrade 

Tjetra janë të gjitha varësitë. Guacamole ka mjaft prej tyre. (Një listë e plotë e varësive dhe funksioni i tyre mund të gjendet këtu ). Le të vazhdojmë duke i instaluar të gjitha.

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

Kur instaluesi kërkon një fjalëkalim rrënjësor MySQL, jepni një dhe sigurohuni që ta mbani shënim. Ne do ta përdorim këtë fjalëkalim më vonë për të krijuar bazën e të dhënave Guacamole.

Duke shkarkuar Guacamole

Tani që kemi të gjitha varësitë tona, mund të vazhdojmë me shkarkimin e Guacamole. Vetë Guacamole vjen kryesisht në një formë burimi, dhe jo një binare. Fillimisht do të kalojmë në /tmpdosje për të shmangur rrëmujën e pjesëve të tjera të diskut. Pastaj shkarkoni të gjithë kodin burimor.

Ekzistojnë katër skedarë burimi/binarë për t'u shkarkuar:

  • guacamole-0.9.13-incubating.war: Ky është aplikacioni në internet. Një WARskedar është një paketë në internet e mbyllur që ofron një uebsajt të vetëm të vendosur në një uebsajt të Tomcat
  • guacamole-server-0.9.13-incubating.tar.gz: Ky skedar do të sigurojë guacdaplikacionin mbështetës . Kjo krijon transmetimet përmes RDP dhe SSH.
  • guacamole-auth-jdbc-0.9.13-incubating.tar.gz: Ne do të përdorim një bazë të dhënash lokale MySQL, kështu që na duhet JDBClidhësi përkatës.
  • mysql-connector-java-5.1.43.tar.gz: Pa një drejtues të bazës së të dhënave, lidhësi JDBC nuk bën asgjë. Ky skedar ofrohet nga vetë ekipi i MySQL.

Shënim: shkarkimet u zgjidhën në serverin më të afërt .

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

Pasi të kemi shkarkuar të gjithë këta skedarë, nxirrni 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

Përpilimi i Guacamole

Tani që kemi nxjerrë të gjithë kodin burimor, le të bëjmë disa guacamoledosje, këto do të përdoren nga aplikacioni guacamole dhe varësitë e tij.

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

Gjithçka është gati për binarët tanë të rinj Guacamole. Tani mund të fillojmë procesin e përpilimit dhe instalimit. Kaloni te dosja e nxjerrë Server Guacamole.

cd /tmp/guacamole-server-0.9.13-incubating

Konfiguro aplikacionin që të krijojë gjithashtu një init.dskedar për ekzekutimin e tij si shërbim më vonë.

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

Komanda duhet të përfundojë me një 'po' në të gjitha bibliotekat dhe protokollet. Nëse jo, kthehuni dhe kontrolloni komandën apt-get për t'u siguruar që nuk keni humbur asnjë paketë.

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

Më pas përpiloni dhe instaloni serverin Gucamole.

make && make install

Pasi të keni përfunduar të gjitha, drejtojeni ldconfigpër të rindërtuar shtegun e kërkimit për bibliotekat që janë shtuar.

ldconfig

Vazhdoni duke përdorur systemctlpër të konfiguruar guacd(Guacamole Daemon) për të filluar në nisje.

systemctl enable guacd

Binarët Guacamole tani janë instaluar. Tani do ta bëjmë gati aplikacionin ueb për Tomcat.

Filloni duke e zhvendosur warskedarin në guacamoledosjen që sapo krijuam, pasi kjo të kryhet, krijoni një lidhje logjike në drejtorinë tomcat për të treguar warskedarin tonë .

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

Atëherë na duhet lidhësi mysql dhe JDBC. Drejtuesi JDBC nevojitet në extensionsdosje, lidhësi në libdosje.

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/

Konfigurimi i Guacamole dhe 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

Jepni emailin tuaj dhe pranoni pyetjet e bëra nga instaluesi. (Mund të zgjidhni me siguri " No" për të ndarë emailin tuaj.) Certbot automatikisht do të pyesë se çfarë duhet të bëjë me HTTPS. Ne do të përdorim opsionin 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

Gjëja e fundit që do të bëjmë është përditësimi i DHparametrave. Këto janë, si parazgjedhje, paksa të dobëta për standardet e 2017-ës.

Krijo disa të reja.

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

Më pas, shtoni ato në sitin e paracaktuar në Nginx.

nano /etc/nginx/sites-available/default

Shtojini ato në konfigurimin e serverit.

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

Kontrolloni për gabime.

nginx -t

Aplikoni ndryshimet duke rifilluar serverin.

service nginx restart

Pastroni 8080rregullin e vjetër

ufw delete allow 8080/tcp

Shënim: nëse duhet të merrni një "502 Bad Gateway", do t'ju duhet rinisni tomcat8 .

service tomcat8 restart

Rinovoni automatikisht certifikatat

Le të Enkriptojmë certifikatat kërkojnë rinovim. Ne mund të krijojmë një punë të mirë për këtë. Filloni duke redaktuar crontab.

crontab -e

Shtoni rreshtin e mëposhtëm.

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

Kjo do të kontrollojë në orën 2:00 të mëngjesit nëse ndonjë certifikatë kërkon rinovim dhe do t'i rinovojë ato nëse e bëjnë këtë.

Hapi 6 - Testimi i të gjitha

Shkoni te serveri juaj Guacamole (ose http://<ip>/ose https://rdp.example.com)).

Për këtë test, do t'ju duhen edhe dy shembuj të tjerë: një Linux VM dhe një tjetër Windows Server 2012 R2 me një IP private të aktivizuar në të dyja.

Shtimi i lidhjes RDP të Windows

Klikoni " username" në këndin e sipërm djathtas dhe shkoni te " Settings". Më pas shkoni te " Connections" dhe zgjidhni " New Connection".

Plotësoni cilësimet e mëposhtme (mund t'i lini të tjerët si parazgjedhje).

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>

Shtypni " save" dhe kthehuni në ekranin bazë. Tani mund të klikoni në Windows Server 2012 R2lidhjen " " dhe ajo do të RDP në këtë makinë.

Shtimi i lidhjes Linux SSH

Shtypni " Ctrl+Shift+Alt". Kjo do të dalë nga menyja në anën. Këtu mund të shkëputeni ose të kryeni detyra të tjera administrative për Guacamole.

Klikoni usernamenë krye në menu dhe shkoni te " Settings". Më pas shkoni te Connectionsskeda " " dhe zgjidhni " New Connection".

Plotësoni cilësimet e mëposhtme (mund t'i lini të tjerët si parazgjedhje).

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)

Shtypni " save" dhe kthehuni në ekranin bazë. Tani mund të klikoni këtë lidhje të krijuar rishtazi dhe të lidheni me serverin tuaj Linux nëpërmjet SSH.

konkluzioni

Tani keni një portë RDP/SSH HTML5 në internet. Tani ju mund të izoloni aksesin publik RDP dhe SSH të platformës suaj dhe të përdorni mjedisin tuaj nga çdo shfletues modern. Për më shumë informacion mbi atë që mund të ofrojë Guacamole, ekziston një video e mrekullueshme që tregon të gjitha mundësitë e platformës këtu .


Si të konfiguroni një server Tekkit Classic në Ubuntu 16.10

Si të konfiguroni një server Tekkit Classic në Ubuntu 16.10

Përdorimi i një sistemi të ndryshëm? Çfarë është Tekkit Classic? Tekkit Classic është një modpack për lojën që të gjithë e njohin dhe e duan; Minecraft. Ai përmban disa nga ver

Krijimi i një Blog Jekyll në Ubuntu 16.04

Krijimi i një Blog Jekyll në Ubuntu 16.04

Përdorimi i një sistemi të ndryshëm? Jekyll është një alternativë e shkëlqyeshme për WordPress për blogimin ose ndarjen e përmbajtjes. Nuk kërkon ndonjë bazë të dhënash dhe është shumë e lehtë i

Si të konfiguroni përmirësimet e pambikëqyrura në Debian 9 (Stretch)

Si të konfiguroni përmirësimet e pambikëqyrura në Debian 9 (Stretch)

Përdorimi i një sistemi të ndryshëm? Nëse blini një server Debian, atëherë duhet të keni gjithmonë arnimet dhe përditësimet më të fundit të sigurisë, pavarësisht nëse jeni në gjumë apo jo

Si të instaloni Squid Proxy në CentOS

Si të instaloni Squid Proxy në CentOS

Squid është një program i popullarizuar, falas Linux që ju lejon të krijoni një përfaqësues në ueb përcjellës. Në këtë udhëzues, do të shihni se si të instaloni Squid në CentOS për t'ju kthyer

Konfiguro serverin e mediave Red5 në Ubuntu 16.04

Konfiguro serverin e mediave Red5 në Ubuntu 16.04

Përdorimi i një sistemi të ndryshëm? Red5 është një server mediash me burim të hapur i implementuar në Java që ju lejon të ekzekutoni aplikacione Flash me shumë përdorues si transmetimi i drejtpërdrejtë

Si të instaloni Apache Cassandra 3.11.x në Ubuntu 16.04 LTS

Si të instaloni Apache Cassandra 3.11.x në Ubuntu 16.04 LTS

Përdorimi i një sistemi të ndryshëm? Apache Cassandra është një sistem i menaxhimit të bazës së të dhënave NoSQL falas dhe me burim të hapur që është krijuar për të ofruar shkallëzim, të lartë

Si të instaloni Apache Cassandra 3.11.x në CentOS 7

Si të instaloni Apache Cassandra 3.11.x në CentOS 7

Përdorimi i një sistemi të ndryshëm? Apache Cassandra është një sistem i menaxhimit të bazës së të dhënave NoSQL falas dhe me burim të hapur që është krijuar për të ofruar shkallëzim, të lartë

Si të instaloni Forumin Vanilla në Ubuntu 16.04

Si të instaloni Forumin Vanilla në Ubuntu 16.04

Përdorimi i një sistemi të ndryshëm? Forumi Vanilla është një aplikacion forumi me burim të hapur i shkruar në PHP. Është plotësisht i personalizueshëm, i lehtë për t'u përdorur dhe mbështet jashtëm

Si të instaloni Kanboard në Ubuntu 18.04 LTS

Si të instaloni Kanboard në Ubuntu 18.04 LTS

Përdorimi i një sistemi të ndryshëm? Hyrje Kanboard është një program softuerik për menaxhimin e projekteve me burim të lirë dhe me burim të hapur, i cili është krijuar për të lehtësuar dhe vizualizuar

Si të instaloni Kanboard në Debian 9

Si të instaloni Kanboard në Debian 9

Përdorimi i një sistemi të ndryshëm? Hyrje Kanboard është një program softuerik për menaxhimin e projekteve me burim të lirë dhe me burim të hapur, i cili është krijuar për të lehtësuar dhe vizualizuar

Instaloni Lynis në Debian 8

Instaloni Lynis në Debian 8

Hyrje Lynis është një mjet falas, me burim të hapur të auditimit të sistemit, që përdoret nga shumë administratorë të sistemit për të verifikuar integritetin dhe për të forcuar sistemet e tyre. Unë

Si të instaloni Thelia 2.3 në Debian 9

Si të instaloni Thelia 2.3 në Debian 9

Përdorimi i një sistemi të ndryshëm? Thelia është një mjet me burim të hapur për krijimin e faqeve të internetit të e-biznesit dhe menaxhimin e përmbajtjes në internet të shkruar në PHP. Kodi burimor Thelia i

Si të instaloni Microweber në CentOS 7

Si të instaloni Microweber në CentOS 7

Përdorimi i një sistemi të ndryshëm? Microweber është një CMS me burim të hapur drag and drop dhe dyqan online. Kodi burimor Microweber është pritur në GitHub. Ky udhëzues do t'ju tregojë

Si të instaloni MODX Revolution në një Ubuntu 16.04 LAMP VPS

Si të instaloni MODX Revolution në një Ubuntu 16.04 LAMP VPS

Përdorimi i një sistemi të ndryshëm? MODX Revolution është një Sistem i Menaxhimit të Përmbajtjes (CMS) i shpejtë, fleksibël, i shkallëzuar, i lirë dhe me burim të hapur, i shkallës së ndërmarrjes.

Si të instaloni Mattermost 4.1 në CentOS 7

Si të instaloni Mattermost 4.1 në CentOS 7

Përdorimi i një sistemi të ndryshëm? Mattermost është një alternativë me burim të hapur, të vetë-strehuar për shërbimin e mesazheve Slack SAAS. Me fjalë të tjera, me Mattermost, ju rreth

Si të instaloni dotCMS në Ubuntu 16.04

Si të instaloni dotCMS në Ubuntu 16.04

Përdorimi i një sistemi të ndryshëm? DotCMS është një sistem menaxhimi i përmbajtjes me burim të hapur, të nivelit të ndërmarrjes, i shkruar në Java. Ai përmban pothuajse çdo veçori të kërkuar

Si të instaloni BigTree CMS në një Fedora 26 LAMP VPS

Si të instaloni BigTree CMS në një Fedora 26 LAMP VPS

Përdorimi i një sistemi të ndryshëm? BigTree CMS 4.2 është një sistem i shpejtë dhe i lehtë, pa pagesë dhe me burim të hapur, sistem i menaxhimit të përmbajtjes së nivelit të ndërmarrjes (CMS) me një

Le të enkriptojmë në Plesk

Le të enkriptojmë në Plesk

Paneli i kontrollit Plesk përmban një integrim shumë të bukur për Lets Encrypt. Lets Encrypt është një nga ofruesit e vetëm SSL që jep plotësisht certifikata

Lejon enkriptimin në cPanel

Lejon enkriptimin në cPanel

Lets Encrypt është një autoritet certifikimi i dedikuar për të ofruar certifikata SSL pa pagesë. cPanel ka ndërtuar një integrim të pastër në mënyrë që ju dhe klienti juaj

Instaloni Adminer në Debian/Ubuntu

Instaloni Adminer në Debian/Ubuntu

Adminer është një alternativë e lehtë për phpMyAdmin. Në krahasim, madhësia totale e paketës së saj është 400 KB, kundrejt 4.2 MB të phpMyAdmin. Ndryshe nga phpMyAdmin, e cila

Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë