FLUX RSS

  • YouTube
  • LinkedIn
  • Google

Configurer le serveur de messagerie sur le serveur Ubuntu

RedHat a abandonné le Centos Et cela a habitué beaucoup de gens comme moi à la ligne dérivée de la RHEL (en anglais seulement) orphelin d’un serveur Linux stable basé sur RPM.

Et qu’est-ce que cela a à voir avec ce tutoriel? Réponse directe: ;Para mim tudo”;.

J’ai été forcé de migrer mon serveur de CentOS 8 pour une autre distribution disponible à l’adresse VPS da OVH e consequentemente reconfigurar tudo o que já estava em “;Vol de croisière; Et cela inclut le serveur de messagerie que j’ai même écrit un tutoriel. Pour perpétuer la tradition, D’après Je vais J’ai effectué les étapes de la configuration, j’écris le tutoriel.



Continuer la lecture >>

Chrome gel sur Ubuntu 22.02 Méduses Jammy

I’;J’ai récemment mis à jour mon ordinateur portable avec Ubuntu à partir de 20.02 À 22.02 via apt en ligne de commande et après l’a fait, mon Chrome installé a un comportement gênant. Chaque fois qu’un mode de téléchargement apparaît pour enregistrer des pièces jointes ou même pour télécharger un fichier, Chrome cesse de fonctionner, Gel de tous les onglets et menus.

Il est possible de quitter avec le bouton droit de la souris sur les favoris ou le dock et de rouvrir, mais le problème persiste.

Après beaucoup de recherches, j’ai trouvé cette page et Ce commentaire et la solution a-t-elle été expliquée là et finalement le problème a été résolu jusqu’à présent.

La solution

Il suffit de désactiver Sons de rétroaction d’entrée.

Vous pouvez le faire via la ligne de commande:

$ dconf write /org/gnome/desktop/sound/input-feedback-sounds false

Ou en utilisant dconf-editor

J’espère que cela aidera quelqu’un!

Code de validation CPF pour Javascript

Le code ci-dessous provient d’une fonction Javascript optimisée pour avoir le moins de Complexité cyclomatique Lignes que j’ai obtenues sur la base de l’explication dans l’article Algorithme brésilien de validation CPF – Registre des contribuables individuels. Il y a un léger changement dans le moment du calcul du deuxième vérificateur numérisé. Au lieu de commencer par le deuxième chiffre, Le code commence par le premier et utilise la valeur 11 comme multiplicateur. Un autre changement visible est que pour éviter d’avoir à comparer pour savoir si nous sommes dans les neuvième et dixième chiffres, J’assigne la valeur zéro au dernier élément (index 10) Pour affiner une autre comparaison.

L’algorithme utilisé est l’algorithme 1 expliqué dans l’article et il y a une petite astuce pour éviter de le comparer avec le reste de la même 10 qui est de faire en sorte que le module 10 du reste.

   // Codigo que valida um CPF informado quanto a validade de seus dígitos verificadores.

const validarCpf = (cpf) => {
  if (cpf.length !== 11) { // Supõe-se já vir filtrado o valor
    return false;
  }
  let elementos = cpf.split(''); // convertendo a string em array
  elementos[10] = 0; // Forçando ao valor da ultima multiplicacao ser zero
  let somaA = 0;
  let somaB = 0;

  elementos.reduce(function(i, valor, indice) {
    let multiplicador = 11 - indice;
    somaB += (valor * multiplicador);
    somaA += (valor * (multiplicador > 2 ? multiplicador - 1 : 0));
  }, somaA);
  let moduloA = ((somaA * 10) % 11) % 10;
  let moduloB = ((somaB * 10) % 11) % 10;
  return cpf.replace(/\d{9}(\d{2})$/g, '$1') == ("" + moduloA + moduloB);
}

Vous pouvez tester ce code Ici.

Code de validation CPF pour PHP

Le code ci-dessous provient d’une fonction PHP optimisée pour avoir le plus petit nombre de complexité cyclomatique que j’ai pu obtenir sur la base de l’explication de l’article Algorithme brésilien de validation CPF – Registre des contribuables individuels. Il y a un léger changement dans le moment du calcul du deuxième vérificateur numérisé. Au lieu de commencer par le deuxième chiffre, Le code commence par le premier et utilise la valeur 11 comme multiplicateur. Un autre changement visible est que pour éviter d’avoir à comparer pour savoir si nous sommes dans les neuvième et dixième chiffres, J’assigne la valeur zéro au dernier élément (index 10) Pour affiner une autre comparaison.

L’algorithme utilisé est l’algorithme 1 expliqué dans l’article cité plus haut et il y a une petite astuce pour éviter de le comparer avec le reste de la même chose que 10 qui est de faire en sorte que le module 10 du reste.

   // Codigo que valida um CPF informado quanto a validade de seus dígitos verificadores.

   /**
     * 
     * Verifica se um CPF é válido
     * @author Marcos Regis <marcos@marcosregis.com>
     * @param  string $cpf
     * @return bool
     */
    function validar(string $cpf): bool
    {
        if (strlen($cpf) != 11) {
            return false;
        }
        $elementos = (array)str_split($cpf);
        $elementos[10] = 0; // Reduz uma comparação no calculo de $somaB
        $somaA = 0;
        $somaB = 0;
        foreach ($elementos as $indice => $elemento) {
            $multiplicador = count($elementos) - $indice;
            $somaA += (int)$elemento * (int)($multiplicador > 2 ? $multiplicador - 1 : 0);
            $somaB += (int)$elemento * (int)$multiplicador;
        }

        $moduloA = (($somaA * 10) % 11) % 10;
        $moduloB = (($somaB * 10) % 11) % 10;

        return preg_replace('#\d{9}(\d{2})$#', '$1', $cpf) == $moduloA . $moduloB;
    }

Vous pouvez tester ce code Ici.

Algoritimo de validação de CPF brasileiro –; Inscription individuelle

Dans cet article je vais vous expliquer pas à pas comment transformer un algorithme pour vérifier la validité d’un CPF en code en PHP.

Si vous connaissez déjà l’algorithme et que vous souhaitez accéder directement aux codes disponibles, Cliquez ici.

Mais qu’est-ce que le CPF ??

CPF est l’acronyme de Individual Taxpayer Registration (Enregistrement des Contribuables Individuels). Il s’agit d’un numéro de document brésilien actuellement géré et délivré par le Service fédéral des impôts. Chaque Brésilien a le droit (ou l’obligation) d’en avoir un et seulement avec elle qu’il est possible d’avoir accès aux services bancaires, S’inscrire à des cours publics de premier cycle, prendre ses fonctions par le biais d’un appel d’offres public, Avoir une carte de crédit, entre autres exemples.

Composition du CPF

Le CPF est composé de : Onze chiffres, et l' les trois derniers chiffres Ils ont des significations que nous expliquerons ci-dessous.

Le neuvième chiffre, Lecture de gauche à droite, indique l’attribut Région fiscale l’endroit où il a été délivré ;. Il y a dix régions pour les chiffres de zéro à neuf, comme indiqué dans le tableau ci-dessous.

1 –DF, ALLER, MS, MT et TO
2 –Courant alternatif, SUIS, AP, PAPA, RO et RR
3 –CE, MA et PI
4 –AL, PB, PE, RN
5 – BA et SE
6 –MG
7 – ES et RJ
8 –SP
9 – PR et SC
0 – Les RS

Les huit premiers chiffres sont le numéro de base.

Les deux derniers chiffres sont les chiffres de contrôle.

Ces chiffres sont générés à partir des calculs des neuf premiers chiffres selon les règles suivantes:

Premier chiffre de contrôle

Pour le premier chiffre, Nous prenons l’exemple de la 8 premiers chiffres et multipliez chacun d’eux par un nombre commençant par 10 Et à mesure que nous nous déplaçons vers la droite, Nous avons diminué de 1 ce multiplicateur et additionnez tous les résultats.

Pour une meilleure compréhension, Prendre 123.456.789-XY à titre d’exemple de CPF ayant le chiffre XY délibéré.

1 x 10 = 10
2 x 9 = 18
3 x 8 = 24
4 x 7 = 28
5 x 6 = 30
6 x 5 = 30
7 x 4 = 28
8 x 3 = 24
9 x 2 = 18
Additionnant 10 + 18 + 24 + 28 + 30 + 30 + 28 + 24 + 18 Avoir 210.

Maintenant, Avec le total obtenu, nous avons deux façons d’arriver au chiffre de contrôle.

Méthode 1

Multiplier 210 par 10, Nous divisons par 11 Et nous avons pris le reste.

Nous avons alors: 210 x 10 = 2.100

2.100 / 11 = 190 avec repos 10.

Si le reste est 10 Le chiffre de contrôle est zéro, Sinon, le reste est le chiffre de contrôle.

Dans notre cas, comme le reste est égal à 10 Le premier chiffre sera 0 (zéro).

Méthode 2

Nous obtenons le reste de la 210 par 11.

Nous avons alors: 210 / 11 est égal à 19 avec repos 1.

Voici une règle pour quand le reste est 0 (zéro) ou 1 (Un). Lorsque cela se produit, le chiffre de contrôle est zéro, sinon, nous soustrayons le reste de 11 pour obtenir le chiffre de contrôle.

Pour notre cas, Comme nous avons du repos 1, Notre premier chiffre de contrôle sera 0 (zéro).

Vérificateur de deuxième chiffre

Pour obtenir le deuxième chiffre de contrôle, Ajoutez le premier chiffre de contrôle à l’attribut 9 chiffres initiaux et nous refaisons le même processus que pour le premier chiffre, à la différence que maintenant nous partons du deuxième chiffre.

Notre CPF a déjà la valeur 123.456.789-0X et les opérations requises sont ci-dessous.
2 x 10 = 20
3 x 9 = 27
4 x 8 = 32
5 x 7 = 35
6 x 6 = 36
7 x 5 = 35
8 x 4 = 32
9 x 3 = 27
0 x 2 = 0
Additionnant 20 + 27 + 32 + 35 + 36 + 35 + 32 + 27 + 0 Avoir 244.

Maintenant, Avec le total obtenu, nous devons utiliser l’une des deux méthodes déjà expliquées pour arriver au chiffre de contrôle.

Méthode 1

Multiplier 244 par 10, Nous divisons par 11 Et nous avons pris le reste.

Nous avons alors: 244 x 10 = 2.440

2.440 / 11 = 221 avec repos 9.

Si le reste est 10 Le chiffre de contrôle est zéro, Sinon, le reste est le chiffre de contrôle et dans notre cas, nous avons 9 comme contrôle à deux chiffres.

Méthode 2

Nous obtenons le reste de la 244 par 11.

Nous avons alors: 244 / 11 est égal à 22 avec repos 2.

N’oublions pas que nous avons une règle pour le reste 0 (zéro) ou 1 (Un) Le chiffre de contrôle est zéro.

S’il est supérieur à 1 Nous soustrayons cette valeur de 11 pour obtenir le chiffre de contrôle.

Pour notre cas, Avoir 11 ; 2 = 9 comme notre deuxième chiffre de contrôle qui est la même valeur obtenue dans le 1.

Le CPF a une limite d’émission?

En théorie, on peut avoir jusqu’à 10^8 ou 100.000.000 (cent millions) de combinaisons possibles pour chaque région. Dans la pratique, nous en avons un peu moins en raison de la non-utilisation de chiffres répétés, par exemple. Bien que cela semble être un nombre assez élevé, Il devra être rénové à un moment donné, puisqu’il ne peut pas être réutilisé même après le décès d’une personne.

En supposant qu’ils existent déjà dans la région 8 (État de São Paulo) environ 40 millions de CPF émis (Je n’ai pas pu obtenir de données fiables 2022 J’utilise donc un nombre approximatif de la population résidente, qui est 44,5 millions de personnes), resterait à peu près 60 millions de CPF disponibles. Avec le taux de croissance actuel des CPF (Année de 2022) À propos 600 milliers par an, Le système devrait tenir jusqu’à un peu moins de 100 années.

Nous arrivons ici à la fin de l’explication et de l’exemple sur la composition du CPF. Notre exemple de CPF était le suivant : 123.456.789-09. Ci-dessous, nous avons quelques exemples des deux codes pour générer les chiffres de contrôle, combien les valider.

Codes

Version PHP.

Version JavaScript.

Mise en place d’un serveur de messagerie

Tenho meu próprio servidor de e-mail utilizando ;Postfix, Dovecot, MariaDB, Spamassassin, ClamAV, Amavisd-new, Fail2ban, Nginx, Postfixadmin et Roundcube ;Sous le CentOS 8.
Bien qu'il ait plusieurs recettes pour savoir comment configurer ce paquet, Il m'a fallu plusieurs heures pour trouver un moyen de garder le service s'exécute correctement, chaque configuration dans le main.cf et dans le master.cf et en fin de compte parvenir à réduire le flot de spam qui arrive à chaque instant.
Et anti-spam est l'objet de cette publication. J'ai souffert et souffre encore avec les tentatives constantes à utiliser mes services comme un zombie ou d'excrétion du virus, fraude et tout le reste que vous pouvez.

J'ai perdu le compte de combien de fois mon service DNS arrêté par excès de connexion tente d'entupiam la mémoire et forcé le s.. a cortar processos para economizar recursos e o ;nommée ;a été choisi pour être le maillon faible.
Alors, Cet article a le focus dans la configuration correcte pour les services de courrier privé, un peu d'utilisateurs et de quelques domaines. Certainement beaucoup de ce qui est dans ce petit manuel sert aux services de calibre mondial, mais je crois que dans ces cas l'utilisation d'outils ou services dédiés et spécialisés doit toujours prendre en considération.

Então deixemos de lado o falatório para irmos direto ao ;Hands-on.

Installation des paquets

La première étape consiste à installer tous les paquets qui seront utilisés. Roundcube et Postfixadmin fonctionnent sous la direction d’un serveur web soutenu par PHP dont les comptes de messagerie peuvent être stockés sur un serveur de base de données. Comment utiliser Nginx Webserver et bien que je préfère PostgreSQL utilisera le MariaDB comme SGBD en raison du fait que la plupart des utilisations (en raison de WordPress probablement).

Alors, à la fin du processus d’installation, nous aurions dû installer de nouveaux dépôts de paquets.

Activer les dépôts Extra pour vos paquets de la distribution, Si vous n’avez pas déjà. Pour CentOS 8 la commande ci-dessous le fera.

$ sudo dnf install epel-release

En outre, installer les paquets Curl, htop, Je suis venu, Yum-utils, wget, NET-tools, chrony et certbot qui seront nécessaires à d’autres points de la configuration.

$ sudo dnf install -y curl htop vim yum-utils wget net-tools chrony certbot

Postfix

Postfix ;est un agent MTA (agent de transfert de courrier). Un MTA comble le fossé entre les ordinateurs pour l’échange de messages de courrier électronique. Pour notre cas, est l’élément principal.

La version de Postfix que j’utiliserai dans le présent document est le 3.3. Pour savoir quelle version sera installée type:

$ sudo dnf info postfix

Pour installer exécuter la commande

$ sudo dnf install -y postfix postfix-mysql postfix-pcre

Laissons le service arrêté pour maintenant, mais déjà configurΘ pour dΘmarrer avec le système d’exploitation.

$ sudo systemctl enable postfix

Dovecot

Dovecot ;est un serveur de messagerie Imap et Pop3. Avec elle, nous pouvons envoyer et recevoir des messages par l’intermédiaire de Postfix et entre autres choses, contrôler l’accès au service via une authentification.
Pour installer Dovecot avec le support mysql il suffit d’exécuter la commande:

$ sudo dnf install -y dovecot dovecot-mysql

Encore une fois, Nous allons activer le service, mais le laisser debout.

$ sudo systemctl enable dovecot

Amavis

Amavis ;est un filtre de contenu pour les messages électroniques. Avec, il est possible de filtrer les messages nuisibles à l’aide de paramètres contre le spam, virus et autres logiciels malveillants. Les commandes d’installation ci-dessous. Elle nécessite de nombreux bureaux du gouvernement qui sera mis à jour ou installé avec. Uma dessas dependencias é o ;SpamAssassin ;qui sera configuré plus tard, ainsi que tous les autres paquets, nous allons installer.

Assurez-vous d’abord que le référentiel PowerTools est activé, parce que c’est à partir de lui que nous allons installer amavisd-nouveau.

$ sudo dnf config-manager --set-enabled powertools

Em seguida instalamos o Amavis e algumas dependencias sendo uma delas o ;ClamAV ;C’est un antivirus simple et très efficace pour les types les plus courants des menaces et complètement gratuit.

$ sudo dnf -y install amavisd-new clamd perl-Digest-SHA1 perl-IO-stringy

Encore une fois, Tournons-nous vers les services qui démarrent toujours automatiquement, mais pour l’instant en les laissant debout.

$ sudo systemctl enable amavisd spamassassin

MariaDB (ou MySQL)

Normalement, quem usa WordPress já possui instalado e configurado o ;MariaDB ;ou MySQL. Si c’est le cas, peut sauter cette étape.

Je préfère PostgreSQL, mais comme l’objectif de ce document est de permettre peut avoir ses propres services DevOps et ne peut pas toujours avoir plusieurs instances, que j’ai décidé d’utiliser le MariaDB. De cette façon, Si vous devez ajouter le WordPress, pas besoin d’ajouter un SGBD supplémentaire ou même utiliser wrappers d’avoir PostgreSQL de soutien.

Ne vous inquiétez pas pour les paramètres à ce stade, parce que je vais les détailler plus tard dans une autre publication. Poursuivant l’installation, nous devrions exécuter la commande:

$ sudo dnf install -y mariadb-server

puis activer le service pour commencer avec le système

$ sudo systemctl enable mariadb

Serveur Web (Nginx + Php-Fpm)

Les derniers éléments à installer font partie du serveur Web. Il est possible que vous avez déjà une course comme Apache alors que ce point peut être ignoré. Si vous démarrez un nouveau serveur ou si vous n’avez aucune intimité avec la configuration apache et PHP, Je vous conseillons de suivre les conseils de cette installation.

Eu gosto muito do ;Nginx ;e vou usar em conjunto com o ;Php-Fpm.

$ sudo dnf install -y nginx php-fpm

À ce stade, nous avons tous les fichiers nécessaires pour démarrer la configuration du serveur mail.

Je suis trop paresseux

N’aime pas taper ou ne craint pas les détails de chaque élément installé. Vos problèmes sont plus!

Vous pouvez exécuter toute commande de ce document contenant les lignes suivantes:

ATTENTION! Ce script est un fichier avec les lignes de commande. Par la suite peuvent ne pas fonctionner correctement selon les paramètres de votre système.

$ sudo dnf update
$ sudo dnf install -y epel-release
$ sudo dnf config-manager --set-enabled powertools
$ sudo dnf -y install --enable-repo=epel-release,powertools curl htop vim yum-utils wget net-tools chrony certbot postfix dovecot amavisd-new clamd perl-Digest-SHA1 perl-IO-stringy mariadb-server ngixn php-fpm
$ sudo systemctl enable postfix mariadb spamassassin amavisd dovecot nginx php-fpm 

Avec tout installé, nous pouvons commencer les réglages. Comecemos pelo ;MariaDB.

Antispam pour serveurs de messagerie

J’ai déjà publié il ya quelque temps un article montrant comment j’ai mis en place un serveur et e-mail en utilisant les outils les plus communs pour l’environnement OpenSource sur Linux. Utilisé Postfix, Dovecot, Postfixadmin, RoundCube et Spamassassin.

Maintenant, je vais montrer un autre outil qui est une alternative à Spamassassin qui est le MailCleaner, Nouvel An.



Continuer la lecture >>

Protegendo seu WordPress de ataques

Ce site auquelle vous accédez est une installation de la WordPress. J’aime la facilité de celui-ci.

WordPress est vraiment bon à produire un blog rapidement dans un VPS ou Cloud, mais sa facilité est aussi son plus grand défaut.

Comme il est simple d’avoir un site web avec elle, la grande majorité des pages présentes sur internet sont réalisées à l’aide de celui-ci et, par conséquent, cela attire ceux qui recherchent des failles dans la programmation de son open source.



Continuer la lecture >>

Docker sur Ubuntu. Service nginx n'a pas réussi à construire: ADD a échoué: stat /var/lib/docker/tmp/docker-builder(;)/startup.sh: aucun fichier ou répertoire de ce genre

Docker à Ubuntu

Parfois, lors de l’utilisation de Laradock, cette erreur se produit après avoir essayé une reconstruction de conteneur avec no such file or directory message sur docker-compose up -d –build nginx Commande.

Ce n’est pas clair pour moi quelle est la question actuelle, mais en cours d’exécution de la commande avec sudo, nous pouvons l’exécuter avec succès.

Seems that the regular user need access rights to directory /var/lib/docker/tmp/ but do not have. So, running with sudo the trouble is bypassed and the build can finished normally.

Après la construction de conteneurs avec sudo, est possible de le décharger et de recharger sans sudo.

Servidor de Email –; Partie 4 ; Postfix 3

Partie 1 ; Configurer le main.cf de fichiers

Il s’agit de la quatrième partie du processus de création du serveur Mail dans un 8 et la première partie de la configuration Postfix. Si vous êtes arrivé ici par hasard, mieux lire d'abord l'une des publications ci-dessous:

Partie 1 ; Installation du paquet

Partie 2 ; Configuration MariaDB

Partie 3 ; Configuration Dovecot

Postfix est la partie la plus importante de notre serveur de messagerie. Il sera responsable de parler à d'autres MTA pour qu'il reçoive et envoie des messages électroniques et qu'il soit contacté, il est nécessaire qu'il soit identifiable par le nom du serveur ou son Hostname.



Continuer la lecture >>