How to Install Tiny Tiny RSS Reader on a FreeBSD 11 FAMP VPS
Using a Different System? Tiny Tiny RSS Reader is a free and open source self-hosted web-based news feed (RSS/Atom) reader and aggregator, designed to allo
Zagon lastnega e-poštnega strežnika je lahko zelo koristen. Vi ste odgovorni za svoje podatke. Omogoča vam tudi večjo prilagodljivost pri možnostih dostave. Vendar pa obstaja nekaj izzivov. Tvegate, da bo vaš strežnik odkril ranljivosti in da bo vaš strežnik potencialni rele za pošiljatelje neželene pošte.
Ko to ne bo, pojdimo na zagon lastnega poštnega strežnika.
Za namestitev so potrebni trije potrebni kosi programske opreme, ki niso vključeni v osnovni sistem FreeBSD:
OpenSMTPd je agent za prenos pošte (MTA) in agent za dostavo pošte (MDA). To pomeni, da lahko prek SMTP
protokola komunicira z drugimi poštnimi strežniki , prav tako pa skrbi za dostavo pošte v nabiralnike posameznih uporabnikov. OpenSMTPd bomo nastavili tako, da bo lahko komuniciral z zunanjimi strežniki (filtriran prek neželene pošte) in dostavljal pošto lokalnim uporabnikom ter dostavljal lokalno pošto od uporabnika do uporabnika.
Dovecot je MDA, ki bere lokalne poštne predale in jih uporabnikom posreduje prek IMAP ali POP3. Za serviranje te vsebine bo uporabljal nabiralnike lokalnih uporabnikov.
Spamd je storitev filtriranja pošte. E-pošto lahko posredujemo prek neželene pošte, ki bo filtrirala pošto na podlagi različnih črnih seznamov, belih in sivih seznamov.
Splošna ideja za ta poštni strežnik zahteva nekaj različnih poti:
Outside world -> Firewall -> spamd -> OpenSMTPD -> User mail boxes
Outside world -> Firewall (spamd-whitelist) -> OpenSMTPD -> User mailboxes
Outside world -> Firewall (IMAP/POP3) -> Dovecot
Outside world -> Firewall (SMTPD submission)
Za to vadnico bomo za požarni zid uporabljali različico FreeBSD OpenBSD PF. Uporabite lahko tudi ipfw
, kjer je konfiguracija zelo podobna.
Opomba: Vultr privzeto blokira vrata 25, ki jih strežniki SMTP uporabljajo povsod. Če želite zagnati popolnoma delujoč e-poštni strežnik, boste morali ta vrata odpreti.
Najprej moramo namestiti potrebne programe.
Ob predpostavki, da delujete kot uporabnik z nastavljenim dostopom sudo, lahko zaženemo naslednje ukaze. Razlikujejo se glede na to, ali uporabljate vrata ali pakete.
Razen če potrebujete posebno funkcionalnost, vgrajeno v te pripomočke, je priporočljiva namestitev prek paketov. Je enostavnejši, zahteva manj časa in sredstev strežnika ter nudi intuitiven, uporabniku prijazen vmesnik.
sudo pkg install opensmtpd dovecot spamd
Naslednji make
ukazi vam bodo dali veliko možnosti prevajanja, privzete nastavitve bodo delovale dobro. Teh ne spreminjajte, razen če natančno veste, kaj počnete.
sudo portsnap fetch update # or run portsnap fetch extract if using ports for the first time
cd /usr/ports/mail/opensmtpd
make install # Installs openSMTPd
make clean
cd /usr/ports/mail/dovecot
make install # Installs dovecot
make clean
cd /usr/ports/mail/spamd
make install # Installs spamd
make clean
Naslednje vrstice bomo morali dodati /etc/rc.conf
:
pf_enable="YES"
pf_rules="/usr/local/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
obspamd_enable="YES"
obspamd_flags="-v"
obspamlogd_enable="YES"
dovecot_enable="YES"
Za konfiguracijo PF lahko ustvarimo naš /usr/local/etc/pf.conf
:
## Set public interface ##
ext_if="vtnet0"
## set and drop IP ranges on the public interface ##
martians = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, \
10.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, \
0.0.0.0/8, 240.0.0.0/4 }"
table <spamd> persist
table <spamd-white> persist
# Whitelisted webmail services
table <webmail> persist file "/usr/local/etc/pf.webmail.ip.conf"
## Skip loop back interface - Skip all PF processing on interface ##
set skip on lo
## Sets the interface for which PF should gather statistics such as bytes in/out and packets passed/blocked ##
set loginterface $ext_if
# Deal with attacks based on incorrect handling of packet fragments
scrub in all
# Pass spamd whitelist
pass quick log on $ext_if inet proto tcp from <spamd-white> to $ext_if port smtp \
-> 127.0.0.1 port 25
# Pass webmail servers
rdr pass quick log on $ext_if inet proto tcp from <gmail> to $ext_if port smtp \
-> 127.0.0.1 port 25
# pass submission messages.
pass quick log on $ext_if inet proto tcp from any to $ext_if port submission modulate state
# Pass unknown mail to spamd
rdr pass log on $ext_if inet proto tcp from {!<spamd-white> <spamd>} to $ext_if port smtp \
-> 127.0.0.1 port 8025
## Blocking spoofed packets
antispoof quick for $ext_if
## Set default policy ##
block return in log all
block out all
# Drop all Non-Routable Addresses
block drop in quick on $ext_if from $martians to any
block drop out quick on $ext_if from any to $martians
pass in inet proto tcp to $ext_if port ssh
# Allow Ping-Pong stuff. Be a good sysadmin
pass inet proto icmp icmp-type echoreq
# Open up imap/pop3 support
pass quick on $ext_if proto tcp from any to any port {imap, imaps, pop3, pop3s} modulate state
# Allow outgoing traffic
pass out on $ext_if proto tcp from any to any modulate state
pass out on $ext_if proto udp from any to any keep state
To je delujoča PF konfiguracija. To je razmeroma preprosto, vendar je treba razložiti tudi nekaj posebnosti.
Najprej definiramo našo $ext_if
spremenljivko, ki jo bo naša vtnet0
naprava uporabljala pozneje. Določimo tudi neveljavne naslove IP, ki jih je treba izpustiti na zunanjem vmesniku.
Prav tako definiramo dve tabeli spamd
in spamd-white
- ti dve tabeli ustvari spamd v svoji privzeti konfiguraciji. Prav tako definiramo tabelo z imenom, webmail
ki jo bomo uporabili, da bomo nekaterim večjim ponudnikom spletne pošte omogočili prehod.
Če si želite ogledati tabelo, lahko uporabite ukaz pfctl -t tablename -T show
za seznam elementov v tabeli.
Nastavili smo nekaj pravil PF: preskočimo obdelavo na lokalnem vmesniku, omogočimo statistiko na zunanjem vmesniku in počistimo dohodne pakete.
Naslednji je eden pomembnejših delov, kjer upravljamo s pošiljanjem prometa na spamd ali OpenSMTPd.
Najprej je pravilo preusmeritve (tukaj upoštevajte sintakso, FreeBSD 11 uporablja sintakso PF starejšega sloga (pred OpenBSD 4.6), zato se lahko sintaksa zdi čudna. Če prejmemo karkoli na smtp od gostitelja, ki je naveden v spamd
tabeli ali ni naveden v spamd-white
miza, preusmerimo povezavo prek na spamd daemon, ki se ukvarja s temi povezavami. naslednji trije predpisi so Prehodni pravila, tako da bomo lahko dejansko prejemanje e-pošte. Peljemo skozi sporočili iz preiskave, navedene v spamd-white
in webmail
tabel naravnost do OpenSMTPd Sprejemamo tudi sporočila na vratih za oddajo ( 587
).
Potem je tu nekaj pravil gospodinjstva, da nastavite našo privzeto politiko in sprejmete sporočila SSH in ICMP.
Nato preko našega zunanjega vmesnika posredujemo IMAP in POP3, da dostopamo do Dovecota.
Nazadnje dovolimo ves odhodni promet. Če bi želeli dodati dodatno varnost, bi lahko omejili vrata, ki jih posredujete, vendar za strežnik za enkratno uporabo ni problem prenesti vsega.
Začni PF:
sudo service pf start
Zdaj, ko imamo nastavljen požarni zid, lahko nadaljujemo s konfiguracijo poštnega strežnika.
OpenSMTPd ima zelo preprosto in lahko berljivo konfiguracijsko sintakso. Celotna delovna konfiguracija se lahko prilega 14 vrsticam, kot lahko vidite spodaj:
#This is the smtpd server system-wide configuration file.
# See smtpd.conf(5) for more information.
ext_if=vtnet0
# If you edit the file, you have to run "smtpctl update table aliases"
table aliases file:/etc/mail/aliases
table domains file:/etc/mail/domains
# Keys
pki mail.example.com key "/usr/local/etc/letsencrypt/live/mail.example.com/privkey.pem"
pki mail.example.com certificate "/usr/local/etc/letsencrypt/live/mail.example.com/fullchain.pem"
# If you want to listen on multiple subdomains (e.g. mail.davidlenfesty) you have to add more lines
# of keys, and more lines of listeners
# Listen for local SMTP connections
listen on localhost hostname mail.example.com
# listen for filtered spamd connections
listen on lo0 port 10026
# Listen for submissions
listen on $ext_if port 587 tls-require auth pki mail.example.com tag SUBMITTED
# Accept mail from external sources.
accept from any for domain <domains> alias <aliases> deliver to maildir "~/mail"
accept for local alias <aliases> deliver to maildir "~/mail"
accept from local for any relay tls
accept tagged SUBMITTED for any relay tls
Najprej ponovno definiramo naš zunanji vmesnik, pa tudi nekaj tabel, vzdevkov in domen. Nato preidemo na ključ in potrdilo SSL za vse domene, pod katerimi želimo obdelati pošto.
V naslednjem razdelku definiramo vmesnike in vrata, ki jih želimo poslušati. Najprej poslušamo na localhost za našo mail.example.com
domeno, za vse lokalne povezave. Nato na zunanjem vmesniku poslušamo naša sporočila, filtrirana z neželeno pošto, in poslana sporočila. Nazadnje poslušamo predložitve, ki se zgodijo v pristanišču 587
in zahtevamo, da se preverijo pristnosti iz varnostnih razlogov.
Nazadnje so naše accept
nastavitve. Sprejemamo vsa sporočila za katero koli od naših domen, definiranih v naši domains
tabeli za vzdevke v naši aliases
tabeli, za dostavo v njihov domači imenik v maildir
obliki. Nato sprejmemo vse lokalne povezave za lokalne poštne predale in posredujemo naša sporočila, da lahko pošiljamo e-pošto. Nazadnje sprejmemo naša poslana sporočila za posredovanje. Če ne bi zahtevali preverjanja pristnosti za naša vrata za predložitev, bi to predstavljalo veliko varnostno nevarnost. Tako bi lahko kdorkoli uporabljal naš strežnik kot pošiljatelj neželene pošte.
FreeBSD je dobavljen s privzeto datoteko vzdevka /etc/mail/aliases
v naslednji obliki:
vuser1: user1
vuser2: user1
vuser3: user1
vuser4: user2
To določa različne poštne predale in kam želimo posredovati sporočila, poslana v te definirane nabiralnike. Naše uporabnike lahko opredelimo kot lokalne uporabnike sistema ali zunanje nabiralnike, kamor jih želimo posredovati. Privzeta datoteka FreeBSD je precej opisna, tako da jo lahko uporabite za referenco.
FreeBSD ne zagotavlja privzete datoteke domen, vendar je to neverjetno preprosto:
# Domains
example.com
mail.example.com
smtp.example.com
To je samo besedilna datoteka z vsako domeno, ki jo želite poslušati v novi vrstici. Komentirate lahko s #
simbolom. Ta datoteka obstaja preprosto zato, da lahko uporabite manj konfiguracijskih vrstic.
Obstajata dva načina za zaščito vaše komunikacije s svojim poštnim strežnikom, samopodpisana in podpisana potrdila. Svoja potrdila je vsekakor mogoče samopodpisati, vendar storitve, kot je Let's Encrypt, zagotavljajo brezplačno in neverjetno enostavno podpisovanje.
Najprej moramo namestiti program certbot.
sudo pkg install py-certbot
Druga možnost je, da se namesti z vrati:
cd /usr/ports/security/py-certbot
make install
make clean
Nato se morate za pridobitev potrdila prepričati, da ste odprli vrata 80
na zunanjem vmesniku. Dodajte naslednje vrstice nekje v pravila filtriranja v /usr/local/etc/pf.conf
:
pass quick on $ext_if from any to any port http
Nato zaženite, pfctl -f /usr/local/etc/pf.conf
da znova naložite nabor pravil.
Nato lahko zaženete ukaz za vse domene, za katere želite pridobiti potrdilo:
certbot certonly --standalone -d mail.example.com
Priporočljivo je, da nastavite vnos crontab, ki se izvaja certbot renew
vsakih 6 mesecev, da zagotovite, da vaši certifikati ne potečejo.
Nato lahko za vsako ustrezno domeno spremenite vrstice, da kažejo na pravilno ključno datoteko:
pki mail.example.com key "/usr/local/etc/letsencrypt/live/mail.example.com/privkey.pem"
pki mail.example.com certificate "/usr/local/etc/letsencrypt/live/mail.example.com/fullchain.pem"
Uredite vrednostne papirje:
sudo chmod 700 /usr/local/etc/letsencrypt/archive/mail.example.com/*
Opomba: To boste morali storiti za vsako izvirno ključno datoteko, sicer jih OpenSMTPd ne bo odprl.
Zdaj lahko začnemo s storitvijo:
sudo service smtpd start
Tukaj uporabljamo demon spamd OpenBSD, da zmanjšamo količino neželene pošte, ki jo dobimo iz interneta. V bistvu to filtrira sporočila z IP-jev, ki so znani kot slabi iz različnih virov neželene pošte, kot tudi (privzeto) dohodne povezave na "sivih seznamih". Spamd skuša tudi zapraviti čas pošiljatelja neželene pošte z "mucanjem" povezav na črni in sivi listi, kar pomeni, da svoj odziv razporedi na nekaj sekund, zaradi česar odjemalec ostane odprt dlje kot običajno.
Sivi seznam povezave se izvede, ko se poveže kateri koli nov naslov IP, ki ni na nobenem črnem ali belem seznamu. Ko se novi naslov poveže, spamd spusti sporočilo z neškodljivim sporočilom o napaki, nato pa ga doda na začasni seznam. Ker pošiljatelji neželene pošte plačajo za dostavljena sporočila, ne bodo znova poskusili ob napaki, medtem ko bo zakonita storitev ponovno poskusila relativno kmalu.
Za montažo boste morali zagnati naslednje fdescfs
:
mount -t fdescfs null /dev/fd
Nato boste morali dodati to vrstico v /etc/fstab
:
fdescfs /dev/fd fdescfs rw 0 0
Privzeta konfiguracijska datoteka (najdete jo v /usr/local/etc/spamd/spamd.conf.sample
) bo delovala v redu. Lahko ga uredite, da dodate nove vire ali spremenite vire, ki jih uporabljate:
sudo cp /usr/local/etc/spamd/spamd.conf.sample /usr/local/etc/spamd/spamd.conf
Storitev lahko začnemo z naslednjim:
sudo service obspamd start
Na tej točki je spamd nastavljen.
Ena od težav s pristopom sivih seznamov je, da velike poštne storitve pogosto pošiljajo pošto prek enega od številnih različnih tuljajev in ni vam jamčimo, da bo isti strežnik vsakič poslal sporočilo. Ena od rešitev za to je uvrstitev na seznam dovoljenih obsegov IP-jev, ki jih uporabljajo različne storitve spletne pošte. Za to se uporablja tabela spletne pošte v konfiguraciji PF. Ta strategija se lahko povrne, če vključite naslov IP, ki ga uporablja pošiljatelj neželene pošte, vendar dokler ste previdni pri obsegu, ki ga vnesete v tabelo, bo vse v redu.
Če želite v tabelo spletne pošte dodati obseg e-pošte, lahko zaženete naslednji ukaz:
pfctl -t webmail -T add 192.0.2.0/24
Če želite, da uporabniki dostopajo do svoje pošte brez prijave prek SSH, boste potrebovali MDA, ki podpira IMAP in/ali POP3. Zelo priljubljen program je Dovecot, ki ima dokaj preprosto konfiguracijo in zmogljive funkcije.
Prekopiramo lahko privzeto konfiguracijo:
cd /usr/local/etc/dovecot
cp -R example-config/* ./
Konfiguracija je sestavljena iz kar nekaj različnih datotek. Če želite videti razlike med vašo konfiguracijo in privzetimi nastavitvami golobnjaka, zaženite spodnji ukaz:
sudo doveconf -n
Naslednja je preprosta, delujoča konfiguracija:
# 2.3.2.1 (0719df592): /usr/local/etc/dovecot/dovecot.conf
# OS: FreeBSD 11.2-RELEASE amd64
# Hostname: mail.example.com
hostname = mail.example.com
mail_location = maildir:~/mail
namespace inbox {
inbox = yes
location =
mailbox Archive {
auto = create
special_use = \Archive
}
mailbox Archives {
auto = create
special_use = \Archive
}
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Junk {
auto = create
autoexpunge = 60 days
special_use = \Junk
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox "Sent Mail" {
auto = no
special_use = \Sent
}
mailbox "Sent Messages" {
auto = no
special_use = \Sent
}
mailbox Spam {
auto = no
special_use = \Junk
}
mailbox Trash {
auto = no
autoexpunge = 90 days
special_use = \Trash
}
prefix =
separator = /
}
passdb {
args = imap
driver = pam
}
ssl = required
ssl_cert = </usr/local/etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_dh = </usr/local/etc/dovecot/dh.pem
ssl_key = </usr/local/etc/letsencrypt/live/mail.example.com/privkey.pem
userdb {
driver = passwd
}
Večina konfiguracijskih datotek bo v conf.d
Pomembni so 10-auth.conf
, 10-mail.conf
, in 10-ssl.conf
.
Konfigurirate lahko različne nabiralnike, ki jih uporabljate v 15-mailboxes.conf
. Kar vidite zgoraj, je dobra konfiguracija za številne sisteme, vendar se lahko vaša kilometrina razlikuje. Priporočljivo je, da se s tem poigrate s čim več različnimi strankami.
Večina privzetih nastavitev bo pravilnih. Če želite uporabiti sistemske uporabnike za preverjanje pristnosti, boste morali urediti 10-auth.conf
.
Odkomentiraj naslednjo vrstico:
!vključi auth-system.conf.ext
Ustvariti moramo Diffie-Hellmanove parametre:
sudo nohup openssl dhparam -out /usr/local/etc/dovecot/dh.pem
Opomba: to bo trajalo dolgo časa. Veliko dlje, kot bi lahko pričakovali.
Zdaj lahko začnemo Dovecot:
sudo service dovecot start
Na tej točki imamo funkcionalen, varen in relativno brez neželene pošte poštni strežnik.
Nekaj drugih stvari, ki jih je treba pogledati od tukaj, je uporaba SpamAssassin za hevristično odstranjevanje neželene pošte, pa tudi iskanje več črnih seznamov neželene pošte, ki jih objavijo viri, ki jim zaupate.
Using a Different System? Tiny Tiny RSS Reader is a free and open source self-hosted web-based news feed (RSS/Atom) reader and aggregator, designed to allo
Uporaba drugega sistema? Wiki.js je brezplačna odprtokodna sodobna wiki aplikacija, zgrajena na Node.js, MongoDB, Git in Markdown. Izvorna koda Wiki.js je javna
Uporaba drugega sistema? Pagekit 1.0 CMS je lep, modularen, razširljiv in lahek, brezplačen in odprtokoden sistem za upravljanje vsebine (CMS) z
Uporaba drugega sistema? MODX Revolution je hiter, prilagodljiv, razširljiv, odprtokoden sistem za upravljanje vsebin (CMS) za podjetja, napisan v PHP. To i
Ta članek vas vodi skozi nastavitev OpenBSD 5.5 (64-bit) na KVM z Vultr VPS. 1. korak. Prijavite se v nadzorno ploščo Vultr. 2. korak. Kliknite RAZPOSTAVI
Uporaba drugega sistema? osTicket je odprtokodni sistem za izdajo vstopnic za podporo strankam. Izvorna koda osTicket je javno gostovana na Githubu. V tej vadnici
Uporaba drugega sistema? Flarum je brezplačna in odprtokodna programska oprema za forume naslednje generacije, ki naredi spletno razpravo zabavno. Izvorna koda Flarum gostuje o
Uporaba drugega sistema? TLS 1.3 je različica protokola Transport Layer Security (TLS), ki je bil objavljen leta 2018 kot predlagani standard v RFC 8446
Uvod WordPress je prevladujoči sistem za upravljanje vsebin na internetu. Poganja vse, od blogov do zapletenih spletnih mest z dinamično vsebino
Uporaba drugega sistema? Subrion 4.1 CMS je zmogljiv in prilagodljiv odprtokodni sistem za upravljanje vsebine (CMS), ki prinaša intuitivno in jasno vsebino.
Ta vadnica vam bo pokazala, kako konfigurirati storitev DNS, ki je enostavna za vzdrževanje, enostavna za konfiguriranje in ki je na splošno bolj varna kot klasični BIN
Sklad FEMP, ki je primerljiv s skladom LEMP v Linuxu, je zbirka odprtokodne programske opreme, ki je običajno nameščena skupaj, da omogoči FreeBS
MongoDB je vrhunska baza podatkov NoSQL, ki se pogosto uporablja v novejših spletnih aplikacijah. Zagotavlja visoko zmogljive poizvedbe, razdeljevanje in podvajanje
Uporaba drugega sistema? Monica je odprtokodni sistem za upravljanje osebnih odnosov. Pomislite na to kot na CRM (priljubljeno orodje, ki ga uporabljajo prodajne ekipe v th
Uvod Ta vadnica prikazuje OpenBSD kot rešitev za e-trgovino z uporabo PrestaShop in Apache. Apache je potreben, ker ima PrestaShop zapleten UR
Uporaba drugega sistema? Fork je odprtokodni CMS, napisan v PHP. Izvorna koda Forks gostuje na GitHubu. Ta priročnik vam bo pokazal, kako namestiti Fork CM
Uporaba drugega sistema? Directus 6.4 CMS je zmogljiv in prilagodljiv, brezplačen in odprtokoden Headless Content Management System (CMS), ki omogoča razvijalcem
VPS strežniki so pogosto tarča vsiljivcev. Pogosta vrsta napada se prikaže v sistemskih dnevnikih kot na stotine nepooblaščenih poskusov prijave ssh. Postavitev
Uvod OpenBSD 5.6 je predstavil nov demon, imenovan httpd, ki podpira CGI (prek FastCGI) in TLS. Za namestitev novega http ni potrebno dodatno delo
Ta vadnica vam bo pokazala, kako namestiti skupinsko programsko opremo iRedMail na novo namestitev FreeBSD 10. Uporabiti morate strežnik z vsaj enim gigabajtom o
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č