Namestite Plesk na CentOS 7
Uporaba drugega sistema? Plesk je lastniška nadzorna plošča spletnega gostitelja, ki uporabnikom omogoča upravljanje svojih osebnih in/ali strank spletnih mest, baz podatkov
Cilj te vadnice je, da se znebite javnih povezav SSH in javnih RDP. Če vse to postavimo za zelo priročnega odjemalca HTML5, lahko dodamo plast varnosti za dostop do našega oblaka.
Guacamole beleži tudi vsak oddaljeni dostop, tako da postane nepooblaščen dostop veliko bolj sledljiv.
Opomba: Za Let's encrypt (možnost B) potrebujemo ime domene. Če nimate, lahko preskočite ta korak in samo izvedbo možnost A .
Začnite z vrtenjem VPS v želenem območju Vultr. 1024 MB
VPS bo dovolj, saj je Guacamole ni tako zahtevna.
Začnite tako, da omogočite zasebno omrežje na VPS. To je tukaj dobro dokumentirano
Najprej malo utrdimo sliko. In preverimo, ali je ufw
omogočena slika, ki je bila omogočena.
root@vultr:~# ufw status
Status: inactive
Privzeto je onemogočen, zato bomo morali dodati nekaj pravil.
Začnimo s konfiguracijo teh vrat.
ufw allow 22/tcp
ufw allow 8080/tcp
Nato omogočite požarni zid.
ufw enable
Ne skrbite, če prejmete opozorilo. Če ste dodali vrata 22
, ne boste imeli težav.
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Ko je omogočeno, zahtevajte stanje požarnega zidu in videli bomo konfiguracijo naših vrat.
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)
Preden začnemo nameščati, moramo repo posodobiti in nadgraditi. Pri paketih, kot je Tomcat
, ki temelji na Javi, obstaja stalen tok odkritih napak in z njimi povezanih popravkov napak. Običajno je dobro, da to storimo najprej, namesto da hitimo neposredno v našo namestitev.
apt-get update
apt-get -y upgrade
Naslednje so vse odvisnosti. Guacamole jih ima kar nekaj. (Celoten seznam odvisnosti in njihove funkcije najdete tukaj ). Nadaljujmo z namestitvijo vseh.
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
Ko namestitveni program zahteva korensko geslo MySQL, ga navedite in se prepričajte, da ste ga zabeležili. To geslo bomo kasneje uporabili za ustvarjanje baze podatkov Guacamole.
Zdaj, ko imamo vse naše odvisnosti, lahko nadaljujemo s prenosom Guacamole. Guacamole sam je večinoma v izvorni obliki in ne v binarni obliki. Najprej se bomo premaknili v /tmp
mapo, da se izognemo neredu drugih delov diska. Nato prenesite vso izvorno kodo.
Obstajajo štiri izvorne/binarne datoteke za prenos:
guacamole-0.9.13-incubating.war
: To je spletna aplikacija. WAR
Datoteka je stisnjena spletna paket zagotavlja enotno spletno stran gostuje na spletni strani Tomcatguacamole-server-0.9.13-incubating.tar.gz
: Ta datoteka bo zagotovila zaledno guacd
aplikacijo. To ustvarja tokove prek RDP in SSH.guacamole-auth-jdbc-0.9.13-incubating.tar.gz
: Uporabljali bomo lokalno bazo podatkov MySQL, zato potrebujemo povezani JDBC
konektor.mysql-connector-java-5.1.43.tar.gz
: Brez gonilnika baze podatkov konektor JDBC ne naredi ničesar. To datoteko je zagotovila ekipa MySQL sama.Opomba: prenosi so razrešeni na najbližji strežnik .
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
Ko prenesemo vse te datoteke, izvlecite 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
Zdaj, ko smo ekstrahirali vso izvorno kodo, naredimo nekaj guacamole
map, ki jih bo uporabljala aplikacija guacamole in njene odvisnosti.
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
Vse je pripravljeno za naše nove binarne Guacamole. Zdaj lahko začnemo s postopkom sestavljanja in namestitve. Premaknite se na ekstrahirano mapo strežnika Guacamole.
cd /tmp/guacamole-server-0.9.13-incubating
Konfigurirajte aplikacijo, da ustvari tudi init.d
datoteko za kasnejše izvajanje kot storitev.
./configure --with-init-dir=/etc/init.d
Ukaz se mora končati z "da" v vseh knjižnicah in protokolih. Če ne, se vrnite in preverite ukaz apt-get, da se prepričate, da niste zamudili nobenega paketa.
------------------------------------------------
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.
Nato prevedite in namestite strežnik Gucamole.
make && make install
Ko je to vse opravljeno, zaženite ldconfig
znova zgraditi pot iskanja za knjižnice, ki so bile dodane.
ldconfig
Nadaljujte z uporabo systemctl
za nastavitev guacd
(Guacamole Daemon), da zaženete ob zagonu.
systemctl enable guacd
Binarne datoteke Guacamole so zdaj nameščene. Zdaj bomo pripravili spletno aplikacijo za Tomcat.
Začnite tako, da premaknete war
datoteko v guacamole
mapo, ki smo jo pravkar ustvarili, ko je to končano, ustvarite logično povezavo v imeniku tomcat, ki kaže na našo war
datoteko.
cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
Potem potrebujemo konektor mysql in JDBC. Gonilnik JDBC je potreben v extensions
mapi, konektor v lib
mapi.
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/
Ko sta konektor in JDBC na mestu, moramo urediti tocamt8
datoteko. Ta datoteka vsebuje veliko tomcat8
nastavitev, v našem primeru pa moramo GUACAMOLE_HOME
spremenljivko dodati na konec datoteke.
nano /etc/default/tomcat8
Priložite z naslednjim.
GUACAMOLE_HOME=/etc/guacamole
Naslednji korak je izdelava baze podatkov. Guacamole shrani svojo konfiguracijo povezave v bazo podatkov, ne v datoteko.
Prijavite se z imenom, ki root password
ste ga uporabili med namestitvijo.
mysql -u root -p
Prvi korak je ustvariti bazo podatkov, imenovano 'guacamole_db'.
create database guacamole_db;
Nato zaženite create user
ukaz. To bo ustvarilo uporabnika z geslom mysupersecretpassword
, ta uporabnik se bo lahko povezal samo iz localhost
.
create user 'guacamole_user'@'localhost' identified by "mysupersecretpassword";
Dodeli CRUD
operacije temu uporabniku za bazo podatkov guacamole_db
.
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
Izbrišite privilegije in zapustite lupino.
flush privileges;
exit
Zaključite tako, da v našo novo ustvarjeno bazo podatkov dodate shemo Guacamole.
cat /tmp/guacamole-auth-jdbc-0.9.13-incubating/mysql/schema/*.sql | mysql -u root -p guacamole_db
Ko je to storjeno, moramo guacamole.properties
datoteko urediti . Ta datoteka vsebuje našo nedavno ustvarjeno konfiguracijo strežnika MySQL.
nano /etc/guacamole/guacamole.properties
Dodajte podrobnosti o povezavi MySQL in poverilnice.
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: mysupersecretpassword
Zaključite tako, da ustvarite simbolično povezavo do mape za skupno rabo tomcat, saj bo tu WAR
datoteka iskala te lastnosti.
ln -s /etc/guacamole /usr/share/tomcat8/.guacamole
Končajte tako, da znova zaženete tomcat8
strežnik in zaženete guacd
demon strežnika.
service tomcat8 restart
service guacd start
To lahko preverite z ukazom status.
service tomcat8 status
service guacd status
Zdaj lahko brskate do vašega VPS na vratih 8080
http://<yourpublicip>:8080/guacamole/
Uporabite uporabniško ime guacadmin
in isto geslo guacadmin
. To vam bo omogočilo dostop do praznega strežnika Guacamole.
Click in the top right corner on your username guacadmin
and select Settings
. Once you are in the settings page go to the Users
tab and select the user guacadmin
.
Now change your password to something else or create a new admin user and delete the default guacadmin
one.
These are the final steps: cleaning up after you are done.
Delete the downloaded source code and binaries from the /tmp
folder.
rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*
Also, make the Guacamole web application the default one. In the tomcat ecosystem the application that gets the ROOT
folder is the one that is started by default when you access the website.
Delete the old ROOT
placeholder.
rm -rf /var/lib/tomcat8/webapps/ROOT
And make a symbolic link for the guacamole server to be the ROOT
one.
ln -s /var/lib/tomcat8/webapps/guacamole /var/lib/tomcat8/webapps/ROOT
This requires a tomcat restart.
service tomcat8 restart
Edit the tomcat8/server.xml
file and change the connector port.
nano /etc/tomcat8/server.xml
Search for the Connector port
.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
And replace 8080
with 80
.
By default, tomcat doesn't allow the binding of ports below 1024
. To enable this we need to tell tomcat8 to create authenticated binds.
Edit the default
file of tomcat8 and uncomment the AUTHBIND
line and use the option yes
nano /etc/default/tomcat8
AUTHBIND=yes
Once this is done, intall authbind
.
apt-get install authbind
Configure it so that port 80
can be claimed by tomcat8.
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80
Allow port 80
through the firewall and delete the rule for 8080
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Restart tomcat.
service tomcat8 restart
That's it, now Guacamole should be running on port 80
.
Tomcat really isn't one of the best and most robust applications to use with certbot
. Luckily Nginx is. We will just to proxy tomcat to Nginx. It uses the out-of-the-box functionality of certbot at the cost of sacrificing a little bit of RAM.
apt-get install nginx
Once installed, edit the default configuration.
nano /etc/nginx/sites-available/default
Delete all example configurations and add the following configuration.
server {
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
This will create a proxy for the website running at 8080
. Restart Nginx, and enable it at boot.
systemctl restart nginx
systemctl enable nginx
Check if everything is working.
systemctl status nginx
Onemogočite testna vrata 8080
in dovolite promet na vratih 80
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Preden lahko uporabimo certbot
, moramo dodati pravilno ppa
v sistem, ki vsebuje naše pakete certbot.
add-apt-repository ppa:certbot/certbot
Pritisnite " ENTER
", da sprejmete spremembo konfiguracije.
Posodobite apt
za zbiranje novih paketov.
apt-get update
Na koncu namestite modul Nginx za dodeljevanje potrdil.
apt-get -y install python-certbot-nginx
Konfigurirajte požarni zid, da omogočite HTTPS
.
ufw allow 443/tcp
Preden lahko zahtevamo nova potrdila, potrebujemo ime DNS.
nano /etc/nginx/sites-available/default
Dodajte naslednjo server_name
nastavitev.
server_name rdp.example.com;
Spremenite konfiguracijo, da bo odražala to novo nastavitev.
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;
}
}
Preverite, ali vse deluje, in znova zaženite Nginx.
nginx -t
service nginx restart
Zdaj zahtevajte potrdilo s certbotom.
certbot --nginx -d rdp.example.com
Navedite svoj e-poštni naslov in se strinjate z vprašanji, ki jih je postavil monter. (Za No
skupno rabo e-pošte lahko varno izberete » «.) Certbot bo samodejno vprašal, kaj mora storiti z HTTPS
. Uporabili bomo možnost 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
Zadnja stvar, ki jo bomo naredili, je posodobitev DH
parametrov. Ti so privzeto nekoliko šibki za standarde 2017.
Ustvarite nekaj novih.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Nato jih dodajte na privzeto spletno mesto v Nginxu.
nano /etc/nginx/sites-available/default
Dodajte jih v konfiguracijo strežnika.
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;
}
}
Preverite napake.
nginx -t
Uveljavite spremembe tako, da znova zaženete strežnik.
service nginx restart
Očistite staro 8080
pravilo
ufw delete allow 8080/tcp
Opomba: če boste prejeli "502 Bad Gateway", boste morali znova zagnati tomcat8 .
service tomcat8 restart
Potrdila Let's Encrypt zahtevajo obnovo. Za to lahko ustvarimo cron delo. Začnite z urejanjem crontab
.
crontab -e
Dodajte naslednjo vrstico.
00 2 * * * /usr/bin/certbot renew --quiet
To bo ob 2.00 preverilo, ali je treba katero koli potrdilo obnoviti, in jo obnovilo, če je potrebno.
Pojdite na strežnik Guacamole (ali http://<ip>/
ali https://rdp.example.com)
).
Za ta preizkus boste potrebovali še dva primerka: enega Linux VM in drugega Windows Server 2012 R2 z zasebnim IP-jem omogočenim na obeh.
Kliknite " username
" v zgornjem desnem kotu in pojdite na " Settings
". Nato pojdite na " Connections
" in izberite " New Connection
".
Izpolnite naslednje nastavitve (druge lahko pustite privzete).
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>
Pritisnite " save
" in se vrnite na začetni zaslon. Zdaj lahko kliknete na povezavo " Windows Server 2012 R2
" in bo RDP na ta stroj.
Pritisnite " Ctrl+Shift+Alt
". To bo odprlo meni ob strani. Tukaj lahko prekinete povezavo ali opravljate druga administrativna opravila za Guacamole.
Kliknite username
na vrhu v meniju in pojdite na " Settings
". Nato pojdite na Connections
zavihek " " in izberite " New Connection
".
Izpolnite naslednje nastavitve (druge lahko pustite privzete).
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)
Pritisnite " save
" in se vrnite na začetni zaslon. Zdaj lahko kliknete to novo ustvarjeno povezavo in se prek SSH povežete s svojim strežnikom Linux.
Zdaj imate spletni prehod RDP/SSH HTML5. Zdaj lahko požarno pregradite javni dostop RDP in SSH vaše platforme in dostopate do svojega okolja iz katerega koli sodobnega brskalnika. Za več informacij o tem, kaj lahko Guacamole ponujajo, obstaja velika video, ki prikazuje vse possiblities platforme tukaj .
Uporaba drugega sistema? Plesk je lastniška nadzorna plošča spletnega gostitelja, ki uporabnikom omogoča upravljanje svojih osebnih in/ali strank spletnih mest, baz podatkov
Uvod Lets Encrypt je storitev overitelja potrdil, ki ponuja brezplačna potrdila TLS/SSL. Certbot poenostavlja postopek namestitve,
Uporaba drugega sistema? Jekyll je odlična alternativa WordPressu za bloganje ali deljenje vsebine. Ne zahteva nobenih baz podatkov in je zelo enostaven i
Uporaba drugega sistema? Če kupite strežnik Debian, morate vedno imeti najnovejše varnostne popravke in posodobitve, ne glede na to, ali spite ali ne
PHP in sorodni paketi so najpogosteje uporabljene komponente pri uvajanju spletnega strežnika. V tem članku se bomo naučili, kako nastaviti PHP 7.0 ali PHP 7.1 o
Squid je priljubljen brezplačen program za Linux, ki vam omogoča ustvarjanje spletnega proxyja za posredovanje. V tem priročniku boste videli, kako namestiti Squid na CentOS, da vas obrne
Uvod Lighttpd je razdelek Apache, katerega namen je biti veliko manj intenziven vir. Je lahek, od tod tudi njegovo ime, in je precej preprost za uporabo. Namestite
1. Virtualmin/Webmin Virtualmin je zmogljiva in prilagodljiva nadzorna plošča za spletno gostovanje za sisteme Linux in UNIX, ki temelji na dobro znani odprtokodni spletni bazi
Yii je okvir PHP, ki vam omogoča hitrejši in preprostejši razvoj aplikacij. Namestitev Yii na Ubuntu je enostavna, saj se boste naučili natančno
Screen je aplikacija, ki omogoča večkratno uporabo terminalskih sej v enem oknu. To vam omogoča simulacijo več terminalskih oken, kjer je ma
Ta vadnica pojasnjuje, kako nastaviti strežnik DNS z uporabo Bind9 v Debianu ali Ubuntuju. V celotnem članku ustrezno nadomestite your-domain-name.com. Ob th
Uvod Logrotate je pripomoček za Linux, ki poenostavlja upravljanje dnevniških datotek. Običajno se izvaja enkrat na dan prek opravila cron in upravlja bazo dnevnikov
VULTR je pred kratkim naredil spremembe na svoji strani in zdaj bi moralo vse delovati v redu iz škatle z omogočenim NetworkManagerjem. Če želite onemogočiti
Icinga2 je zmogljiv sistem za spremljanje in če se uporablja v modelu glavni-odjemalec, lahko nadomesti potrebo po nadzornih pregledih, ki temeljijo na NRPE. Glavni naročnik
Uporaba drugega sistema? Red5 je odprtokodni medijski strežnik, implementiran v Javi, ki vam omogoča zagon večuporabniških aplikacij Flash, kot je prenos v živo
V tem članku bomo videli, kako prevesti in namestiti Nginx mainline iz uradnih virov Nginxa z modulom PageSpeed, ki vam omogoča
Uporaba drugega sistema? Apache Cassandra je brezplačen in odprtokodni sistem za upravljanje baz podatkov NoSQL, ki je zasnovan tako, da zagotavlja razširljivost, visoko
Uporaba drugega sistema? Apache Cassandra je brezplačen in odprtokodni sistem za upravljanje baz podatkov NoSQL, ki je zasnovan tako, da zagotavlja razširljivost, visoko
Uporaba drugega sistema? Vanilla forum je odprtokodna forumska aplikacija, napisana v PHP. Je popolnoma prilagodljiv, enostaven za uporabo in podpira zunanjost
Uporaba drugega sistema? Uvod Kanboard je brezplačen in odprtokodni program za vodenje projektov, ki je zasnovan za olajšanje in vizualizacijo
Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.
Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.
Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.
Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.
Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…
Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.
Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.
Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.
V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.
Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več