Debian + Postfix + Dovecot + Multidomain

Articulus hic est quomodo modernorum electronicarum ministrator instituat.
Postfix + Dovecot. SPF + DKIM + rDNS. Apud IPv6.
Apud TSL encryption. Cum auxilio pro pluribus ditionibus - parte cum certificatorio SSL reali.
Cum antispam tutelam et antispam altam aestimationem ab aliis electronicis servientibus.
Multiplices interfaces corporis sustinet.
Cum OpenVPN, connexio cui est via IPv4, et quae praebet IPv6.

Si omnes has technologias discere non vis, sed talem cultorem constituere vis, hic tibi articulus est.

Articulus nullus singulatim exponere conatur. Explicatio accedit ad id quod non configuratur ut vexillum vel magni momenti est ex parte consumerent.

Causam electronicam erigendi somnium meum longum tempus fuit. Hoc stulte sonare potest, sed IMHO, multo melius est quam novi currus somniare de notam dilectionis tuae.

Duae causae sunt ad constituendum IPv6. Artifex IT indiget ut novas technologias constanter discat ut superstes sit. Vellem meam operam modestam ad pugnam contra censuram facere.

Causam erigendi OpenVPN iustum est ut machinam localem in operando IPv6 recipias.
Causa constituendi plures interfaces physicas est quod in servo meo habeo unum medium "tardi sed illimitatum" et alterum "celeriter sed lezdam".

Causam ad constituendum Bind occasus est quod ISP meus servo instabilem DNS praebet, et google etiam interdum deficit. DNS stabulum servo usui personali volo.

Motus scribere articulum - X mensibus ante capturam scripsi, eamque iam bis inspexi. Etiam auctor semper nisi eget, varius magna ipsum eget ipsum.

Nulla est universalis solutio pro servo electronico. Sed experiar aliquid simile "hoc facere et tunc, cum omnia ut oportet opera extra effercio eicio".

Societas tech.ru Colocation ad ministratorem habet. Conferri potest cum OVH, Hetzner, AWS. Ad hanc solvendam quaestionem, cooperatio cum tech.ru multo efficacior erit.

Debian 9 in calculonis servi instituitur.

Minister habet 2 interfaces `eno1` et `eno2`. prima est infinita, et secunda est velocitas respective.

Exstant III staticae IP inscriptiones, XX.XX.XX.X3 et XX.XX.XX.X0 et XX.XX.XX.X1 in `eno2` interface et XX.XX.XX.X1 on the `eno5` interface. .

Available XXXX: XXXX: XXXX: XXXX::/64 piscinam IPv6 inscriptionum quae ad `eno1' interfaciei adscriptae sunt et ex eo XXXX:XXXX:XXXX:XXXX:1:2::/96 ad `eno2' rogatu data est.

Sunt 3 dominia `domain1.com`, `domain2.com`, `domain3.com`. Est testimonium SSL pro `domain1.com` et `domain3.com`.

Ratio rationem habeo ut mailbox cum mea ligare vellem[Inscriptio protected]`(Suscepta epistularum et mittens epistulas rectas a Gmail interface).
Ibi debet esse mailbox`[Inscriptio protected]`, exemplum inscriptionem e qua videre volo in Gmail invenias. Et rarum est quod aliquid mittere possit pro[Inscriptio protected]`per telam interface.

Ibi debet esse mailbox`[Inscriptio protected]`, qua Ivanov utetur ex eius iPhone.

Inscriptiones missae parere debent omnibus requisitis antispam modernis.
Summum gradum encryptionis oportet esse, dummodo in retia publica.
Sit IPv6 subsidium tam mittendis quam recipiendis litteris.
SpamAssassin debet esse quae electronicas numquam delebit. Et vel currentis vel omittitur vel mittet ad folder IMAP "Spam".
SpamAssassin auto- discere configurari debet: si litteras ad Spam folder moveo, ex hoc discet; si litteras ex Spam folder moveo, ex hoc cognoscet. Eventus disciplinae SpamAssassin commovere debet num littera in Spam folder desinat.
Scripta PHP mittere possunt pro quolibet dominio in aliquo servo dato.
Officium sit openvpn, cum facultate uti IPv6 in cliente quod non habet IPv6.

Primum opus est interfaces et fudisset, inter IPv6 configurare.
Tunc OpenVPN configurare debebis, quae per IPv4 coniunget et clientem cum inscriptione static-reali IPv6 praebebit. Hic client accessum habebit ad omnia officia IPv6 in calculonis et accessus ad facultates quasvis IPv6 in Interreti.
Tunc configurare Postfixum debes ut epistolas + SPF + DKIM + rDNS mittas et alia similia parva.
Tunc opus est columbare configurare et Multidomain configurare.
Tunc opus erit SpamAssassin configurare et institutionem configurare.
Denique institue Bind.

============= Multi-interfaces =============

Ad interfaces configurare debes hoc scribere in "/etc/network/interfaces".

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eno1
iface eno1 inet static
        address XX.XX.XX.X0/24
        gateway XX.XX.XX.1
        dns-nameservers 127.0.0.1 213.248.1.6
        post-up ip route add XX.XX.XX.0/24 dev eno1 src XX.XX.XX.X0 table eno1t
        post-up ip route add default via XX.XX.XX.1 table eno1t
        post-up ip rule add table eno1t from XX.XX.XX.X0
        post-up ip rule add table eno1t to XX.XX.XX.X0

auto eno1:1
iface eno1:1 inet static
address XX.XX.XX.X1
netmask 255.255.255.0
        post-up ip rule add table eno1t from XX.XX.XX.X1
        post-up ip rule add table eno1t to XX.XX.XX.X1
        post-up   ip route add 10.8.0.0/24 dev tun0 src XX.XX.XX.X1 table eno1t
        post-down ip route del 10.8.0.0/24 dev tun0 src XX.XX.XX.X1 table eno1t

auto eno1:2
iface eno1:2 inet static
address XX.XX.XX.X2
netmask 255.255.255.0
        post-up ip rule add table eno1t from XX.XX.XX.X2
        post-up ip rule add table eno1t to XX.XX.XX.X2

iface eno1 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:1::/64
        gateway XXXX:XXXX:XXXX:XXXX::1
        up   ip -6 addr add XXXX:XXXX:XXXX:XXXX:1:1:1:1/64 dev $IFACE
        up   ip -6 addr add XXXX:XXXX:XXXX:XXXX:1:1:1:2/64 dev $IFACE
        down ip -6 addr del XXXX:XXXX:XXXX:XXXX:1:1:1:1/64 dev $IFACE
        down ip -6 addr del XXXX:XXXX:XXXX:XXXX:1:1:1:2/64 dev $IFACE

# The secondary network interface
allow-hotplug eno2
iface eno2 inet static
        address XX.XX.XX.X5
        netmask 255.255.255.0
        post-up   ip route add XX.XX.XX.0/24 dev eno2 src XX.XX.XX.X5 table eno2t
        post-up   ip route add default via XX.XX.XX.1 table eno2t
        post-up   ip rule add table eno2t from XX.XX.XX.X5
        post-up   ip rule add table eno2t to XX.XX.XX.X5
        post-up   ip route add 10.8.0.0/24 dev tun0 src XX.XX.XX.X5 table eno2t
        post-down ip route del 10.8.0.0/24 dev tun0 src XX.XX.XX.X5 table eno2t

iface eno2 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:2::/96
        up   ip -6 addr add XXXX:XXXX:XXXX:XXXX:1:2:1:1/64 dev $IFACE
        up   ip -6 addr add XXXX:XXXX:XXXX:XXXX:1:2:1:2/64 dev $IFACE
        down ip -6 addr del XXXX:XXXX:XXXX:XXXX:1:2:1:1/64 dev $IFACE
        down ip -6 addr del XXXX:XXXX:XXXX:XXXX:1:2:1:2/64 dev $IFACE

# OpenVPN network
iface tun0 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:3::/80

Hae uncinis cuilibet servo in tech.ru applicari possunt (cum paulo coordinatione cum auxilio) et statim operantur ut debet.

Si similia pro Hetzner, OVH constituendo expertus es, differt ibi. Difficilius.

eno1 nomen est retis card # I (tardus sed illimitata).
eno2 nomen est card retis #2 (celeriter sed omisso).
tun0 nomen est card retis virtualis ab OpenVPN.
XX.XX.XX.X0 - IPv4 #1 on eno1.
XX.XX.XX.X1 - IPv4 #2 on eno1.
XX.XX.XX.X2 - IPv4 #3 on eno1.
XX.XX.XX.X5 - IPv4 #1 on eno2.
XX.XX.XX.1 - IPv4 porta.
XXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/64 β€” IPv6 pro toto servo.
XXXX:XXXX:XXXX:XXXX:1:2::/96 - IPv6 ad eno2, reliqua omnia extrinsecus in eno1 eunt.
XXXX:XXXX:XXXXXXX:XXXX::1 - IPv6 porta (notandum est aliter hoc fieri posse. IPv6 transitum specificare).
dns-nominatores - 127.0.0.1 indicatur (ob ligamen localiter inauguratus) et 213.248.1.6 (hoc e tech.ru).

"mensa eno1t" et "mensa eno2t" - significatio harum regularum viarum est quod negotiationis introitus per eno1 -> per eam exiturus esset, et negotiatio per eno2 intrans per eam relinqueret. Et etiam hospites a servo initi- turos per eno1.

ip route add default via XX.XX.XX.1 table eno1t

Hoc praecepto definimus ut quaelibet incomprehensibilis negotiatio quae sub quacunque regula "mensa eno1t" -> incidit, ad eno1 interfacem mitteretur.

ip route add XX.XX.XX.0/24 dev eno1 src XX.XX.XX.X0 table eno1t

Hoc praecepto definimus ut quaelibet negotiatio a servo incepta ad eno1 interface dirigatur.

ip rule add table eno1t from XX.XX.XX.X0
ip rule add table eno1t to XX.XX.XX.X0

Cum hoc praecepto regulas constituimus negotiationis signandi.

auto eno1:2
iface eno1:2 inet static
address XX.XX.XX.X2
netmask 255.255.255.0
        post-up ip rule add table eno1t from XX.XX.XX.X2
        post-up ip rule add table eno1t to XX.XX.XX.X2

Hic clausus alterum IPv4 designat pro eno1 interface.

ip route add 10.8.0.0/24 dev tun0 src XX.XX.XX.X1 table eno1t

Hoc mandato iter ab OpenVPN clientibus ad locorum IPv4 praeter XX.XX.XX.X0 constituimus.
Adhuc non intellego cur hoc mandatum omnibus IPv4 satis sit.

iface eno1 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:1::/64
        gateway XXXX:XXXX:XXXX:XXXX::1

Haec oratio pro ipso interface ponitur. Servo illo utetur ut "exitus" electronica. Non iterum ullo modo utendum est.

Cur tam multiplex? Ita ut OpenVPN recte et hoc solum operetur. Plura de hoc postea.

De argumento portae - id est quomodo operatur et bene est. Sed recta via hic indicabit IPv6 transitum, cui servo iungitur.

Tamen aliqua ratione operatur IPv6 si hoc facio. Probabile est hoc genus quaestionis tech.ru.

ip -6 addr add XXXX:XXXX:XXXX:XXXX:1:1:1:1/64 dev $IFACE

Addita inscriptio IPv6 ad interface. Si centum inscriptiones eges, id centum lineas in hoc fasciculo significat.

iface eno1 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:1::/64
...
iface eno2 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:2::/96
...
iface tun0 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:3::/80

Inscriptiones et subnetas omnium instrumentorum notavi ut patefacerem.
eno1 - oportet "/64" - quia haec est tota piscina inscriptionum nostrarum.
tun0 - the subnet must be larger than eno1. Alioquin non poterit porta IPv6 configurare pro clientibus OpenVPN.
eno2 - subnet debet esse maior quam tun0. Alioquin clientes OpenVPN accedere non poterunt inscriptiones locales IPv6.
Ad perspicuitatem, subnet gradum 16 elegi, sed si vis, etiam gradum "1" facere potes.
Proinde 64+16 = 80, et 80+16=96.

Ad maiorem etiam evidentiam;
XXXX:XXXX:XXXX:XXXX:1:1:YYYY:YYY inscriptiones sunt quae certis locis vel officiis in eno1 interfaciei tribui debent.
XXXX:XXXX:XXXX:XXXX:1:2:YYYY:YYY inscriptiones sunt quae certis locis vel officiis in eno2 interfaciei tribui debent.
XXXX:XXXX:XXXX:XXXX:1:3:YYYY:YYY inscriptiones sunt quae clientibus OpenVPN tribuendae sunt vel ut electronicae servitutis OpenVPN adhibentur.

Configurare retiaculum, fieri potest ut sileo calculonis servi.
Mutationes IPv4 sublatae sunt cum exsecutioni mandandae (vide illud in tegumentum involvere - aliter hoc mandatum retis in calculonis simpliciter fragore);

/etc/init.d/networking restart

Adde ad finem tabellae "/etc/iproute2/rt_tables":

100 eno1t
101 eno2t

Sine hac consuetudine tabularum in fasciculo "/etc/network/interfaces" uti non potes.
Numeri singulares et minores esse debent 65535.

IPv6 mutationes facile sine rebouatione mutari possunt, sed hoc facere debes tria praecepta saltem discere;

ip -6 addr ...
ip -6 route ...
ip -6 neigh ...

Profecta "/etc/sysctl.conf"

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward = 1

# Do not accept ICMP redirects (prevent MITM attacks)
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0

# Do not send ICMP redirects (we are not a router)
net.ipv4.conf.all.send_redirects = 0

# For receiving ARP replies
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.default.arp_filter = 0

# For sending ARP
net.ipv4.conf.all.arp_announce = 0
net.ipv4.conf.default.arp_announce = 0

# Enable IPv6
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0

# IPv6 configuration
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.accept_ra = 0

# For OpenVPN
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.all.proxy_ndp = 1

# For nginx on boot
net.ipv6.ip_nonlocal_bind = 1

Hae sunt occasus servi mei "sysctl". Ostendam mihi aliquid momenti.

net.ipv4.ip_forward = 1

Sine hoc, OpenVPN non laborabit.

net.ipv6.ip_nonlocal_bind = 1

Quicunque IPv6 (exempli gratia nginx ligare tentat) statim post interfaciem est, errorem recipiet. Haec inscriptio praesto non est.

Ne talis locus sit, talis institutio fit.

net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.all.proxy_ndp = 1

Sine his IPv6 occasus, negotiatio ab OpenVPN cliente in mundum non egreditur.

Ceterae occasus vel non sunt ad propositum, vel quales sint, non memini.
Sed si modo, id permitto "ut".

Ut mutationes huius fasciculi sine servo reboante sustulerunt, mandatum currere debes:

sysctl -p

Plura praecepta de "mensa": habr.com/post/108690

============= OpenVPN =============

OpenVPN IPv4 sine iptables non operatur.

My iptables are like this for VPN:

iptables -A INPUT -p udp -s YY.YY.YY.YY --dport 1194 -j ACCEPT
iptables -A FORWARD -i tun0 -o eno1 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eno1 -j SNAT --to-source XX.XX.XX.X0
##iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eno1 -j MASQUERADE
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j DROP
iptables -A FORWARD -p udp --dport 1194 -j DROP

YY.YY.YY.YY est oratio mea static IPv4 machinae localis.
10.8.0.0/24 - IPv4 openvpn retis. IPv4 oratio pro clientibus openvpn.
Constantia regularum magni momenti est.

iptables -A INPUT -p udp -s YY.YY.YY.YY --dport 1194 -j ACCEPT
iptables -A FORWARD -i tun0 -o eno1 -j ACCEPT
...
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j DROP
iptables -A FORWARD -p udp --dport 1194 -j DROP

Circumscriptio haec est ut OpenVPN ex statice IP modo uti possim.

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eno1 -j SNAT --to-source XX.XX.XX.X0
  -- ΠΈΠ»ΠΈ --
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eno1 -j MASQUERADE

Ad fasciculos IPv4 transmittere inter clientes OpenVPN et interreti, necesse est ut unum horum mandatorum subscribas.

Pro diversis casibus unus bene non convenit.
Utrumque ad causam meam apta sunt mandata.
Lectis documentis, optionem primam elegi quia CPU minus utitur.

Ut omnes iptables occasus post reboot sustulerunt, debes alicubi servare.

iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

Talia nomina non fortuito lecta sunt. Adhibentur sarcina per "iptables-pertinax".

apt-get install iptables-persistent

Pelagus OpenVPN sarcina installing:

apt-get install openvpn easy-rsa

Let's set up a templates for libellos (supponere your values):

make-cadir ~/openvpn-ca
cd ~/openvpn-ca
ln -s openssl-1.0.0.cnf openssl.cnf

Lets edit libellum template occasus:

mcedit vars

...
# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="RU"
export KEY_PROVINCE="Krasnodar"
export KEY_CITY="Dinskaya"
export KEY_ORG="Own"
export KEY_EMAIL="[email protected]"
export KEY_OU="VPN"

# X509 Subject Field
export KEY_NAME="server"
...

Creare servo libellum:

cd ~/openvpn-ca
source vars
./clean-all
./build-ca
./build-key-server server
./build-dh
openvpn --genkey --secret keys/ta.key

Praeparet facultatem ad extremum "clientem-name.opvn" files creandi:

mkdir -p ~/client-configs/files
chmod 700 ~/client-configs/files
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
mcedit ~/client-configs/base.conf

# Client mode
client

# Interface tunnel type
dev tun

# TCP protocol
proto tcp-client

# Address/Port of VPN server
remote XX.XX.XX.X0 1194

# Don't bind to local port/address
nobind

# Don't need to re-read keys and re-create tun at restart
persist-key
persist-tun

# Remote peer must have a signed certificate
remote-cert-tls server
ns-cert-type server

# Enable compression
comp-lzo

# Custom
ns-cert-type server
tls-auth ta.key 1
cipher DES-EDE3-CBC

Scriptum praeparemus quod omnia fasciculi in unum opvn confundentur.

mcedit ~/client-configs/make_config.sh
chmod 700 ~/client-configs/make_config.sh

#!/bin/bash

# First argument: Client identifier

KEY_DIR=~/openvpn-ca/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf

cat ${BASE_CONFIG} 
    <(echo -e '<ca>') 
    ${KEY_DIR}/ca.crt 
    <(echo -e '</ca>n<cert>') 
    ${KEY_DIR}/.crt 
    <(echo -e '</cert>n<key>') 
    ${KEY_DIR}/.key 
    <(echo -e '</key>n<tls-auth>') 
    ${KEY_DIR}/ta.key 
    <(echo -e '</tls-auth>') 
    > ${OUTPUT_DIR}/.ovpn

Primum OpenVPN clientem creando:

cd ~/openvpn-ca
source vars
./build-key client-name
cd ~/client-configs
./make_config.sh client-name

Tabella "~/client-configs/files/client-name.ovpn" mittitur ad huius consilium.

Pro clientibus iOS opus est facere stropha sequenti:
Contentum "tls-auth" commentis carere debet.
Atque etiam "directionem key-1" statim ante tag "tls-auth" posuit.

Lets configurare OpenVPN servo aboutconfig:

cd ~/openvpn-ca/keys
cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | tee /etc/openvpn/server.conf
mcedit /etc/openvpn/server.conf

# Listen port
port 1194

# Protocol
proto tcp-server

# IP tunnel
dev tun0
tun-ipv6
push tun-ipv6

# Master certificate
ca ca.crt

# Server certificate
cert server.crt

# Server private key
key server.key

# Diffie-Hellman parameters
dh dh2048.pem

# Allow clients to communicate with each other
client-to-client

# Client config dir
client-config-dir /etc/openvpn/ccd

# Run client-specific script on connection and disconnection
script-security 2
client-connect "/usr/bin/sudo -u root /etc/openvpn/server-clientconnect.sh"
client-disconnect "/usr/bin/sudo -u root /etc/openvpn/server-clientdisconnect.sh"

# Server mode and client subnets
server 10.8.0.0 255.255.255.0
server-ipv6 XXXX:XXXX:XXXX:XXXX:1:3::/80
topology subnet

# IPv6 routes
push "route-ipv6 XXXX:XXXX:XXXX:XXXX::/64"
push "route-ipv6 2000::/3"

# DNS (for Windows)
# These are OpenDNS
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

# Configure all clients to redirect their default network gateway through the VPN
push "redirect-gateway def1 bypass-dhcp"
push "redirect-gateway ipv6" #For iOS

# Don't need to re-read keys and re-create tun at restart
persist-key
persist-tun

# Ping every 10s. Timeout of 120s.
keepalive 10 120

# Enable compression
comp-lzo

# User and group
user vpn
group vpn

# Log a short status
status openvpn-status.log

# Logging verbosity
##verb 4

# Custom config
tls-auth ta.key 0
cipher DES-EDE3-CBC

Hoc opus est ut oratio stabilis pro unoquoque cliente constituatur (non necessaria, sed ea utar);

# Client config dir
client-config-dir /etc/openvpn/ccd

Difficillima et clavis praecipua.

Infeliciter, OpenVPN nondum scit quomodo se extra ianuam clientium IPv6 configurare.
Vos "manualiter" hoc pro quolibet cliente proferre.

# Run client-specific script on connection and disconnection
script-security 2
client-connect "/usr/bin/sudo -u root /etc/openvpn/server-clientconnect.sh"
client-disconnect "/usr/bin/sudo -u root /etc/openvpn/server-clientdisconnect.sh"

Fasciculus "/etc/openvpn/server-clientconnect.sh":

#!/bin/sh

# Check client variables
if [ -z "$ifconfig_pool_remote_ip" ] || [ -z "$common_name" ]; then
        echo "Missing environment variable."
        exit 1
fi

# Load server variables
. /etc/openvpn/variables

ipv6=""

# Find out if there is a specific config with fixed IPv6 for this client
if [ -f "/etc/openvpn/ccd/$common_name" ]; then
        # Get fixed IPv6 from client config file
        ipv6=$(sed -nr 's/^.*ifconfig-ipv6-push[ t]+([0-9a-fA-F:]+).*$/1/p' "/etc/openvpn/ccd/$common_name")
        echo $ipv6
fi

# Get IPv6 from IPv4
if [ -z "$ipv6" ]; then
        ipp=$(echo "$ifconfig_pool_remote_ip" | cut -d. -f4)
        if ! [ "$ipp" -ge 2 -a "$ipp" -le 254 ] 2>/dev/null; then
                echo "Invalid IPv4 part."
                exit 1
        fi
        hexipp=$(printf '%x' $ipp)
        ipv6="$prefix$hexipp"
fi

# Create proxy rule
/sbin/ip -6 neigh add proxy $ipv6 dev eno1

Fasciculus "/etc/openvpn/server-clientdisconnect.sh":

#!/bin/sh

# Check client variables
if [ -z "$ifconfig_pool_remote_ip" ] || [ -z "$common_name" ]; then
        echo "Missing environment variable."
        exit 1
fi

# Load server variables
. /etc/openvpn/variables

ipv6=""

# Find out if there is a specific config with fixed IPv6 for this client
if [ -f "/etc/openvpn/ccd/$common_name" ]; then
        # Get fixed IPv6 from client config file
        ipv6=$(sed -nr 's/^.*ifconfig-ipv6-push[ t]+([0-9a-fA-F:]+).*$/1/p' "/etc/openvpn/ccd/$common_name")
fi

# Get IPv6 from IPv4
if [ -z "$ipv6" ]; then
        ipp=$(echo "$ifconfig_pool_remote_ip" | cut -d. -f4)
        if ! [ "$ipp" -ge 2 -a "$ipp" -le 254 ] 2>/dev/null; then
                echo "Invalid IPv4 part."
                exit 1
        fi
        hexipp=$(printf '%x' $ipp)
        ipv6="$prefix$hexipp"
fi

# Delete proxy rule
/sbin/ip -6 neigh del proxy $ipv6 dev eno1

Utraque scripta tabella "/etc/openvpn/variabilium" utuntur:

# Subnet
prefix=XXXX:XXXX:XXXX:XXXX:2:
# netmask
prefixlen=112

Haud facile memini cur ita scriptum sit.

Nunc netmask = 112 aspicit alienos (ibi recte 96 debet).
Praeverbium mirum est, tun0 ornatum non congruit.
Sed bene, ut sit relinquam.

cipher DES-EDE3-CBC

Hoc non omnibus est - hunc modum nexus encrypting elegi.

Plus discere de instauratione OpenVPN IPv4.

Plus discere de instauratione OpenVPN IPv6.

============= Postfix =============

Pelagus sarcina installing:

apt-get install postfix

Cum insertis, elige "site penitus".

Meum "/etc/postfix/main.cf" sic spectat:

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

readme_directory = no

# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/domain1.com.2018.chained.crt
smtpd_tls_key_file=/etc/ssl/domain1.com.2018.key
smtpd_use_tls=yes
smtpd_tls_auth_only = yes
smtp_bind_address = XX.XX.XX.X0
smtp_bind_address6 = XXXX:XXXX:XXXX:XXXX:1:1:1:1

smtp_tls_security_level = may
smtp_tls_ciphers = export
smtp_tls_protocols = !SSLv2, !SSLv3
smtp_tls_loglevel = 1

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = domain1.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = domain1.com
mydestination = localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4

internal_mail_filter_classes = bounce

# Storage type
virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

# SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
        permit_sasl_authenticated,
        permit_mynetworks,
        #reject_invalid_hostname,
        #reject_unknown_recipient_domain,
        reject_unauth_destination,
        reject_rbl_client sbl.spamhaus.org,
        check_policy_service unix:private/policyd-spf

smtpd_helo_restrictions =
        #reject_invalid_helo_hostname,
        #reject_non_fqdn_helo_hostname,
        reject_unknown_helo_hostname

smtpd_client_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated,
        reject_non_fqdn_helo_hostname,
        permit

# SPF
policyd-spf_time_limit = 3600

# OpenDKIM
milter_default_action = accept
milter_protocol = 6
smtpd_milters = unix:var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock

# IP address per domain
sender_dependent_default_transport_maps = pcre:/etc/postfix/sdd_transport.pcre

Intueamur singula huius config.

smtpd_tls_cert_file=/etc/ssl/domain1.com.2018.chained.crt
smtpd_tls_key_file=/etc/ssl/domain1.com.2018.key

Secundum Khabrovsk incolas, hic clausus "misinformationes et theses falsas continet".Tantum VIII annis post initium vitae meae feci intelligere incepi quomodo SSL opera.

Ideo libertatem describendi accipiam quomodo SSL utendi (sine interrogationibus "quid operatur?" et "Quid operatur?"

Fundamentum encryptionis recentioris est creatio clavis par (duobus chordis longissimis characterum).

Una "clavis" est privata, altera clavis "publica". Clavem privatam diligentissime secreta servamus. Clavem publicam omnibus distribuimus.

Clavem publicam utens, chorda textus encrypt potes ut solus dominus clavis privatis minui possit.
Integer id ex a velit.

Gradus #1 - https sites.
Cum accessu addendum, navigatrum ex servo interretiali discit situm esse https et propterea clavem publicam postulare.
Servo telae clavem publicam dat. Navicula publica clavis utitur ad encryptas http-petitionem et eam mitte.
Contentum petitionis solum legi possunt ab iis qui clavem privatam habent, id est, solum servo cui petitur.
Petitio saltem continet Http-URI. Si ergo terra accessum restringere conatur non ad totum locum, sed ad certam paginam, hoc in locis https facere impossibile est.

Gradus #2 - responsio encrypted.
Servo telae responsum praebet quod facile in via legi potest.
Solutio perquam simplex - navigatrum localiter clavem privatam-publicam pro singulis https site generat.
Et una cum rogatu clavem publici situs eius loci clavem publicam emittit.
Tela servi eius meminit et, cum http-responsionem mittens, eam encryptas cum clave publica clientis cuiusdam.
Nunc http-responsio nonnisi decrypta potest a possessore navigatoris huius clavem privatam (id est ipsius clientis).

Gradus N. III - Connexionem securam per canalem publicam constituendum.
Extat vulnerabilitas in exemplo N. 2. - nihil prohibet benivolentes quominus informationem http-petitionem et edendam de clave publica intercludant.
Ita, medius clare perspiciet omnia contenta nuntiis missis et acceptis donec communicationis canalis mutationes.
Cum hoc perquam simplex est - modo mitte clavis publica navigatoris ut nuntium encryptatum cum clave publica server in tela.
Servo interreti tunc primum responsum mittit sicut "clavis publica tua talis est" et hoc nuntium encryptis cum eadem clavis publica.
Respectum navigatri responsionis spectat - si nuntius "clavis publicus tuus talis est", recipitur - tunc hoc pignus est C% hunc canalem communicativum securum esse.
Quam tutum est?
Ipsa creatio canalis communicationis tam securae in celeritate ping*2. Exempli gratia 20ms.
Percussor clavem privatam partium in antecessum habere debet. Vel clavem privatam in duobus milliseconds invenire.
Hacking una moderna clavis privata decennia supercomputatum tollet.

Gradus #4 - publica datorum publicarum clavium.
Patet in hac tota historia opportunitas oppugnatoris sedendi in canali communicationis inter clientem et ministratorem.
Cliens simulare se potest servo, et servo simulare se esse clientem. Aemulare par clavium in utramque partem.
Tunc oppugnator omnem negotiationem videbit et negotiationem "recensere" poterit.
Exempli causa, mutare inscriptionem ubi mittere pecuniam vel tesseram ex online fretus vel scandalum imitari "obiecturus" contentus.
Ad tales oppugnatores pugnare, accesserunt cum datorum publicorum clavibus publicis pro cuiusque situ.
Quisque navigatrum "novit" de exsistentia circiter 200 talis databases. Hoc pre-institutum in omni navigatro venit.
"Scientia" a clave publica inter libellum subnixum est. Hoc est, nexus ad unumquemque certificationem specificam auctoritatem ementiri non potest.

Nunc est simplex intellectus quomodo uti SSL pro https.
Si cerebro uteris, patebit quomodo peculiaria officia in hac structura aliquid caedere possint. Sed magno labore.
Minores quam NSA vel CIA instituta - fieri fere impossibile est ut exsistentem tutelae gradum trucidare possit, etiam pro VIPs.

Addam etiam circa nexus ssh. Nullae ibi claves publicae sunt, ut quid facias? Quaestio duobus modis solvitur.
Option ssh-by-password:
Per primam connexionem, client ssh monere debet nos novam clavem publicam e servo ssh habere.
Et in ulterioribus coniunctionibus, si monitio "novae clavem publici a servo ssh" comparuerit, significabit se in te aucupari conari.
Vel auscultatus es in primo nexu, nunc cum ministro sine mediis communicas.
Revera, ex eo quod faciliter, cito et sine labore manifestatur, oppugnatio in casibus specialibus tantum pro certo cliente ponitur.

Option ssh-by-key:
Coegi mico accipimus, clavem privatam scribe pro servo ssh in eo (sunt verba et multum momenti pro hoc nuances, sed programmatum institutorium scribo, non usus instructionum).
Clavem publicam in machina relinquimus ubi cliens ssh erit et nos etiam occultam servamus.
Flash pellatur ministranti, inserere, clavis privatam effingere, ac mico pellere ac cinerem vento spargere (vel saltem cum cyphras formare).
Ista omnia - post talem operationem impossibile erit talem nexum ssh caedere. Nimirum per 10 annos poterit inspicere negotiationem supercomputatorem - sed quod alia fabula est.

Paenitet me offtopic.

Nunc igitur ut ratio cognoscatur. Dicam tibi de fluxu creandi libellum SSL.

Usura "openssl genrsa" privatum clavem et "blank" creamus pro clavis publica.
"blank" ad tertiam partem societatis mittimus, cui proxime $9 testimonium simplicissimum reddimus.

Post duas horas clavem nostram "publicam" accipimus et nonnullarum publicarum clavium statutum ex hac tertia factione societate accipimus.

Cur tertia pars societas solvet in clavibus publici notationis mee separatum est quaestio, hic non consideramus.

Nunc quid sensus inscriptionis sit manifestum est:

smtpd_tls_key_file=/etc/ssl/domain1.com.2018.key

Folder "/etc/ssl" continet omnia tabularia pro exitibus ssl.
domain1.com - domain nomen.
MMXVIII annus creationis clavis est.
"clavem" - designatio tabella clavis privata est.

Et significatio huius fasciculi:

smtpd_tls_cert_file=/etc/ssl/domain1.com.2018.chained.crt
domain1.com - domain nomen.
MMXVIII annus creationis clavis est.
catenatus - designatio est catena clavium publicarum (prima est nostra clavis publica et reliquae sunt quae e societate quae clavis publica edita est).
ert - designatio est libellum promptum factum (clavem publicam cum explicationibus technicis).

smtp_bind_address = XX.XX.XX.X0
smtp_bind_address6 = XXXX:XXXX:XXXX:XXXX:1:1:1:1

Hic occasus non in hoc casu usus est, sed in exemplum scriptum est.

Quia error in hoc parametro ducet ut spamma missa a servo tuo (sine voluntate tua).

Tunc probate omnes vos non esse nocentes.

recipient_delimiter = +

Multi homines scire non possunt, sed hoc signum est character pro electronicis notis et a plerisque recentioribus electronicis servientibus confirmatur.

Exempli gratia, si mailbox habes "[Inscriptio protected]"Conare mittens ad"[Inscriptio protected]Β» β€” vide quid evenit.

inet_protocols = ipv4

Hoc posset confundere.

Sed non ipsum justo. Quaelibet nova regio ab IPv4 tantum defalta est, deinde in IPv6 pro singulis separatim verto.

virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

Hic denotamus omnes epistulas epistulas in columbarium ire.
Et regulas pro dominio, mailbox, alias - in datorum respiciunt.

/etc/postfix/mysql-virtual-mailbox-domains.cf

user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = servermail
query = SELECT 1 FROM virtual_domains WHERE name='%s'

/etc/postfix/mysql-virtual-mailbox-maps.cf

user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = servermail
query = SELECT 1 FROM virtual_users WHERE email='%s'

/etc/postfix/mysql-virtual-alias-maps.cf

user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = servermail
query = SELECT destination FROM virtual_aliases WHERE source='%s'

# SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

Nunc postfix scit litteras epistulas recipi posse pro ulteriore mittens modo cum licentia cum columbaria.

Vere non intellego cur hoc hic duplicetur. Iam omnia quae in "virtual_transport" necessaria sunt, iam diximus.

Sed systema postfixum valde vetus est - verisimile est throw back from the old days.

smtpd_recipient_restrictions =
        ...

smtpd_helo_restrictions =
        ...

smtpd_client_restrictions =
        ...

Hoc aliter configurari potest pro servo cuiusque epistularum.

Servitores epistularum 3 habeo pro arbitrio meo et hae occasus valde diversae sunt ob diversitatem usus requisitorum.

Illud diligenter configurare debes β€” alioquin infundam tibi spam, vel etiam peius β€” spam a te effundam.

# SPF
policyd-spf_time_limit = 3600

Profecti sunt aliquot plugin pertinentes ad reprimendam SPF litteras advenientis.

# OpenDKIM
milter_default_action = accept
milter_protocol = 6
smtpd_milters = unix:var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock

Occasus est ut subscriptionem DKIM cum omnibus emissis elocutionibus praebere debeamus.

# IP address per domain
sender_dependent_default_transport_maps = pcre:/etc/postfix/sdd_transport.pcre

Haec clavis est singillatim in litteris excitandis cum litteras ab PHP scriptoribus mittens.

Fasciculus "/etc/postfix/sdd_transport.pcre":

/^[email protected]$/ domain1:
/^[email protected]$/ domain2:
/^[email protected]$/ domain3:
/@domain1.com$/             domain1:
/@domain2.com$/             domain2:
/@domain3.com$/             domain3:

In laevo are regular expressions. In dextro est titulus, qui litteram notat.
Postfixi secundum pittacium - paucas lineas configurationis pro litteris certae rationem habebis.

Quam exacte postfixo refigurabitur pro litteris certis, in "dominum.cf" indicabitur.

Lineae 4, 5, 6 praecipuae sunt. Pro qua regione mittimus epistolam, hunc pittacium ponimus.
Sed "ex" ager non semper in PHP scriptoribus in antiquo codice indicatur. Tum nomen usoris succurrit.

Articulus amplus iam est - Nolo distrahi nginx+fpm constituendo.

Breviter pro unoquoque situ possessorem suum linux-usorem constituimus. Ac proinde fpm-stagnum tuum.

Fpm-pool aliqua versione php utitur (magnum est cum in eodem servo uti potes diversis versionibus php et etiam diversis php.ini pro locis finitimis sine problematibus).

Ita specifica linux-usoris "www-domain2" locum domicilii2.com habet. Hic situs codicem habet ut electronicas mittat sine ratione agrorum.

Ita etiam hoc casu recte litterae mittentur et numquam in spam finientur.

Meus "/etc/postfix/master.cf" hoc spectat sic:

...
smtp      inet  n       -       y       -       -       smtpd
  -o content_filter=spamassassin
...
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
...
policyd-spf  unix  -       n       n       -       0       spawn
    user=policyd-spf argv=/usr/bin/policyd-spf

spamassassin unix -     n       n       -       -       pipe
    user=spamd argv=/usr/bin/spamc -f -e
    /usr/sbin/sendmail -oi -f ${sender} ${recipient}
...
domain1  unix -       -       n       -       -       smtp
   -o smtp_bind_address=XX.XX.XX.X1
   -o smtp_helo_name=domain1.com
   -o inet_protocols=all
   -o smtp_bind_address6=XXXX:XXXX:XXXX:XXXX:1:1:1:1
   -o syslog_name=postfix-domain1

domain2  unix -       -       n       -       -       smtp
   -o smtp_bind_address=XX.XX.XX.X5
   -o smtp_helo_name=domain2.com
   -o inet_protocols=all
   -o smtp_bind_address6=XXXX:XXXX:XXXX:XXXX:1:2:1:1
   -o syslog_name=postfix-domain2

domain3  unix -       -       n       -       -       smtp
   -o smtp_bind_address=XX.XX.XX.X2
   -o smtp_helo_name=domain3
   -o inet_protocols=all
   -o smtp_bind_address6=XXXX:XXXX:XXXX:XXXX:1:1:5:1
   -o syslog_name=postfix-domain3

Tabella non plena est - iam maxima est.
Tantum notavi quid mutatum sit.

smtp      inet  n       -       y       -       -       smtpd
  -o content_filter=spamassassin
...
spamassassin unix -     n       n       -       -       pipe
    user=spamd argv=/usr/bin/spamc -f -e
    /usr/sbin/sendmail -oi -f ${sender} ${recipient}

Hae occasus ad spamassasin pertinentes sunt, plura postea.

submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

Patimus te coniungere cum servo electronico per portum 587 .
Hoc facere debes inire.

policyd-spf  unix  -       n       n       -       0       spawn
    user=policyd-spf argv=/usr/bin/policyd-spf

Admitte SPF reprehendo.

apt-get install postfix-policyd-spf-python

Lets install the package for SPF checks above.

domain1  unix -       -       n       -       -       smtp
   -o smtp_bind_address=XX.XX.XX.X1
   -o smtp_helo_name=domain1.com
   -o inet_protocols=all
   -o smtp_bind_address6=XXXX:XXXX:XXXX:XXXX:1:1:1:1
   -o syslog_name=postfix-domain1

Et hoc maxime interest. Haec facultas est litteras mittere pro dominio specifico ex inscriptione propria IPv4/IPv6.

Hoc fit propter rDNS. rDNS est processus recipiendi filo ab IP oratio.
Et ad epistulas, haec linea ad confirmandum helo rDNS inscriptionis prorsus congruit, e qua electronica missa est.

Si helo non congruit dominii electronici pro quo litterae missae sunt, puncta spamma donantur.

Helo rDNS non congruit - multa puncta spamma promittuntur.
Quocirca unaquaeque domain suam IP oratio habere debet.
Nam OVH - in console rDNS exprimere potest.
Nam tech.ru - res per auxilium resolvitur.
For AWS, quaestio per auxilium resolvitur.
"inet_protocols" et "smtp_bind_address6" - IPv6 auxilium dabimus.
Nam IPv6 etiam debes rDNS mandare.
"syslog_name" - et hoc est per otium ligna legendi.

Buy libellos Commendo hic.

Prorectum postfix+dovecot link hic.

Profecta SPF.

============= Dovecot =============

apt-get install dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql dovecot-antispam

Mysql erigere, se fasciculis insertis.

Fasciculus "/etc/dovecot/conf.d/10-auth.conf"

disable_plaintext_auth = yes
auth_mechanisms = plain login

Auctoritas solum encrypted.

Fasciculus "/etc/dovecot/conf.d/10-mail.conf"

mail_location = maildir:/var/mail/vhosts/%d/%n

Hic locum tabularium litterarum indicamus.

Eos in scriniis condi et ab dominio conglobatos esse volo.

Fasciculus "/etc/dovecot/conf.d/10-master.conf"

service imap-login {
  inet_listener imap {
    port = 0
  }
  inet_listener imaps {
    address = XX.XX.XX.X1, XX.XX.XX.X2, XX.XX.XX.X5, [XXXX:XXXX:XXXX:XXXX:1:1:1:1], [XXXX:XXXX:XXXX:XXXX:1:2:1:1], [XXXX:XXXX:XXXX:XXXX:1:1:5:1]
    port = 993
    ssl = yes
  }
}
service pop3-login {
  inet_listener pop3 {
    port = 0
  }
  inet_listener pop3s {
    address = XX.XX.XX.X1, XX.XX.XX.X2, XX.XX.XX.X5, [XXXX:XXXX:XXXX:XXXX:1:1:1:1], [XXXX:XXXX:XXXX:XXXX:1:2:1:1], [XXXX:XXXX:XXXX:XXXX:1:1:5:1]
    port = 995
    ssl = yes
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }
}
service imap {
}
service pop3 {
}
service auth {
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
  }

  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }
  user = dovecot
}
service auth-worker {
  user = vmail
}
service dict {
  unix_listener dict {
  }
}

Haec fasciculus columbarii principalis est.
Hic nos hospites disables unsecured.
Securos hospites efficiat.

Fasciculus "/etc/dovecot/conf.d/10-ssl.conf"

ssl = required
ssl_cert = </etc/nginx/ssl/domain1.com.2018.chained.crt
ssl_key = </etc/nginx/ssl/domain1.com.2018.key
local XX.XX.XX.X5 {
  ssl_cert = </etc/nginx/ssl/domain2.com.2018.chained.crt
  ssl_key =  </etc/nginx/ssl/domain2.com.2018.key
}

Erigendum ssl. indicamus quod ssl desideratur.
Quisque ac ipsum ante. Et magni momenti proprietas est directiva "loci". Indicatur SSL certificatorium quo loci IPv4.

Viam hic IPv6 non configuratur, hanc omissionem postea emendabo.
XX.XX.XX.X5 (domain2) β€” nullum libellum. Coniungere clientes debes specificare domain1.com.
XX.XX.XX.X2 (domain3) est testimonium, vos specificare potestis domain1.com vel domain3.com clientibus coniungere.

Fasciculus "/etc/dovecot/conf.d/15-lda.conf"

protocol lda {
  mail_plugins = $mail_plugins sieve
}

Hoc spamassassin in futurum opus erit.

Fasciculus "/etc/dovecot/conf.d/20-imap.conf"

protocol imap {
  mail_plugins = $mail_plugins antispam
}

Hoc est antispam plugin. Opus ad spamassasin instituendam tempore translationis ad / a folder "Spam".

Fasciculus "/etc/dovecot/conf.d/20-pop3.conf"

protocol pop3 {
}

Lima talis est.

Fasciculus "/etc/dovecot/conf.d/20-lmtp.conf"

protocol lmtp {
  mail_plugins = $mail_plugins sieve
  postmaster_address = [email protected]
}

Erexit lmtp.

Fasciculus "/etc/dovecot/conf.d/90-antispam.conf"

plugin {
  antispam_backend = pipe
  antispam_trash = Trash;trash
  antispam_spam = Junk;Spam;SPAM
  antispam_pipe_program_spam_arg = --spam
  antispam_pipe_program_notspam_arg = --ham
  antispam_pipe_program = /usr/bin/sa-learn
  antispam_pipe_program_args = --username=%Lu
}

Spamassasin institutio occasus tempore translationis ad/e Saginatio folder.

Fasciculus "/etc/dovecot/conf.d/90-sieve.conf"

plugin {
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
  sieve_after = /var/lib/dovecot/sieve/default.sieve
}

Fasciculus qui significat quid faciendum sit cum litteris advenientis.

Fasciculus "/var/lib/dovecot/sieve/default.sieve"

require ["fileinto", "mailbox"];

if header :contains "X-Spam-Flag" "YES" {
        fileinto :create "Spam";
}

Te necesse tabellam ordinare: "Sievec default.sieve".

Fasciculus "/etc/dovecot/conf.d/auth-sql.conf.ext"

passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}

Sql files specificando pro licentia.
Proin ac ipsum ut est accumsan auctor.

Fasciculus "/etc/dovecot/dovecot-sql.conf.ext"

driver = mysql
connect = host=127.0.0.1 dbname=servermail user=usermail password=password
default_pass_scheme = SHA512-CRYPT
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

Hic similis occasus respondet pro postfixo.

Fasciculus "/etc/dovecot/dovecot.conf"

protocols = imap lmtp pop3
listen = *, ::
dict {
}
!include conf.d/*.conf
!include_try local.conf

Configurationis principalis fasciculus.
Refert, quod hic indicamus - protocolla add.

============= SpamAssassin ================

apt-get install spamassassin spamc

Let's install the packages.

adduser spamd --disabled-login

Addamus usorem pro cuius nomine.

systemctl enable spamassassin.service

Spamassassin ministerium auto-loading in oneratione dabimus.

Fasciculus "/etc/default/spamassassin":

CRON=1

Per adaequationis regulas "per defaltam".

Fasciculus "/etc/spamassassin/local.cf":

report_safe 0

use_bayes          1
bayes_auto_learn   1
bayes_auto_expire  1
bayes_store_module Mail::SpamAssassin::BayesStore::MySQL
bayes_sql_dsn      DBI:mysql:sa:localhost:3306
bayes_sql_username sa
bayes_sql_password password

Vos postulo ut creare database "sa" in mysql cum utentis "sa" cum tessera "password" (repone cum aliquo congruenti).

report_safe - haec relationem epistulae spam electronicae mittet.
use_bayes sunt spamassassin apparatus discendi occasus.

Reliquae uncinis spamassassin antea in articulo adhibitae sunt.

General occasus "spamassassin".
De novis Spamma emails movere ad IMAP "Spamma" folder.
Simplex coniunctio e Dovecot + SpamAssassin.
Commendo legendi spamassasin doctrina discendi cum litteris in imap folders (et non suadeo utendo).

============= Appellatio ad Communitatem =============

Volumus etiam ideam in communitate mittere quomodo augere gradum securitatis litterarum transmissarum. Cum tam alte immersus sum in themate epistularum.

Ut user creare potest par clavium in cliente suo (obspectus, thunderbird, browser-plugin, ...). PVBLICA ET PRIVATA. PUBLIC - DNS mittere. Privatus β€” nisi in cliente. Servatores tabellarii clavis publica uti possint ad certum recipiens mittere.

Et contra spam cum talibus litteris custodire (sic, servo epistularum contentum videre non poteris) - 3 regulas introducere debes:

  1. Mandatoria realia DKIM subscriptio, mandatarius SPF, mandatarius rDNS.
  2. Reticulum neurale in subiecto antispam disciplinae + database pro eo in latere clientis.
  3. Algorithmus encryption talis esse debet ut latus mittens 100 pluries CPU potestatem in encryptione quam partem accipiendi expendere debet.

Praeter litteras publicas, rogatio normae explicandae est ut litterae "securae correspondentiae incipiant." Unus usorum (mailbox) epistulam mittit cum affectu ad alterum mailbox. Litterae propositionem textus continet ut securam canalem communicationis incipiant ad correspondentiam et clavem publicam possessoris mailbox (cum clavis privatis in parte clientis).

Etiam duas claves specialiter pro unaquaque correspondentia facere potes. Usor recipiens hanc oblationem accipere potest et clavem publicam suam mittere (etiam nominatim pro hac correspondentia facta). Deinceps, primus usor munus mittit litteras potestates (encryptas cum clave publica secundi usoris) in acceptis quorum secundus user usor formatos canalem communicationis habere certos potest. Deinceps, secundus usor imperium litteras mittit - ac deinde primus usor etiam canalem formatam considerare potest.

Ad interceptionem clavium in via pugnandum, protocollum praebere debet facultatem tradendi saltem unam clavem publicam utendi mico coegi.

Maximeque est omnia opera (quaestio est "quis dabit pro ea?"
Intrant testimoniales praesentes incipientes a $10 pro 3 annis. Quod mittenti indicare permittit in dns claves publicae meae illic esse. Et dabunt vobis facultatem iunctim ordiendi. Eodem tempore hospites talem accipientes liberum est.
Gmail tandem monetizing suos utentes. Pro $10 per 3 annos - ius ad sanandas vias correspondentias creandi.

============= Conclusio =============

Ut totum articulum probes, Ibam servo dedicato per mensem conducere et emam emere cum libello SSL.

Sed vitae rerum adiunctis ita perducta est haec quaestio per 2 menses.
Itaque, cum iterum vacaret, statui articulum evulgare, quam periculum esset ne publicatio in alium annum protraheret.

Si satis multae interrogationes sunt sicut "sed hoc non satis explicate", tunc verisimiliter vis erit ut servo consecrato cum novo dominico et novo SSL certificatorio eam describam ac etiam accuratius et, maxime. potius cognosce omnia absentis momenti details.

Velim etiam ut opiniones de ideis de certificationibus tabellariis accipias. Si placet consilium, experiar vires rfc scribendarum potionem invenire.

Cum magnas partes articuli exscribas, nexum cum hoc articulo praebes.
Cum in aliam quamlibet linguam vertendam, nexum huic articulo praebent.
Id me in Anglicum transferre conabor et cruces notas relinquam.


Source: www.habr.com