RSS

  • YouTube
  • LinkedIn
  • Google

Konfigurieren Sie den E-Mail-Server auf dem Ubuntu-Server

A RedHat descontinuou o Centos e deixou muita gente como eu acostumado a linha derivada do RHEL orfão de um servidor Linux estável e baseado em RPMs.

E o que isso tem a ver com este tutorial? Resposta direta: ;Para mim tudo”;.

Fui obrigado a migrar meu servidor de CentOS 8 para outra distrô disponível em VPSs da OVH e consequentemente reconfigurar tudo o que já estava em “;voo de cruzeiro; e isso inclui o servidor de email que inclusive escrevi um tutorial. Para manter a tradição, conforme vou fui executando os passos da configuração escrevo o tutorial.



Lesen Sie weiter >>

Chrome friert unter Ubuntu ein 22.02 Marmeladenqualle

I’;Ich habe kürzlich meinen Laptop mit Ubuntu von 20.02 An 22.02 durch apt in der Befehlszeile und danach, Mein installiertes Chrome hat ein lästiges Verhalten. Jedes Mal, wenn ein Download-Modal angezeigt wird, um Anhänge zu speichern oder sogar eine Datei hochzuladen, Chrome funktioniert nicht mehr, Einfrieren aller Registerkarten und Menüs.

Es ist möglich, mit der rechten Maustaste auf Favoriten oder Dock zu klicken und erneut zu öffnen, aber das Problem tritt weiterhin auf.

Nach vielen Suchen fand ich Diese Seite und Dieser Kommentar und hat die Lösung dort erklärt und schließlich war das Problem bis jetzt gelöst.

Die Lösung

Einfach ausschalten Eingabe-Feedback-Sounds.

Sie können dies über die Befehlszeile tun:

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

Oder mit dem dconf-Editor

Ich hoffe, dass jemand hilft!

CPF-Validierungscode für Javascript

O código abaixo é de uma função em Javascript otimizada para ter o menor numero de Zyklomatische Komplexität Zeilen, die ich basierend auf der Erklärung im Artikel erhalten habe Brasilianische CPF-Validierungsmethode - Individuelle Registrierung. Es hat eine leichte Änderung zum Zeitpunkt der Berechnung des zweiten digitalisierten Testers. Anstatt mit der zweiten Ziffer zu beginnen, Der Code beginnt mit dem ersten und verwendet den Wert 11 als Multiplikator. Eine weitere bemerkenswerte Änderung besteht darin, dass wir nicht vergleichen müssen, um zu wissen, ob wir uns in der neunten und decimo Ziffer befinden., Ich weise dem letzten Element den Wert Null zu (Index 10) um einen weiteren Vergleich zu reduzieren.

Der verwendete Algorithmus ist der 1 erklärt im Artikel und es gibt einen kleinen Trick, um zu vermeiden, mit dem Rest gleich zu vergleichen 10 die das Modul machen soll 10 des Restes.

   // 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);
}

Sie können diesen Code testen Hier.

CPF-Validierungscode für PHP

Der folgende Code ist eine PHP-Funktion, die optimiert ist, um die kleinste Anzahl von zyklomatischer Komplexität zu haben, die ich basierend auf der Erklärung im Artikel Brasilianische CPF-Validierungsmethode - Individuelle Registrierung. Es hat eine leichte Änderung zum Zeitpunkt der Berechnung des zweiten digitalisierten Testers. Anstatt mit der zweiten Ziffer zu beginnen, Der Code beginnt mit dem ersten und verwendet den Wert 11 als Multiplikator. Eine weitere bemerkenswerte Änderung besteht darin, dass wir nicht vergleichen müssen, um zu wissen, ob wir uns in der neunten und decimo Ziffer befinden., Ich weise dem letzten Element den Wert Null zu (Index 10) um einen weiteren Vergleich zu reduzieren.

Der verwendete Algorithmus ist der 1 erklärt in dem zuvor zitierten Artikel und es gibt einen kleinen Trick, um zu vermeiden, mit dem Rest gleich zu vergleichen 10 die das Modul machen soll 10 des Restes.

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

Sie können diesen Code testen Hier.

Algoritimo de validação de CPF brasileiro –; Individuelle Anmeldung

In diesem Artikel werde ich Schritt für Schritt die Transformation eines Algorithmus erklären, um die Gültigkeit eines CPF zu Code in PHP zu verifizieren.

Wenn Sie den Algorithmus bereits kennen und direkt zu den verfügbaren Codes gehen möchten, Klicken Sie hier.

Aber was ist die CPF?

CPF ist die Abkürzung für Individual Registration. Es handelt sich um eine Reihe brasilianischer Dokumente, die derzeit vom Internal Revenue Service verwaltet und herausgegeben werden.. Jeder Brasilianer hat das Recht auf (oder Pflicht) Um einen und nur damit zu haben, ist es möglich, Zugang zu Bankdienstleistungen zu haben, Einschreibung in öffentliche Bachelor-Studiengänge, Amtsantritt durch öffentliche Ausschreibung, Kreditkarte haben, u.a. Beispiele.

Zusammensetzung des CPF

Das CPF setzt sich zusammen aus elfstellig, Und die Die letzten drei Ziffern Bedeutungen haben, die wir unten erklären werden.

Die neunte Ziffer, Lesen von links nach rechts, gibt die Steuerregion wo es ausgestellt wurde. Es gibt zehn Regionen für die Ziffern von null bis neun, wie in der folgenden Tabelle gezeigt..

1 –DF, LOS, FRAU, MT und TO
2 –WECHSELSTROM, BIN, AP, PAPA, RO und RR
3 –EG, MA und PI
4 –AL, PB, PE, RN
5 - BA und SE
6 –MG
7 - ES und RJ
8 –SP
9 - PR und SC
0 - RS

Die ersten acht Ziffern sind die Basisnummer.

Die letzten beiden Ziffern sind die Checkout-Ziffern.

Diese Ziffern werden aus Berechnungen der ersten neun Ziffern nach folgenden Regeln generiert:

Erste Ziffernprüfung

Für die erste Ziffer, Wir nahmen die 8 erste Ziffern und multiplizieren Sie jede von ihnen mit einer Zahl, die in 10 und das Ausmaß, in dem wir nach rechts vorrücken, Wir verringern uns in 1 Dieser Multiplikator und wir addieren alle Ergebnisse.

Zum besseren Verständnis, Nehmen 123.456.789-XY als Beispiel für CPF, um die Ziffer zu haben XY absichtlich.

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
Addierend 10 + 18 + 24 + 28 + 30 + 30 + 28 + 24 + 18 Haben 210.

Jetzt, Mit der erhaltenen Summe haben wir zwei Möglichkeiten, zum Ziffernprüfer zu gelangen.

Methode 1

Multiplizieren 210 bis 10, Wir teilen durch 11 und wir nahmen den Rest.

Wir haben dann: 210 x 10 = 2.100

2.100 / 11 = 190 mit Ruhe 10.

Wenn der Rest ist 10 Die Prüfziffer ist Null, Andernfalls, Der Rest ist die Prüfziffer.

In unserem Fall, da der Rest gleich ist 10 Die erste Ziffer lautet 0 (0 (null)).

Methode 2

Wir bekommen den Rest der 210 bis 11.

Wir haben dann: 210 / 11 ist gleich 19 mit Ruhe 1.

Hier haben wir eine Regel, wann der Rest ist 0 (0 (null)) oder 1 (Eins). In diesem Fall ist die Prüfziffer 0 (null), Andernfalls ziehen wir den Rest der 11 So erhalten Sie die Prüfziffer.

Für unseren Fall, wie wir Ruhe haben 1, Unser erster Ziffernprüfer ist 0 (0 (null)).

Zweiter Ziffernprüfer

So rufen Sie die Überprüfung der zweiten Ziffer ab, Wir fügen den ersten Ziffernprüfer zum 9 Anfangsziffern und wir machen wieder den gleichen Prozess für die erste Ziffer, mit dem Unterschied, dass wir jetzt von der zweiten Ziffer beginnen.

Unser CPF hat bereits den Wert 123.456.789-0X und die erforderlichen Operationen sind unten.
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
Addierend 20 + 27 + 32 + 35 + 36 + 35 + 32 + 27 + 0 Haben 244.

Jetzt, Mit der erhaltenen Summe sollten wir einen der beiden bereits erläuterten Wege verwenden, um zur Prüfziffer zu gelangen.

Methode 1

Multiplizieren 244 bis 10, Wir teilen durch 11 und wir nahmen den Rest.

Wir haben dann: 244 x 10 = 2.440

2.440 / 11 = 221 mit Ruhe 9.

Wenn der Rest ist 10 Die Prüfziffer ist Null, Andernfalls, Der Rest ist die Prüfziffer und in unserem Fall haben wir 9 als Second Digit Checker.

Methode 2

Wir bekommen den Rest der 244 bis 11.

Wir haben dann: 244 / 11 ist gleich 22 mit Ruhe 2.

Denken Sie daran, dass wir eine Regel haben, wann der Rest ist 0 (0 (null)) oder 1 (Eins) Die Prüfziffer ist Null.

Wenn es größer ist als 1 Subtrahieren Sie diesen Wert von 11 So erhalten Sie die Prüfziffer.

Für unseren Fall, Haben 11 ; 2 = 9 als unser zweiter Ziffernprüfer, der den gleichen Wert hat, der in der Methode erhalten wurde 1.

CPF hat ein Limit für die Ausgabe?

Theoretisch, Wir können bis zu 10 ^ 8 oder 100.000.000 (Hundert Millionen) Kombinationsmöglichkeiten für jede Region. In der Praxis haben wir etwas weniger durch den Verzicht auf wiederholte Ziffern, zum Beispiel. Obwohl es wie eine ziemlich große Zahl aussieht, Es sollte irgendwann renoviert werden, da es nicht wiederverwendet werden kann, auch wenn eine Person stirbt.

Angenommen, sie existieren bereits in der Region 8 (übernachten in São Paulo) ungefähr 40 Millionen von ausgegebenen CPFs (Ich konnte keine zuverlässigen Daten in 2022 Ich verwende also eine ungefähre Zahl der Wohnbevölkerung, die von 44,5 Millionen von Menschen), würde ungefähr übrig bleiben 60 Millionen von CPFs verfügbar. Mit der aktuellen Wachstumsrate der CPFs (Jahr von 2022) in über 600 Tausend pro Jahr, Das System sollte knapp unter 100 Jahre.

Wir kommen hier am Ende der Erklärung und des Beispiels zur Zusammensetzung des CPF. Unser Beispiel CPF war 123.456.789-09. Im Folgenden finden Sie einige Beispiele für Codes, um die Checkout-Ziffern zu generieren, Wie viel sie zu validieren sind.

Codes

Version PHP.

Version JavaScript.

Configurando um servidor de Email

Tenho meu próprio servidor de e-mail utilizando ;Postfix, Taubenschlag, MariaDB, Spamassassin, ClamAV, Amavisd-new, Fail2ban, Nginx, Postfixadmin und Roundcube ;unter CentOS 8.
Obwohl es hat einige Rezepte für dieses Paket konfigurieren, Es hat mich viele Stunden, um herauszufinden, wie den Dienst einwandfrei zu halten, jede Konfiguration in der main.cf und in der master.cf und schaffen es am Ende, die Spam-Flut zu reduzieren, die jeden Moment ankommt.
Und Anti-Spam steht im Mittelpunkt dieser Veröffentlichung. Ich haben gelitten und leiden noch immer mit die ständigen Versuche, meine Dienste als ein Zombie oder vergießen von Viren verwenden, Betrug und alles, was Sie können.

Ich aufgehört zu zählen wie oft mein DNS-Dienst beendet durch Übermaß an Verbindung in Entupiam versucht, den Speicher und zwang die s.. a cortar processos para economizar recursos e o ;mit dem Namen ;wurde gewählt als das schwächste Glied.
Also, Dieser Artikel hat Fokus in der richtigen Konfiguration für private Mail-Dienste, ein paar User und einige domains. Dient dazu sicherlich eine Menge dessen, was in dieser kurzen Anleitung, Weltklasse-Service, aber ich glaube, dass in diesen Fällen die Verwendung der Tools oder engagierte und spezialisierte Dienste immer in Betracht gezogen werden sollte.

Então deixemos de lado o falatório para irmos direto ao ;Hand in Hand.

Installation von Paketen

Der erste Schritt besteht darin, alle Pakete zu installieren, die. Roundcube und Postfixadmin laufen unter einem PHP-gestützten Webserver, dessen E-Mail-Konten auf einem Datenbankserver gespeichert werden können. Als Webserver benutze ich Nginx und obwohl ich PostgreSQL bevorzuge, werde ich MariaDB als DBMS verwenden, da die meisten es bereits verwenden (aufgrund von WordPress wahrscheinlich).

Also, am Ende des Installationsvorgangs, Wir hätten einige neue Paket-Repositories installieren sollen.

Aktivieren von Extra Packages-Repositorys für Ihre Distribution, wenn Sie dies noch nicht getan haben. Für CentOS 8 Der folgende Befehl führt dies aus.

$ sudo dnf install epel-release

Zusätzlich, Installieren Sie die Pakete Locke, Htop, Kam, yum-utils, Wget, Netzwerkzeuge, chrony und certbot die an anderen Stellen in der Konfiguration benötigt werden.

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

Postfix

Postfix ;ist ein MTA (Mail-Transfer-Agent). Ein MTA, das die Lücke zwischen Computern für den Austausch von E-Mail-Nachrichten überbrückt. Für unseren Fall, ist das Hauptelement.

Die Version von Postfix, die ich in diesem Dokument verwenden werde, ist die 3.3. Um herauszufinden, welche Version installiert wird, geben Sie:

$ sudo dnf info postfix

Führen Sie zum Installieren den Befehl aus

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

Wir werden den Dienst vorerst noch verlassen, aber bereits konfiguriert, um zusammen mit dem Betriebssystem zu starten.

$ sudo systemctl enable postfix

Taubenschlag

Taubenschlag ;ist ein Imap- und Pop3-Mail-Server. Damit können wir Nachrichten über Postfix senden und empfangen und unter anderem den Zugriff auf den Dienst über die Authentifizierung steuern..
Um Dovecot mit mysql-Unterstützung zu installieren, führen Sie einfach den Befehl:

$ sudo dnf install -y dovecot dovecot-mysql

Noch einmal, wir aktivieren den Dienst, lassen ihn jedoch anhalten.

$ sudo systemctl enable dovecot

Amavis

Amavis ;ist ein Inhaltsfilter für E-Mail. Mit ihm können Sie schädliche Nachrichten mit Spam-Einstellungen filtern, Viren und andere Malware. Im Folgenden finden Sie die Befehle, die es installieren. Es erfordert viele Abhängigkeiten, die aktualisiert und/oder zusammen installiert werden.. Uma dessas dependencias é o ;Spamassassin ;die später eingerichtet werden, zusammen mit allen anderen Paketen, die wir installieren.

Stellen Sie zunächst sicher, dass das PowerTools-Repository aktiviert ist., weil es daraus ist, werden wir amavisd-new installieren.

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

Em seguida instalamos o Amavis e algumas dependencias sendo uma delas o ;Clamava ;das ist ein einfaches und ziemlich effizientes Antivirenprogramm für die häufigsten Arten von Bedrohungen und völlig kostenlos.

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

Wieder, werden wir die Dienste aktivieren, so dass sie immer automatisch starten, aber vorerst lassen sie noch.

$ sudo systemctl enable amavisd spamassassin

MariaDB (oder MySQL)

Normalerweise, quem usa WordPress já possui instalado e configurado o ;MariaDB ;oder MySQL. Wenn das der Fall ist, kann diesen Schritt überspringen.

Ich bevorzuge besonders PostgreSQL, Da die Absicht dieses Dokuments jedoch darin besteht, DevOps die Möglichkeit zu geben, eigene Dienste zu haben, und nicht immer mehrere Instanzen haben kann, habe ich beschlossen, MariaDB zu verwenden. wie so, wenn Sie WordPress später hinzufügen müssen, Sie müssen kein zusätzliches DBMS hinzufügen oder sogar Wrapper verwenden, um PostgreSQL zu unterstützen.

Machen Sie sich an dieser Stelle keine Sorgen über die Einstellungen, weil ich sie später in einer anderen Veröffentlichung detailliert beschreiben werde. Wenn wir mit der Installation fortfahren, sollten wir den Befehl ausführen:

$ sudo dnf install -y mariadb-server

und aktivieren Sie dann den Dienst, um zusammen mit dem System zu starten

$ sudo systemctl enable mariadb

Webserver (Nginx + Php-Fpm)

Die letzten zu installierenden Elemente sind Teil des Webservers. Es ist möglich, dass Sie bereits einen wie Apache laufen haben, damit dieser Punkt übersprungen werden kann. Wenn Sie einen neuen Server starten oder wenn Sie keine Intimität mit apache und PHP-Konfiguration haben, Empfehlen Sie, die Tipps dieser Installation zu befolgen.

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

$ sudo dnf install -y nginx php-fpm

Zu diesem Zeitpunkt haben wir bereits alle Dateien, die zum Starten der Konfiguration des Mail Servers erforderlich sind..

Ich bin zu faul

Tippen Sie nicht gerne oder machen Sie sich keine Sorgen um die Details jedes installierten Elements.. Ihre Probleme sind vorbei!

Sie können alle Befehle in diesem Dokument mit den folgenden Zeilen ausführen.:

AUFMERKSAMKEIT! Dieses Skript ist nur eine Datei mit den Befehlszeilen. Irgendwann funktioniert es je nach Systemeinstellungen möglicherweise nicht richtig.

$ 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 

Mit allem installierten können wir die Einstellungen starten. Comecemos pelo ;MariaDB.

Antispam für E-Mail-Server

Ich habe bereits vor einiger Zeit einen Artikel veröffentlicht, der zeigt, wie ich einen Server und e-Mail mit den gängigsten Tools für OpenSource-Umgebungen unter Linux eingerichtet habe.. gebraucht Postfix, Taubenschlag, Postfixadmin, Neu, Roundcube, Neujahr und Spamassassin.

Jetzt zeige ich ein weiteres Tool, das eine Alternative zu Spamassassin ist, MailCleaner, Neujahr.



Lesen Sie weiter >>

Protegendo seu WordPress de ataques

Diese Seite, auf die Sie zugreifen, ist eine Installation der WordPress. Ich mag die Leichtigkeit davon.

WordPress ist wirklich gut in der Erstellung eines Blogs schnell in einem VPS oder Cloud, aber seine Leichtigkeit ist auch sein größter Defekt.

Wie einfach ist es, eine Website mit ihm zu haben, die überwiegende Mehrheit der Im Internet vorhandenen Seiten werden mit ihm gemacht, und folglich zieht dies diejenigen an, die nach Fehlern in der Programmierung ihrer Open Source suchen.



Lesen Sie weiter >>

Docker auf Ubuntu. Dienst nginx konnte nicht erstellt werden: ADD fehlgeschlagen: stat /var/lib/docker/tmp/docker-builder(;)/startup.sh: keine solche Datei oder ein solches Verzeichnis

Docker in Ubuntu

Manchmal, bei Verwendung von Laradock, Dieser Fehler tritt auf, nachdem Sie einen Containerneuaufbau mit no such file or directory Nachricht auf docker-compose up -d –build nginx Befehl.

Mir ist nicht klar, worum es jetzt geht., aber das Ausführen des Befehls mit sudo, wir können es erfolgreich führen.

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.

Nach dem Bau von Containern mit sudo, ist es möglich, es zu entladen und neu zu laden, ohne sudo.

Servidor de Email –; Teil 4 ; Postfix 3

Teil 1 ; Einrichten von Datei-main.cf

Dies ist der vierte Teil des Prozesses der Erstellung des Mail-Servers in einem CentOS 8 und dem ersten Teil der Postfix-Konfiguration. Wenn Sie durch Zufall hierher gekommen, lesen Sie zuerst eine der folgenden Veröffentlichungen:

Teil 1 ; Installation von Paketen

Teil 2 ; MariaDB-Konfiguration

Teil 3 ; Dovecot-Konfiguration

Postfix ist der wichtigste Teil unseres E-Mail-Servers. Er ist für das Gespräch mit anderen MTAs verantwortlich, damit er E-Mail-Nachrichten empfangen und senden kann, und damit diese kontaktiert werden können, ist es notwendig, dass sie über den Servernamen oder Hostname.



Lesen Sie weiter >>