Un serveur de messagerie OpenBSD utilisant OpenSMTPD, Dovecot, Rspamd et RainLoop

introduction

Ce didacticiel présente un serveur de messagerie complet fonctionnant sur OpenBSD à l'aide d'OpenSMTPD, Dovecot, Rspamd et RainLoop. OpenSMTPD est le serveur de messagerie par défaut pour OpenBSD. Choisissez une instance Vultr Compute Cloud avec beaucoup de stockage pour le nombre d'utilisateurs prévu.

Étapes préliminaires

Configurez votre compte utilisateur pour effectuer des tâches en tant que root.

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

Configurez le référentiel de packages pour OpenBSD.

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

Ajoutez les packages requis.

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

Configurer OpenSMTPD

Par défaut, OpenSMTPD écoute uniquement sur localhost. Il doit être explicitement configuré pour écouter sur des interfaces externes. Il doit être configuré pour utiliser des utilisateurs virtuels plutôt que des utilisateurs système pour des raisons de sécurité.

Sauvegardez le /etc/smtpd.conffichier par défaut et créez-en un nouveau à partir de zéro.

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

Créez un nouveau smtpd.confcomme indiqué ci-dessous. Remplacez example.compar votre domaine. Cette configuration initiale n'active pas le filtre rspamd lors du test d'OpenSMTP. Le filtre anti-spam sera activé ultérieurement.

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"

Créez le fichier / etc / credentials

OpenSMTPD et Dovecot peuvent partager une base de données d'authentification. Cette base de données ressemble au fichier de mot de passe système au format, avec deux champs supplémentaires pour Dovecot. Les deux champs spéciaux définissent le répertoire de départ virtuel et l'emplacement du courrier. Les mots de passe sont au format Blowfish. Ce didacticiel crée trois exemples d'utilisateurs.

Générez les mots de passe et concaténez-les dans le /etc/mail/credentialsfichier.

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

La sortie ressemble à ceci:

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

Modifiez /etc/mail/credentialspour ajouter les champs requis. Chaque ligne correspond à un compte système, vmail , avec UID et GID de 2000 . Remplacez example.com par votre domaine. Le nom d'utilisateur virtuel est l'adresse e-mail complète.

[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

Créer un compte de messagerie virtuelle et définir la sécurité

  • Définissez les /etc/mail/credentialsautorisations en lecture seule pour _smtpdet les _dovecotutilisateurs du système.
  • Créez l' vmailutilisateur système, le groupe et le répertoire personnel.

    • Lorsque vous créez l'utilisateur du système vmail, vous recevrez l'avertissement suivant: useradd: Warning: home directory '/var/vmail' doesn't exist, and -m was not specified. Cela est attendu. Cela évite d'encombrer le répertoire avec des fichiers dot de /etc/skel. Ils ne sont pas obligatoires car le compte vmail n'autorise pas la connexion.

      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 staff vmail doas mkdir / var / vmail doas chown vmail: vmail / var / vmail

Créer le mappage d'utilisateur virtuel

Créez /etc/mail/virtualspour définir les adresses e-mail valides.

Créer des clés publiques / privées pour OpenSMTPD

Cet exemple utilise un certificat auto-signé. Utilisez un certificat signé valide si vous en avez un. Lorsque vous êtes invité à entrer le nom commun, assurez-vous qu'il correspond au nom de domaine complet du serveur. Cet exemple utilise mail.example.com.

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

Testez le serveur

Utilisez le vérificateur de syntaxe de configuration OpenSMTPD. Si aucun problème n'est détecté, redémarrez le démon smtpd.

doas smtpd -n
doas rcctl restart smtpd

À partir d'un compte de messagerie externe, envoyez un e-mail de test à l'un des utilisateurs.

  • OpenSMTPD créera la structure du dossier maildir ci /var/vmail- dessous et remettra le courrier à /var/vmail/example.com/<username>/new.
  • En tant qu'utilisateur root, accédez à cet endroit et verifiy vous avez un fichier nommé semblable à ceci: 1576339842.4d64757b.example.com:2,.
  • Examinez le contenu du fichier, y compris tous les en-têtes de courrier, pour vérifier que la remise des e-mails fonctionne correctement.

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

Configurer Dovecot IMAP

Définissez la classe de connexion

Dovecot nécessite la possibilité d'avoir un plus grand nombre de fichiers ouverts pour la lecture et l'écriture que la classe par défaut ne le permet. Ne pas le faire entraînera des erreurs difficiles à résoudre.

Définissez une classe de connexion pour le démon Dovecot. Au bas de, /etc/login.confajoutez les lignes suivantes.

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

Créer le fichier de configuration Dovecot

Créez /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"
}

Correction de bogue Dovecot

Il y a un bug dans Dovecot où les paramètres ssl_certet ssl_keyne sont pas remplacés dans le local.conffichier, nous devons donc les commenter. Si vous manquez cette étape, Dovecot ne pourra pas démarrer correctement.

Modifiez /etc/dovecot/conf.d/10-ssl.confcomme indiqué.

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

Créer les scripts Sieve

Les scripts Sieve entraînent Rspamd sur le spam et le jambon . Le déplacement des e-mails dans et hors du dossier indésirable déclenche un événement pour entraîner Rspamd.

Ces fichiers se trouvent à /usr/local/lib/dovecot/sieve.

Créez le report-ham.sievefichier.

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

Créez le report-spam.sievefichier.

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

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

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

Compilez les fichiers.

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

Créez les deux scripts shell suivants dans /usr/local/lib/dovecot/sieve

Ajoutez ce qui suit à sa-learn-ham.sh

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

Ajoutez ce qui suit à sa-learn-spam.sh

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

Rendez les fichiers exécutables.

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

Activez et démarrez Dovecot.

rcctl enable dovecot
rcctl start dovecot

Vérifiez que Dovecot a démarré correctement.

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

Vérifier que Dovecot peut lire correctement /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

Vérifiez qu'un utilisateur de messagerie peut se connecter.

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

Configurer Rspamd

Il s'agit d'une configuration de base de Rspamd, reportez-vous à la documentation officielle pour plus de détails. Cet exemple crée une définition de notre domaine pour activer la signature DKIM.

Créez une paire de clés publique / privée /etc/mail/dkimet définissez les autorisations appropriées.

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

Créez un enregistrement DNS pour DKIM contenant la clé publique. Consultez votre fournisseur DNS pour savoir comment créer un enregistrement DKIM. Copiez le contenu /etc/mail/dkim/public.keyet collez-le après la p=partie de l'enregistrement DKIM comme indiqué ci-dessous. Notez que cet exemple crée également un enregistrement SPF.

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"

Créez un enregistrement DMARC.

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

Créez le /etc/rspamd/local.d/dkim_signing.conffichier de configuration.

  • La selector="default";ligne est dérivée de la première partie de l'enregistrement DNS DKIM ( default._domainkey....) créé ci-dessus.

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

Activez et démarrez Rspamd.

doas rcctl enable redis rspamd
doas rcctl start redis rspamd

Modifiez les lignes ci-dessous dans /etc/mail/smtpd.confet redémarrez OpenSMTPD pour activer Rspamd.

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

Testez le serveur de messagerie avec le client de messagerie POP3 ou IMAP. Si vous n'avez pas besoin de webmail, arrêtez-vous ici.

(Facultatif) Configurer RainLoop Webmail

Installer les packages prérequis

Lorsque vous y êtes invité, veuillez choisir la version la plus récente de PHP.

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

Récupérez l'archive Webmail RainLoop et extrayez-la /var/www/htdocs/.

Utilisez l'édition standard qui comprend un programme de mise à jour automatique.

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

Créer un certificat SSL Let's Encrypt

  • Copier /etc/examples/acme-client.confvers/etc
  • Ajoutez les lignes suivantes au bas du fichier:

    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
    }
    

Configurer httpd

  • Créer une entrée DNS (soit CNAME ou un enregistrement A) pour le sous-domaine webmail.example.com
  • Modifiez en /etc/httpd.confsuivant l'exemple ci-dessous.

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

Exécutez la vérification de la syntaxe httpd.

httpd -n

Activez et démarrez httpd.

rcctl enable httpd
rcctl start httpd

Demandez le certificat Let's Encrypt.

acme-client -v webmail.example.com

Ajoutez les définitions de serveur pour RainLoop à /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"
    }
}

Configurez PHP pour autoriser les pièces jointes jusqu'à 25 mégaoctets. Apportez les modifications suivantes dans /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

Activez les modules PHP nécessaires en copiant leurs fichiers de configuration dans /etc/php-7.3/

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

Vérifiez la syntaxe de /etc/httpd.conf

httpd -n

Activez et démarrez httpd et php-fpm.

rcctl reload httpd
rcctl enable php73_fpm
rcctl start php73_fpm

Examen final

Accédez à https://webmail.example.com/?admin.

Le nom d'utilisateur par défaut est: admin
Le mot de passe par défaut est: 12345 .

Accédez à chacune des sections de configuration et effectuez les modifications souhaitées. Une fois la configuration terminée, connectez-vous à Webmail à l'adressehttps://webmail.example.com



Leave a Comment

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.