Een OpenBSD e-mailserver met OpenSMTPD, Dovecot, Rspamd en RainLoop

Invoering

Deze tutorial laat een volledige e-mailserver zien die draait op OpenBSD met OpenSMTPD, Dovecot, Rspamd en RainLoop. OpenSMTPD is de standaard mailserver voor OpenBSD. Kies een Vultr Compute Cloud-instantie met voldoende opslagruimte voor het verwachte aantal gebruikers.

Voorafgaande stappen

Stel uw gebruikersaccount in om taken als root uit te voeren.

su -
usermod -G wheel <username>
echo "permit nopass keepenv :wheel" > /etc/doas.conf
exit

Stel de pakketrepository in voor OpenBSD.

doas su
echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl
exit

Voeg de vereiste pakketten toe.

doas pkg_add opensmtpd-extras opensmtpd-filter-rspamd dovecot dovecot-pigeonhole rspamd redis

Configureer OpenSMTPD

Standaard luistert OpenSMTPD alleen op localhost. Het moet expliciet worden geconfigureerd om te luisteren op externe interfaces. Het moet worden geconfigureerd om virtuele gebruikers te gebruiken in plaats van systeemgebruikers voor beveiliging.

/etc/smtpd.confMaak een back-up van het standaardbestand en maak een nieuw geheel nieuw.

cd /etc/mail
mv smtpd.conf smtpd.conf.default

Maak een nieuwe smtpd.confzoals hieronder weergegeven. Vervang example.comdoor uw domein. Deze initiële configuratie activeert het rspamd-filter niet tijdens het testen van OpenSMTP. Het spamfilter wordt later geactiveerd.

pki "mail" cert "/etc/ssl/mail.crt"
pki "mail" key "/etc/ssl/private/mail.key"

table aliases file:/etc/mail/aliases
table credentials passwd:/etc/mail/credentials
table virtuals file:/etc/mail/virtuals

filter "rspamd" proc-exec "/usr/local/libexec/smtpd/filter-rspamd"

# To accept external mail, replace with: listen on all

# listen on all tls pki "mail" hostname "mail.example.com"
listen on egress port submission tls-require pki "mail" hostname "mail.example.com" \
  auth <credentials>

action "local_mail" mbox alias <aliases>
action "domain_mail" maildir "/var/vmail/example.com/%{dest.user}" \
  virtual <virtuals>
action "outbound" relay

# Uncomment the following to accept external mail for domain "example.org"

# match from any for domain "example.com" action "domain_mail"
match from local for local action "local_mail"

match from local for any action "outbound"
match auth from any for any action "outbound"

Maak het bestand / etc / credentials

OpenSMTPD en Dovecot kunnen een authenticatiedatabase delen. Deze database lijkt qua formaat op het systeemwachtwoordbestand, met twee extra velden voor Dovecot. De twee speciale velden definiëren de virtuele homedirectory en de e-maillocatie. Wachtwoorden hebben de Blowfish-indeling. Deze tutorial maakt drie voorbeeldgebruikers aan.

Genereer de wachtwoorden en voeg ze samen in het /etc/mail/credentialsbestand.

doas su
smtpctl encrypt example_password1 >> /etc/mail/credentials
smtpctl encrypt example_password2 >> /etc/mail/credentials
smtpctl encrypt example_password3 >> /etc/mail/credentials
exit

De uitvoer ziet er ongeveer zo uit:

$2b$10$agmNBPvFm1zqCjbbZC3JbO4Ns2jJNZQfTS45MAnKi.IPrkKITyTa6
$2b$10$LwkcKVVnwG8hDxu2W4YKD.K0kQ2oylOmQ9SBUb0hIopBsmNxYPb4e
$2b$10$bgLW/GMZyRXKbROgRQIvRu4xbeOqOJJXlgEAKuS5sIrBvfdPvEzeq

Bewerken /etc/mail/credentialsom de vereiste velden toe te voegen. Elke regel wordt toegewezen aan een systeemaccount, vmail , met UID en GID van 2000 . Vervang example.com door uw domein. De virtuele gebruikersnaam is het volledige e-mailadres.

[email protected]:$2b$10$agmNBPvFm1zqCjbbZC3JbO4Ns2jJNZQfTS45MAnKi.IPrkKITyTa6:vmail:2000:2000:/var/vmail/example.com/john::userdb_mail=maildir:/var/vmail/example.com/john
[email protected]:$2b$10$LwkcKVVnwG8hDxu2W4YKD.K0kQ2oylOmQ9SBUb0hIopBsmNxYPb4e:vmail:2000:2000:/var/vmail/example.com/adam::userdb_mail=maildir:/var/vmail/example.com/adam
[email protected]:$2b$10$bgLW/GMZyRXKbROgRQIvRu4xbeOqOJJXlgEAKuS5sIrBvfdPvEzeq:vmail:2000:2000:/var/vmail/example.com/natalie::userdb_mail=maildir:/var/vmail/example.com/natalie

Maak een virtuele e-mailaccount en stel beveiliging in

  • Stel /etc/mail/credentialsmachtigingen in op alleen-lezen voor _smtpden _dovecotsysteemgebruikers.
  • Maak de vmailsysteemgebruiker, groep en homedirectory.

    • Wanneer u het vmail systeem gebruiker aan te maken, krijgt u de volgende waarschuwing: useradd: Warning: home directory '/var/vmail' doesn't exist, and -m was not specified. Dit wordt verwacht. Dit voorkomt dat de map vol raakt met puntbestanden van /etc/skel. Ze zijn niet vereist omdat het vmail-account inloggen niet toestaat.

      doas chmod 0440 / etc / mail / credentials doas chown smtpd: dovecot / etc / mail / credentials doas useradd -c "Virtual Mail Account" -d / var / vmail -s / sbin nologin -u 2000 -g = uid -L personeel vmail doas mkdir / var / vmail doas chown vmail: vmail / var / vmail

Maak de Virtual User Mapping

Maak /etc/mail/virtualsom de geldige e-mailadressen te definiëren.

Maak openbare / privésleutels voor OpenSMTPD

In dit voorbeeld wordt een zelfondertekend certificaat gebruikt. Gebruik een geldig ondertekend certificaat als je er een hebt. Als u om de algemene naam wordt gevraagd, zorg er dan voor dat deze overeenkomt met de FQDN van de server. In dit voorbeeld wordt mail.example.com gebruikt.

doas su
cd /etc/ssl
openssl genrsa -out private/mail.key 4096
openssl req -x509 -new -nodes -key private/mail.key -out mail.crt -days 3650 -sha256
chmod 0400 /etc/ssl/private/mail.key
exit

Test de server

Gebruik de OpenSMTPD-configuratiesyntaxiscontrole. Als er geen problemen worden gevonden, start u de smtpd-daemon opnieuw op.

doas smtpd -n
doas rcctl restart smtpd

Stuur vanaf een externe e-mailaccount een testmail naar een van de gebruikers.

  • OpenSMTPD maakt de maildir-mapstructuur hieronder aan /var/vmailen bezorgt de mail /var/vmail/example.com/<username>/new.
  • Als de root gebruiker, browse naar deze locatie en verifiy u een bestand met de naam ongeveer zo uit: 1576339842.4d64757b.example.com:2,.
  • Bekijk de inhoud van het bestand, inclusief alle mailheaders, om te controleren of de e-mailbezorging goed werkt.

    Return-Path: <n0244e80da3-54b1ed125c5342fc-adam===example.org@bounce.example.org>
    Delivered-To: [email protected]
    Received: from spruce-goose-ba.twitter.com (spruce-goose-ba.twitter.com [199.59.150.96])
        by mail.example.com (OpenSMTPD) with ESMTPS id 75b514d3 (TLSv1.2:ECDHE-RSA-AES256-GCM-    SHA384:256:NO)
        for <[email protected]>;
        Sat, 14 Dec 2019 11:10:40 -0500 (EST)
    DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=twitter.com;
        s=dkim-201406; t=1576339839;
        bh=jhKB5/w9v87GaXSuizT576ntJ/72gvLRDhsqmGQQrCE=;
        h=Date:From:To:Subject:MIME-Version:Content-Type:List-Unsubscribe:
        Message-ID;
        b=TWn/QVUJ1VDlWiweWoanwHLABCL1nqmm0+TBzh3PjmYNm0quRMXB7QL2ykzHGME5A
        DTz/JFHa0cOvQsrdhxxbjOLFKimK0nF+Ou5kI+2HzTzfVNZS0qGnTVP/tZyaIsWjjl
        an5EiR6HFOHG4iClOOEOJW4oLDEZfPTefrlW+378bmHGIRUNDvVKrbXKunL9fJFAb3
        JSrhWQNwbrF/aARFzw4nKfb1I7vTRSrN1eXE5JxzGwI2XAjqDIWdR5ExwUNbJH5ZPs
        wQ85j8KLZEEgQkbH9CypgeUMJWsVK95FqOCCaqKMS10M7intGMb3aeiiFcB7yDHi9t
        u7rVESm4eGp/g==
    X-MSFBL: DM7pSZns+YDRgNEmGNre9aPjZTtc1tDlN97w5rQDBts=|eyJ1IjoibWF0dEBnb2J
        sYWNrY2F0LmNvbUBpaWQjIzU0YjFlZDEyNWM1MzQyZmNiNThiMzVmNzI0NDZlMGF
        mQHVzYiMjNkAyNDRAMTA4MjgwNTAxMDYzNzk1MDk3NkAwQDA4MjY5ZWI4OTI3YzR
        kNTFiNTZkMjY3YzY2OGRmN2IwY2Y4M2ExZGIiLCJyIjoibWF0dEBnb2JsYWNrY2F
        0LmNvbSIsImciOiJCdWxrIiwiYiI6InNtZjEtYmd4LTM0LXNyMS1CdWxrLjE4NiJ
        9
    Date: Sat, 14 Dec 2019 16:10:39 +0000
    ...
    

Configureer Dovecot IMAP

Stel de aanmeldingsklasse in

Dovecot vereist de mogelijkheid om een ​​groter aantal bestanden open te hebben voor lezen en schrijven dan de standaardklasse toelaat. Als u dit niet doet, ontstaan ​​er fouten die moeilijk op te lossen zijn.

Definieer een inlogklasse voor de Dovecot-daemon. /etc/login.confVoeg onderaan de volgende regels toe.

    dovecot:\
        :openfiles-cur=1024:\
        :openfiles-max=2048:\
        :tc=daemon:    

Maak het Dovecot-configuratiebestand

Creëer /etc/dovecot/local.conf.

auth_mechanisms = plain
first_valid_uid = 2000
first_valid_gid = 2000
mail_location = maildir:/var/vmail/%d/%n
mail_plugin_dir = /usr/local/lib/dovecot
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex  imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext imapsieve vnd.dovecot.imapsieve
mbox_write_locks = fcntl
mmap_disable = yes
namespace inbox {
  inbox = yes
  location =
  mailbox Archive {
  auto = subscribe
  special_use = \Archive
  }
  mailbox Drafts {
  auto = subscribe
  special_use = \Drafts
  }
  mailbox Junk {
  auto = subscribe
  special_use = \Junk
  }
  mailbox Sent {
  auto = subscribe
  special_use = \Sent
  }
  mailbox Trash {
  auto = subscribe
  special_use = \Trash
  }
  prefix =
}
passdb {
  args = scheme=CRYPT username_format=%u /etc/mail/credentials
  driver = passwd-file
  name =
}
plugin {
  imapsieve_mailbox1_before = file:/usr/local/lib/dovecot/sieve/report-spam.sieve
  imapsieve_mailbox1_causes = COPY
  imapsieve_mailbox1_name = Junk
  imapsieve_mailbox2_before = file:/usr/local/lib/dovecot/sieve/report-ham.sieve
  imapsieve_mailbox2_causes = COPY
  imapsieve_mailbox2_from = Junk
  imapsieve_mailbox2_name = *
  sieve = file:~/sieve;active=~/.dovecot.sieve
  sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
  sieve_pipe_bin_dir = /usr/local/lib/dovecot/sieve
  sieve_plugins = sieve_imapsieve sieve_extprograms
}
protocols = imap sieve
service imap-login {
  inet_listener imaps {
  port = 0
  }
}
service managesieve-login {
  inet_listener sieve {
  port = 4190
  }
  inet_listener sieve_deprecated {
  port = 2000
  }
}
ssl_cert = </etc/ssl/mail.crt
ssl_key = </etc/ssl/private/mail.key
userdb {
  args = username_format=%u /etc/mail/credentials
  driver = passwd-file
  name =
}
protocol imap {
  mail_plugins = " imap_sieve"
}

Dovecot Bug Fix

Er is een bug in Dovecot waar ssl_certen ssl_keyinstellingen niet krijgen overschreven in het local.confbestand, zodat we ze uit te reageren. Als u deze stap mist, zal Dovecot niet correct starten.

Bewerk /etc/dovecot/conf.d/10-ssl.confzoals afgebeeld.

...
# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
#ssl_cert = </etc/ssl/dovecotcert.pem
#ssl_key = </etc/ssl/private/dovecot.pem
...

Maak de Sieve-scripts

Zeefscripts trainen Rspamd op spam en ham . Door e-mail naar en uit de ongewenste map te verplaatsen, wordt een evenement geactiveerd om Rspamd te trainen.

Deze bestanden bevinden zich op /usr/local/lib/dovecot/sieve.

Maak het report-ham.sievebestand.

require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];

if environment :matches "imap.mailbox" "*" {
  set "mailbox" "${1}";
}

if string "${mailbox}" "Trash" {
  stop;
}

if environment :matches "imap.user" "*" {
  set "username" "${1}";
}

pipe :copy "sa-learn-ham.sh" [ "${username}" ];

Maak het report-spam.sievebestand.

require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];

if environment :matches "imap.user" "*" {
  set "username" "${1}";
}

pipe :copy "sa-learn-spam.sh" [ "${username}" ];

Compileer de bestanden.

sievec report-ham.sieve
sievec report-spam.sieve 

Maak de volgende twee shell-scripts aan /usr/local/lib/dovecot/sieve

Voeg het volgende toe aan sa-learn-ham.sh

#!/bin/sh
exec /usr/local/bin/rspamc -d "${1}" learn_ham

Voeg het volgende toe aan sa-learn-spam.sh

#!/bin/sh
exec /usr/local/bin/rspamc -d "${1}" learn_spam

Maak de bestanden uitvoerbaar.

chmod 0755 sa-learn-ham.sh
chmod 0755 sa-learn-spam.sh

Activeer en start Dovecot.

rcctl enable dovecot
rcctl start dovecot

Controleer of Dovecot correct is gestart.

ps ax | grep dovecot

88005 ??  I        0:00.11 /usr/local/sbin/dovecot
69640 ??  I        0:00.03 dovecot/anvil
91207 ??  I        0:00.03 dovecot/log
98178 ??  I        0:00.19 dovecot/config
34712 ??  I        0:00.06 dovecot/stats
96674 ??  I        0:00.03 dovecot/imap-login
 8891 ??  S        0:00.02 dovecot/imap

Controleer of Dovecot correct kan lezen /etc/mail/credentials

doveadm user [email protected]

field    value
uid      2000
gid      2000
home /var/vmail/example.com/john
mail maildir:/var/vmail/example.com/john

Controleer of een e-mailgebruiker kan inloggen.

doveadm auth login [email protected]

Password: ********
passdb: [email protected] auth succeeded
extra fields:
  [email protected]

userdb extra fields:
  [email protected]
  mail=maildir:/var/vmail/example.com/john
  uid=2000
  gid=2000
  home=/var/vmail/example.com/john
  auth_mech=PLAIN

Stel Rspamd in

Dit is een standaard Rspamd-configuratie, raadpleeg de officiële documentatie voor meer details. Dit voorbeeld maakt een definitie voor ons domein om DKIM-ondertekening mogelijk te maken.

Maak een publiek / privaat sleutelpaar aan /etc/mail/dkimen stel de juiste rechten in.

doas su
mkdir /etc/mail/dkim
cd /etc/mail/dkim
openssl genrsa -out private.key 1024
openssl rsa -in private.key -pubout -out public.key
chmod 0440 private.key
chown root:_rspamd private.key

Maak een DNS-record voor DKIM met de openbare sleutel. Raadpleeg uw DNS-provider voor meer informatie over het maken van een DKIM-record. Kopieer de inhoud van /etc/mail/dkim/public.keyen plak deze na het p=deel van de DKIM-record zoals hieronder weergegeven. Merk op dat dit voorbeeld ook een SPF-record maakt.

default._domainkey.example.com. IN TXT "v=DKIM1;k=rsa;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQClcuK3FV3Ug64li8iFsuJ2ykgb7FMZsujk9uG79ppPUp57vCfjzO7F+HBfx5qIwvlGxv2IJXK86FZwhpUX+HFCDUtfB2z0ZNGerWcZfNzM1w1Bru/fdMd2tCYkiHEa5RWIkLfs/Fm+neXxRZfAG2UDWmAghNbgzYv7xViwgufDIQIDAQAB"
example.com. IN TXT "v=spf1 a ip4:192.0.2.1 mx ~all"

Maak een DMARC-record.

_dmarc.example.com. IN TXT "v=DMARC1;p=none;pct=100;rua=mailto:[email protected]"

Maak het /etc/rspamd/local.d/dkim_signing.confconfiguratiebestand.

  • De selector="default";regel is afgeleid van het eerste deel van het default._domainkey....hierboven gemaakte DKIM DNS-record ( ).

    domain {
        example.com {
            path = "/etc/mail/dkim/example.com.key";
            selector = "default";
        }
    }
    

Schakel Rspamd in en start het.

doas rcctl enable redis rspamd
doas rcctl start redis rspamd

Wijzig de onderstaande regels in /etc/mail/smtpd.confen start OpenSMTPD opnieuw om Rspamd in te schakelen.

...
listen on all tls pki "mail" hostname "mail.example.com" filter "rspamd"
listen on egress port submission tls-require pki "mail" hostname "mail.example.com" \
  auth <credentials> filter "rspamd"
...
rcctl restart smtpd

Test de mailserver met POP3 of IMAP e-mailclient. Als u geen webmail nodig heeft, stop dan hier.

(Optioneel) Configureer RainLoop Webmail

Installeer vereiste pakketten

Kies desgevraagd de meest recente versie van PHP.

pkg_add php php-curl php-pdo_sqlite php-zip pecl73-mcrypt zip unzip wget curl

Haal de RainLoop webmail tarball en pak het uit /var/www/htdocs/.

Gebruik de Standard Edition die een automatische updater bevat.

cd /tmp
wget https://www.rainloop.net/repository/webmail/rainloop-latest.zip
unzip rainloop-latest.zip -d /var/www/htdocs/rainloop
chown -R www:www /var/www/htdocs

Maak Let's Encrypt SSL Certificaat

  • Kopieer /etc/examples/acme-client.confnaar/etc
  • Voeg de volgende regels toe onderaan het bestand:

    domain webmail.example.com {
    domain key "/etc/ssl/private/webmail.example.com.key"
    domain full chain certificate "/etc/ssl/webmail.example.com.crt"
    sign with letsencrypt
    }
    

Configureer httpd

  • Maak een DNS-vermelding (CNAME of A-record) voor subdomein webmail.example.com
  • Bewerk /etc/httpd.confvolgens het onderstaande voorbeeld.

    prefork 3
    types { include "/usr/share/misc/mime.types" }
    
    server "default" {
        listen on egress port 80 
        root "/htdocs"
        directory index index.html
    
        location "/.well-known/acme-challenge/*" {
                root "/acme"
                request strip 2
        }
    }
    

Voer de httpd-syntaxiscontrole uit.

httpd -n

Schakel httpd in en start het.

rcctl enable httpd
rcctl start httpd

Vraag het Let's Encrypt-certificaat aan.

acme-client -v webmail.example.com

Voeg de serverdefinities voor RainLoop toe aan /etc/httpd.conf

server "webmail.example.com" {
    listen on egress port 80
    block return 302 "https://$SERVER_NAME$REQUEST_URI"
}

server "webmail.example.com" {
    listen on egress tls port 443
    root "/htdocs/rainloop"
    directory index "index.php"

    tcp { nodelay, backlog 10 }

    tls {
            certificate "/etc/ssl/webmail.example.com.crt"
            key "/etc/ssl/private/webmail.example.com.key"
    }

    hsts {
            max-age 31556952
            preload
    }

    # Value below is 25MB in bytes. 1MB = 1048576 bytes
    connection max request body 26214400

    location "/data*" {
            block return 403
    }

    location "*.php*" {
            fastcgi socket "/run/php-fpm.sock"
    }
}

Configureer PHP om bijlagen tot 25 megabytes toe te staan. Breng de volgende wijzigingen aan in /etc/php-7.3.ini:

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 25M
...
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 29M

Schakel de benodigde PHP-modules in door hun configuratiebestanden te kopiëren naar /etc/php-7.3/

cp /etc/php-7.3.sample/* /etc/php-7.3/.

Controleer de syntaxis van /etc/httpd.conf

httpd -n

Activeer en start httpd en php-fpm.

rcctl reload httpd
rcctl enable php73_fpm
rcctl start php73_fpm

Laatste test

Blader naar https://webmail.example.com/?admin.

De standaard gebruikersnaam is: admin
Het standaard wachtwoord is: 12345 .

Blader naar elk van de configuratiesecties en breng de gewenste wijzigingen aan. Als je klaar bent met de configuratie, log je in op webmail ophttps://webmail.example.com



Leave a Comment

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.