Debian + Postfix + Dovecot + ΠœΡƒΠ»Ρ‚ΠΈΠ΄ΠΎΠΌΠ΅Π½ + SSL + IPv6 + OpenVPN + ΠœΡƒΠ»Ρ‚ΠΈ-интСрфСйси + SpamAssassin-ΡƒΡ‡Π΅Π½Π΅ + Bind

Π’Π°Π·ΠΈ статия Π΅ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° настроитС ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π΅Π½ пощСнски ΡΡŠΡ€Π²ΡŠΡ€.
Postfix + Dovecot. SPF + DKIM + rDNS. Π‘ IPv6.
Π‘ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅ TSL. Π‘ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° мноТСство Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ - част с истински SSL сСртификат.
Π‘ антиспам Π·Π°Ρ‰ΠΈΡ‚Π° ΠΈ висока антиспам ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ пощСнски ΡΡŠΡ€Π²ΡŠΡ€ΠΈ.
Π‘ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° няколко физичСски интСрфСйса.
Π‘ OpenVPN, ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ с ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Ρ‡Ρ€Π΅Π· IPv4, ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ прСдоставя IPv6.

Ако Π½Π΅ искатС Π΄Π° ΠΈΠ·ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ всички Ρ‚Π΅Π·ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½ΠΎ искатС Π΄Π° настроитС Ρ‚Π°ΠΊΡŠΠ² ΡΡŠΡ€Π²ΡŠΡ€ - Ρ‚ΠΎΠ³Π°Π²Π° Ρ‚Π°Π·ΠΈ статия Π΅ Π·Π° вас.

Π’ статията липсват ΠΎΠΏΠΈΡ‚ΠΈ Π΄Π° сС обяснят всички Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ. ΠžΠ±ΡΡΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ сС отнася Π΄ΠΎ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ настроСно нСстандартно ΠΈΠ»ΠΈ Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° потрСбитСля.

ΠœΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡΡ‚Π° Π΄Π° настроя пощСнски ΡΡŠΡ€Π²ΡŠΡ€ - моя ΠΎΡ‚Π΄Π°Π²Π½Π° ΠΌΠ΅Ρ‡Ρ‚Π°. МоТС Π΄Π° Π·Π²ΡƒΡ‡ΠΈ Π³Π»ΡƒΠΏΠ°Π²ΠΎ, Π½ΠΎ спорСд ΠΌΠ΅Π½, Ρ‚ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π΄Π° мСчтая Π·Π° Π½ΠΎΠ²Π° ΠΊΠΎΠ»Π° ΠΎΡ‚ Π»ΡŽΠ±ΠΈΠΌΠ°Ρ‚Π° ΠΌΠ°Ρ€ΠΊΠ°.

ΠœΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡΡ‚Π° Π·Π° настройка Π½Π° IPv6 - Π΄Π²Π΅. IT ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΡΡ‚ΡŠΡ‚ трябва постоянно Π΄Π° ΡƒΡ‡ΠΈ Π½ΠΎΠ²ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π·Π° Π΄Π° ΠΎΡ†Π΅Π»Π΅Π΅. Искам Π΄Π° внСса своя скромСн принос Π² Π±ΠΎΡ€Π±Π°Ρ‚Π° с Ρ†Π΅Π½Π·ΡƒΡ€Π°Ρ‚Π°.

ΠœΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡΡ‚Π° Π·Π° настройка Π½Π° OpenVPN - само Π·Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ IPv6 Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° машина.
ΠœΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡΡ‚Π° Π·Π° настройка Π½Π° няколко физичСски интСрфСйса - Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΈΠΌΠ°ΠΌ Π΅Π΄ΠΈΠ½ интСрфСйс "Π±Π°Π²Π΅Π½, Π½ΠΎ Π±Π΅Π· Π»ΠΈΠΌΠΈΡ‚", Π° Π΄Ρ€ΡƒΠ³ "Π±ΡŠΡ€Π·, Π½ΠΎ с такса".

ΠœΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡΡ‚Π° Π·Π° настройка Π½Π° Bind - моят доставчик ΠΏΡ€Π΅Π΄Π»Π°Π³Π° нСстабилСн DNS ΡΡŠΡ€Π²ΡŠΡ€, Π° Google понякога ΡΡŠΡ‰ΠΎ Π΄Π°Π²Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. Искам стабилСн DNS ΡΡŠΡ€Π²ΡŠΡ€ Π·Π° Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ»Π·Π²Π°Π½Π΅.

ΠœΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡΡ‚Π° Π΄Π° напиша статията - Ρ‡Π΅Ρ€Π½ΠΎΠ²Π°Ρ‚Π° бСшС написана ΠΏΡ€Π΅Π΄ΠΈ 10 мСсСца ΠΈ я провСрявах Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ. Ако Π΄ΠΎΡ€ΠΈ Π½Π° Π°Π²Ρ‚ΠΎΡ€Π° ΠΌΡƒ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π΄ΠΎΠ²Π½ΠΎ - Ρ‚ΠΎ ΠΈΠΌΠ° голяма вСроятност ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ Π΄Π° ΠΈΠΌ трябва.

Няма унивСрсално Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° пощСнски ΡΡŠΡ€Π²ΡŠΡ€. Но Ρ‰Π΅ сС ΠΎΠΏΠΈΡ‚Π°ΠΌ Π΄Π° напиша Π½Π΅Ρ‰ΠΎ ΠΊΠ°Ρ‚ΠΎ "Π½Π°ΠΏΡ€Π°Π²Π΅Ρ‚Π΅ Ρ‚Π°ΠΊΠ°, Π° послС, ΠΊΠΎΠ³Π°Ρ‚ΠΎ всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ трябва - ΠΈΠ·Ρ…Π²ΡŠΡ€Π»Π΅Ρ‚Π΅ ΠΈΠ·Π»ΠΈΡˆΠ½ΠΎΡ‚ΠΎ".

Имам Colocation ΡΡŠΡ€Π²ΡŠΡ€ ΠΎΡ‚ компанията tech.ru. Има Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° сС сравни с OVH, Hetzner, AWS. Π—Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π·ΠΈ Π·Π°Π΄Π°Ρ‡Π° ΡΡŠΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ с tech.ru Ρ‰Π΅ бъдС ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ.

На ΡΡŠΡ€Π²ΡŠΡ€Π° Π΅ инсталиран Debian 9.

На ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΈΠΌΠ° 2 интСрфСйса `eno1` ΠΈ `eno2`. ΠŸΡŠΡ€Π²ΠΈΡΡ‚ Π΅ Π±Π΅Π·Π»ΠΈΠΌΠΈΡ‚Π΅Π½, Π° вторият Π±ΡŠΡ€Π· ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ.

Има 3 статични IP адрСса, XX.XX.XX.X0 ΠΈ XX.XX.XX.X1 ΠΈ XX.XX.XX.X2 Π½Π° интСрфСйса `eno1` ΠΈ XX.XX.XX.X5 Π½Π° интСрфСйса `eno2`.

Има XXXX:XXXX:XXXX:XXXX::/64 ΠΏΡƒΠ» IPv6 адрСси, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈ Π½Π° интСрфСйс `eno1`, Π° ΠΏΠΎ моя ΠΌΠΎΠ»Π±Π° XXXX:XXXX:XXXX:XXXX:1:2::/96 са Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈ Π½Π° `eno2`.

Има Ρ‚Ρ€ΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° `domain1.com`, `domain2.com`, `domain3.com`. Π—Π° `domain1.com` ΠΈ `domain3.com` Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ SSL сСртификат.

Има Google Π°ΠΊΠ°ΡƒΠ½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ искам Π΄Π° ΡΠ²ΡŠΡ€ΠΆΠ° с ΠΈΠΌΠ΅ΠΉΠ» `vasya.pupkin@domain1.com` (ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅ΠΉΠ»ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ интСрфСйса Π½Π° Gmail).
Врябва Π΄Π° ΠΈΠΌΠ° ΠΈΠΌΠ΅ΠΉΠ» кутия `support@domain2.com`, ΠΎΡ‚ която искам Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° ΠΈΠΌΠ΅ΠΉΠ»ΠΈΡ‚Π΅ Π² Gmail. И рядко Π΄Π° ΠΈΠΌΠ°ΠΌ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° изпратя Π½Π΅Ρ‰ΠΎ ΠΎΡ‚ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° `support@domain2.com` ΠΏΡ€Π΅Π· ΡƒΠ΅Π± интСрфСйса.

Врябва Π΄Π° ΠΈΠΌΠ° ΠΈΠΌΠ΅ΠΉΠ» кутия `ivanov@domain3.com`, която Ρ‰Π΅ ΠΏΠΎΠ»Π·Π²Π° Иванов ΠΎΡ‚ своя iPhone.

Π˜Π·ΠΏΡ€Π°Ρ‰Π°Π½ΠΈΡ‚Π΅ ΠΈΠΌΠ΅ΠΉΠ»ΠΈ трябва Π΄Π° отговарят Π½Π° всички ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ изисквания Π·Π° антиспам.
Врябва Π΄Π° ΠΈΠΌΠ° Π½Π°ΠΉ-високото Π½ΠΈΠ²ΠΎ Π½Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅, ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½ΠΎ Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΌΡ€Π΅ΠΆΠΈ.
Врябва Π΄Π° ΠΈΠΌΠ° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° IPv6 ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅, Ρ‚Π°ΠΊΠ° ΠΈ Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅ΠΉΠ»ΠΈ.
Врябва Π΄Π° ΠΈΠΌΠ° SpamAssassin, ΠΊΠΎΠΉΡ‚ΠΎ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ Π±ΠΈΠ²Π° Π΄Π° ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π° ΠΈΠΌΠ΅ΠΉΠ»ΠΈ. А вмСсто Ρ‚ΠΎΠ²Π° Π΄Π° ΠΏΡ€Π°Π²ΠΈ bounce, Π΄Π° Π³ΠΈ пропуска ΠΈΠ»ΠΈ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π² IMAP ΠΏΠ°ΠΏΠΊΠ° β€žΠ‘ΠΏΠ°ΠΌβ€œ.
Врябва Π΄Π° бъдС настроСно Π°Π²Ρ‚ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π° SpamAssassin: Π°ΠΊΠΎ прСмСстя ΠΈΠΌΠ΅ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΠ° β€žΠ‘ΠΏΠ°ΠΌβ€œ β€” Π΄Π° сС ΠΎΠ±ΡƒΡ‡ΠΈ Π½Π° Ρ‚ΠΎΠ²Π°; Π°ΠΊΠΎ прСмСстя ΠΈΠΌΠ΅ΠΉΠ» ΠΎΡ‚ ΠΏΠ°ΠΏΠΊΠ° β€žΠ‘ΠΏΠ°ΠΌβ€œ β€” Π΄Π° сС ΠΎΠ±ΡƒΡ‡ΠΈ Π½Π° Ρ‚ΠΎΠ²Π°. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° SpamAssassin β€” трябва Π΄Π° влияят Π½Π° ΠΏΠΎΠΏΠ°Π΄Π½Π°Π»ΠΈΡ‚Π΅ ΠΈΠΌΠ΅ΠΉΠ»ΠΈ Π² ΠΏΠ°ΠΏΠΊΠ° β€žΠ‘ΠΏΠ°ΠΌβ€œ.
PHP скриптовСтС трябва Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ ΠΈΠΌΠ΅ΠΉΠ»ΠΈ ΠΎΡ‚ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° всСки Π΄ΠΎΠΌΠ΅ΠΉΠ½ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΡΡŠΡ€Π²ΡŠΡ€.
Врябва Π΄Π° ΠΈΠΌΠ° OpenVPN услуга, с Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° IPv6 Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ няма IPv6.

ΠŸΡŠΡ€Π²ΠΎ трябва Π΄Π° настроим интСрфСйситС ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡΡ‚Π°, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ IPv6.
Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° трябва Π΄Π° настроим OpenVPN, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ сС ΡΠ²ΡŠΡ€Π·Π²Π° ΠΏΡ€Π΅Π· IPv4 ΠΈ Ρ‰Π΅ прСдоставя Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° статичСн Ρ€Π΅Π°Π»Π΅Π½ IPv6 адрСс. Π’ΠΎΠ·ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Ρ‰Π΅ ΠΈΠΌΠ° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ всички IPv6 услуги Π½Π° ΡΡŠΡ€Π²Π΅Ρ€Π° ΠΈ Π΄ΠΎ всякакви рСсурси с IPv6 Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚.
ПослС Ρ‰Π΅ трябва Π΄Π° настроим Postfix Π·Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅ΠΉΠ»ΠΈ + SPF + DKIM + rDNS ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ.
ПослС Ρ‰Π΅ трябва Π΄Π° настроим Dovecot ΠΈ Π΄Π° настроим многодомСйнност.
Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ‰Π΅ трябва Π΄Π° настроим SpamAssassin ΠΈ Π΄Π° настроим ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ.
Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ρ‰Π΅ инсталирамС Bind.

============= ΠœΡƒΠ»Ρ‚ΠΈ-интСрфСйси =============

Π—Π° настройка Π½Π° интСрфСйситС трябва Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ слСдното Π² β€ž/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

Π’Π΅Π·ΠΈ настройки ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ Π½Π° всСки ΡΡŠΡ€Π²ΡŠΡ€ Π² tech.ru (с ΠΌΠ°Π»ΠΊΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π°) ΠΈ Π²Π΅Π΄Π½Π°Π³Π° Ρ‰Π΅ заработят ΠΊΠ°ΠΊΡ‚ΠΎ трябва.

Ако ΠΈΠΌΠ°Ρ‚Π΅ ΠΎΠΏΠΈΡ‚ с настройката Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π΅Ρ‰Π° Π·Π° Hetzner, OVH β€” Ρ‚Π°ΠΌ Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ. По-слоТно Π΅.

eno1 β€” Ρ‚ΠΎΠ²Π° Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° ΠΊΠ°Ρ€Ρ‚Π° #1 (Π±Π°Π²Π½Π°, Π½ΠΎ Π±Π΅Π·Π»ΠΈΠΌΠΈΡ‚Π½Π°).
eno2 β€” Ρ‚ΠΎΠ²Π° Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° ΠΊΠ°Ρ€Ρ‚Π° #2 (Π±ΡŠΡ€Π·Π°, Π½ΠΎ с Ρ‚Π°Ρ€ΠΈΡ„Π΅Π½ ΠΏΠ»Π°Π½).
tun0 β€” Ρ‚ΠΎΠ²Π° Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π° ΠΊΠ°Ρ€Ρ‚Π° ΠΎΡ‚ OpenVPN.
XX.XX.XX.X0 β€” IPv4 #1 Π½Π° eno1.
XX.XX.XX.X1 β€” IPv4 #2 Π½Π° eno1.
XX.XX.XX.X2 β€” IPv4 #3 Π½Π° eno1.
XX.XX.XX.X5 β€” IPv4 #1 Π½Π° eno2.
XX.XX.XX.1 β€” IPv4 gateway.
XXXX:XXXX:XXXX:XXXX::/64 β€” IPv6 Π·Π° цСлия ΡΡŠΡ€Π²ΡŠΡ€.
XXXX:XXXX:XXXX:XXXX:1:2::/96 β€” IPv6 Π·Π° eno2, всичко останало Π²Π»ΠΈΠ·Π° Π² eno1.
XXXX:XXXX:XXXX:XXXX::1 β€” IPv6 gateway (Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° сС посочи IPv6 Π½Π° свича Ρ‚ΡƒΠΊ).
dns-nameservers β€” ΡƒΠΊΠ°Π·Π°Π½ΠΈ 127.0.0.1 (ΠΏΠΎΡ€Π°Π΄ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π»ΠΎΠΊΠ°Π»Π΅Π½ bind) ΠΈ 213.248.1.6 (Ρ‚ΠΎΠ²Π° Π΅ ΠΎΡ‚ tech.ru).

Β«table eno1tΒ» ΠΈ Β«table eno2tΒ» β€” ΡΠΌΠΈΡΡŠΠ»ΡŠΡ‚ Π½Π° Ρ‚Π΅Π·ΠΈ route-rule Π΅, Ρ‡Π΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚, влязъл ΠΏΡ€Π΅Π· eno1, Ρ‰Π΅ ΠΈΠ·Π»ΠΈΠ·Π° ΠΏΡ€Π΅Π· Π½Π΅Π³ΠΎ, Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚, влязъл ΠΏΡ€Π΅Π· eno2, Ρ‰Π΅ ΠΈΠ·Π»ΠΈΠ·Π° ΠΏΡ€Π΅Π· Π½Π΅Π³ΠΎ. ОсвСн Ρ‚ΠΎΠ²Π°, ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈΡ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²ΠΈ Ρ‰Π΅ напускат ΠΏΡ€Π΅Π· eno1.

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

Π‘ Ρ‚Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π΄Π°Π²Π°ΠΌΠ΅, Ρ‡Π΅ всСки Π½Π΅Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠΏΠ°Π΄Π° ΠΏΠΎΠ΄ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ с Β«table eno1tΒ» β€” Π΄Π° бъдС насочСн към интСрфСйса eno1.

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

Π‘ Ρ‚Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π΄Π°Π²Π°ΠΌΠ΅, Ρ‡Π΅ всСки Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΏΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π° Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° Π΄Π° бъдС насочСн към интСрфСйса eno1.

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

Π‘ Ρ‚Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°.

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

Π’ΠΎΠ·ΠΈ Π±Π»ΠΎΠΊ Π·Π°Π΄Π°Π²Π° Π²Ρ‚ΠΎΡ€ΠΈ IPv4 адрСс Π·Π° интСрфСйса eno1.

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

Π‘ Ρ‚Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ route ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° OpenVPN Π΄ΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ‚Π΅ IPv4, освСн XX.XX.XX.X0.
Π—Π°Ρ‰ΠΎ Ρ‚Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½Π° Π·Π° всички IPv4 β€” всС ΠΎΡ‰Π΅ Π½Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌ.

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

Π’ΡƒΠΊ Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ адрСс Π·Π° самия интСрфСйс. Π‘ΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Ρ‰Π΅ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ «изходящ» адрСс. ΠŸΠΎΠ²Π΅Ρ‡Π΅ няма Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°.

Π—Π°Ρ‰ΠΎ Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Β«:1:1::Β» Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° слоТно? Π—Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ OpenVPN ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΈ само Π·Π° Ρ‚ΠΎΠ²Π°. По-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΠΎ-късно.

ΠžΡ‚Π½ΠΎΡΠ½ΠΎ gateway β€” Ρ‚Π°ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚ΠΈ, ΠΈ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π°. Но Π·Π° Π΄Π° бъдС ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ β€” Ρ‚ΡƒΠΊ трябва Π΄Π° сС посочи IPv6 Π½Π° свича, към ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚.

Но Π·Π°Ρ‰ΠΎ IPv6 спира Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ правя Ρ‚Π°ΠΊΠ°? ВСроятно Ρ‚ΠΎΠ²Π° са особСности Π½Π° tech.ru.

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

Π’ΠΎΠ²Π° Π΅ добавянС Π½Π° IPv6 адрСса Π½Π° интСрфСйса. Ако трябва сто адрСса β€” Π·Π½Π°Ρ‡ΠΈ сто Ρ€Π΅Π΄Π° Π² Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ».

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

ΠŸΠΎΡΠΎΡ‡ΠΈΡ… адрСситС ΠΈ подсСтитС Π½Π° всички интСрфСйси, Π·Π° Π΄Π° Π΅ ясно.
eno1 β€” Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ трябва Π΄Π° бъдС "/64" β€” Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΠΎΠ²Π° Π΅ цСлият Π½ΠΈ pool ΠΎΡ‚ адрСси.
tun0 β€” ΠΏΠΎΠ΄ΡΠ΅Ρ‚ΡŠΡ‚ трябва Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° Π΅ ΠΏΠΎ-голям ΠΎΡ‚ eno1. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС настрои IPv6 gateway Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° OpenVPN.
eno2 β€” ΠΏΠΎΠ΄ΡΠ΅Ρ‚ΡŠΡ‚ трябва Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° Π΅ ΠΏΠΎ-голям ΠΎΡ‚ tun0. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° OpenVPN няма Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π΄ΠΎΡΡ‚ΡŠΠΏΡΡ‚ Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ‚Π΅ IPv6 адрСси.
Π—Π° ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π° прСдстава ΠΈΠ·Π±Ρ€Π°Ρ… ΡΡ‚ΡŠΠΏΠΊΠ° Π½Π° подсСт 16, Π½ΠΎ ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Π΄ΠΎΡ€ΠΈ ΡΡ‚ΡŠΠΏΠΊΠ° β€ž1β€œ.
Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ 64+16 = 80, Π° 80+16 = 96.

Π—Π° ΠΎΡ‰Π΅ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π° прСдстава:
XXXX:XXXX:XXXX:XXXX:1:1:YYYY:YYYY β€” Ρ‚ΠΎΠ²Π° са адрСситС, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ сайтовС ΠΈΠ»ΠΈ услуги Π½Π° интСрфСйса eno1.
XXXX:XXXX:XXXX:XXXX:1:2:YYYY:YYYY β€” Ρ‚ΠΎΠ²Π° са адрСситС, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ сайтовС ΠΈΠ»ΠΈ услуги Π½Π° интСрфСйса eno2.
XXXX:XXXX:XXXX:XXXX:1:3:YYYY:YYYY β€” Ρ‚ΠΎΠ²Π° са адрСситС, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° OpenVPN ΠΈΠ»ΠΈ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ слуТСбни адрСси Π½Π° OpenVPN.

Π—Π° настройка Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° β€” трябва Π΄Π° ΠΈΠΌΠ° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° рСстартиранС Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°.
IPv4 ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ сС Π²Π·ΠΈΠΌΠ°Ρ‚ ΠΏΡ€ΠΈ изпълнСниС (Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° сС Π·Π°Π²ΠΈΠ΅ Π² screen β€” Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай Ρ‚Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° просто Ρ‰Π΅ сринС ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π½Π° ΡΡŠΡ€Π²Π΅Ρ€Π°):

/etc/init.d/networking restart

Π’ Ρ„Π°ΠΉΠ» "\/etc\/iproute2\/rt_tables" Π΄Π° сС Π΄ΠΎΠ±Π°Π²ΠΈ Π½Π° края:

100 eno1t
101 eno2t

Π‘Π΅Π· Ρ‚ΠΎΠ²Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ кастомни Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π² Ρ„Π°ΠΉΠ»Π° "\/etc\/network\/interfaces".
Π¦ΠΈΡ„Ρ€ΠΈΡ‚Π΅ трябва Π΄Π° са ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈ ΠΎΡ‚ 65535.

IPv6 ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ лСсно сС промСнят Π±Π΅Π· рСстартиранС, Π½ΠΎ Π·Π° Ρ‚ΠΎΠ²Π° Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° сС Π½Π°ΡƒΡ‡Π°Ρ‚ ΠΏΠΎΠ½Π΅ Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:

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

Настройка Π½Π° "\/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

Π’ΠΎΠ²Π° са настройкитС Π½Π° "sysctl" Π½Π° моя ΡΡŠΡ€Π²ΡŠΡ€. Π©Π΅ ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠ° Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ.

net.ipv4.ip_forward = 1

Π‘Π΅Π· Ρ‚ΠΎΠ²Π° OpenVPN ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ няма Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ.

net.ipv6.ip_nonlocal_bind = 1

ВсСки, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΠΏΠΈΡ‚Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ bind IPv6 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ nginx) Π²Π΅Π΄Π½Π°Π³Π° слСд ΠΊΠ°Ρ‚ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡŠΡ‚ Π΅ пуснат β€” Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π³Ρ€Π΅ΡˆΠΊΠ°. Π§Π΅ Ρ‚Π°ΠΊΡŠΠ² адрСс Π½Π΅ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½.

Π—Π° Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π΅ Ρ‚Π°ΠΊΠ°Π²Π° ситуация, сС ΠΏΡ€Π°Π²ΠΈ Ρ‚Π°ΠΊΠ°Π²Π° настройка.

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

Π‘Π΅Π· Ρ‚Π΅Π·ΠΈ настройки IPv6 Ρ‚Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° OpenVPN Π½Π΅ ΠΈΠ·Π»ΠΈΠ·Π° Π² свСта.

Π”Ρ€ΡƒΠ³ΠΈ настройки ΠΈΠ»ΠΈ Π½Π΅ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ»ΠΈ Π½Π΅ помня Π·Π°Ρ‰ΠΎ са.
Но Π·Π° всСки случай оставям "ΠΊΠ°ΠΊΡ‚ΠΎ Π΅".

Π—Π° Π΄Π° сС Π²Π·Π΅ΠΌΠ°Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ» Π±Π΅Π· рСстартиранС Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° β€” трябва Π΄Π° сС изпълни ΠΊΠΎΠΌΠ°Π½Π΄Π°:

sysctl -p

По-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π·Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π½Π° "table": habr.com\/post\/108690

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

OpenVPN IPv4 Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Π΅Π· iptables.

ΠœΠΎΠΈΡ‚Π΅ iptables са Ρ‚Π°ΠΊΠΈΠ²Π° Π·Π° 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 β€” Ρ‚ΠΎΠ²Π° Π΅ моят статичСн IPv4 адрСс Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° машина.
10.8.0.0/24 β€” IPv4 ΠΌΡ€Π΅ΠΆΠ° Π·Π° openvpn. IPv4 адрСси Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° openvpn.
ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π΅ Π²Π°ΠΆΠ½Π°.

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

Π’ΠΎΠ²Π° Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ само Π°Π· ΠΎΡ‚ статичния си IP Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ OpenVPN.

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

Π—Π° прСнасочванС Π½Π° IPv4 ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° OpenVPN ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ β€” трябва Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π΅Π΄Π½Π° ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.

Π—Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ случаи Π΅Π΄Π½Π°Ρ‚Π° ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈΡ‚Π΅ Π½Π΅ Π΅ подходяща.
Π’ моя случай ΠΈ Π΄Π²Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ са подходящи.
Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅Π³Π»Π΅Π΄Π°Ρ… докумСнтацията, ΠΈΠ·Π±Ρ€Π°Ρ… ΠΏΡŠΡ€Π²ΠΈΡ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π·Π°Ρ‰ΠΎΡ‚ΠΎ консумира ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ CPU.

Π—Π° Π΄Π° сС запазят всички настройки Π½Π° iptables слСд рСстарт β€” трябва Π΄Π° Π³ΠΈ Π·Π°ΠΏΠ°Π·ΠΈΡ‚Π΅ Π½Π° някоС място.

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

Π’Π°ΠΊΠΈΠ²Π° ΠΈΠΌΠ΅Π½Π° са ΠΈΠ·Π±Ρ€Π°Π½ΠΈ Π½Π΅ случайно. Π’Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° β€žiptables-persistentβ€œ.

apt-get install iptables-persistent

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° основния ΠΏΠ°ΠΊΠ΅Ρ‚ OpenVPN:

apt-get install openvpn easy-rsa

НСка настроим шаблона Π·Π° сСртификатитС (Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ своитС стойности):

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

НСка Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°ΠΌΠ΅ настройкитС Π½Π° шаблона Π·Π° сСртификати:

mcedit vars

...
# Π’ΠΎΠ²Π° са стойноститС ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π·Π° ΠΏΠΎΠ»Π΅Ρ‚Π°Ρ‚Π°,
# ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ поставСни Π² сСртификата.
# НС оставяйтС Π½ΠΈΠΊΠΎΠ΅ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π° ΠΏΡ€Π°Π·Π½ΠΎ.
export KEY_COUNTRY="BG"
export KEY_PROVINCE="ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ‚Π²ΠΎ"
export KEY_CITY="Π“Ρ€Π°Π΄"
export KEY_ORG="БобствСно"
export KEY_EMAIL="admin@domain1.com"
export KEY_OU="VPN"

# X509 Subject Field
export KEY_NAME="ΡΡŠΡ€Π²ΡŠΡ€"
...

БъздавамС ΡΡŠΡ€Π²ΡŠΡ€Π΅Π½ сСртификат:

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

НСка ΠΏΡ€ΠΈΠ³ΠΎΡ‚Π²ΠΈΠΌ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° създавамС Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Ρ‰ΠΈ "client-name.opvn" Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅:

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

НСка ΠΏΡ€ΠΈΠ³ΠΎΡ‚Π²ΠΈΠΌ скрипт, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ обСдинява всички Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Π΅Π΄ΠΈΠ½ opvn Ρ„Π°ΠΉΠ».

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}/${1}.crt 
    <(echo -e '</cert>n<key>') 
    ${KEY_DIR}/${1}.key 
    <(echo -e '</key>n<tls-auth>') 
    ${KEY_DIR}/ta.key 
    <(echo -e '</tls-auth>') 
    > ${OUTPUT_DIR}/${1}.ovpn

БъздавамС ΠΏΡŠΡ€Π²ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ OpenVPN:

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

Π€Π°ΠΉΠ»ΡŠΡ‚ "~/client-configs/files/client-name.ovpn" ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ Π½Π° устройството Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Π—Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° iOS Ρ‰Π΅ сС Π½ΡƒΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ‚ Ρ‚Ρ€ΠΈΠΊ:
Π‘ΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π΅Π³Π° Β«tls-authΒ» трябва Π΄Π° Π΅ Π±Π΅Π· ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ.
Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°, Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ Β«key-direction 1Β» Π²Π΅Π΄Π½Π°Π³Π° ΠΏΡ€Π΅Π΄ΠΈ Ρ‚Π΅Π³Π° Β«tls-authΒ».

НСка ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌΠ΅ OpenVPN ΡΡŠΡ€Π²ΡŠΡ€Π°:

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

Π’ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π·Π° Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΠΌ статичСн адрСс Π½Π° всСки ΠΊΠ»ΠΈΠ΅Π½Ρ‚ (Π½Π΅ Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ, Π½ΠΎ Π°Π· Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ):

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

Най-слоТният ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ² Π΄Π΅Ρ‚Π°ΠΉΠ».

Π—Π° съТалСниС, OpenVPN всС ΠΎΡ‰Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π΄Π° настрои IPv6 gateway Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅.
ΠŸΡ€ΠΈΡ…ΠΎΠ΄ΠΈ сС Π΄Π° Π³ΠΎ Β«ΠΏΡ€Π΅ΠΏΡ€Π°Π²ΠΈΠΌΒ» Ρ€ΡŠΡ‡Π½ΠΎ Π·Π° всСки ΠΊΠ»ΠΈΠ΅Π½Ρ‚.

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

Π€Π°ΠΉΠ»ΡŠΡ‚ Β«/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

Π€Π°ΠΉΠ»ΡŠΡ‚ Β«/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

И Π΄Π²Π°Ρ‚Π° скрипта ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ„Π°ΠΉΠ»Π° Β«/etc/openvpn/variablesΒ»:

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

Π—Π°Ρ‰ΠΎ Π΅ написано Ρ‚Π°ΠΊΠ° β€” Π½Π΅ ΠΌΠΎΠ³Π° Π΄Π° си спомня.

Π‘Π΅Π³Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° странно netmask = 112 (Ρ‚ΡƒΠΊ трябва Π΄Π° Π΅ 96).
И ΠΏΡ€Π΅Ρ„ΠΈΠΊΡΡŠΡ‚ Π΅ странСн, Π½Π΅ отговаря Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° tun0.
Но Π΄ΠΎΠ±Ρ€Π΅, оставям Β«ΠΊΠ°ΠΊΡ‚ΠΎ Π΅Β».

cipher DES-EDE3-CBC

Π’ΠΎΠ²Π° Π΅ Π·Π° Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ β€” ΠΈΠ·Π±Ρ€Π°Ρ… Ρ‚Π°ΠΊΡŠΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π°.

По-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π·Π° настройката Π½Π° OpenVPN IPv4.

По-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π·Π° настройката Π½Π° OpenVPN IPv6.

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

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° основния ΠΏΠ°ΠΊΠ΅Ρ‚:

apt-get install postfix

ΠŸΡ€ΠΈ инсталиранС ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ Β«internet-siteΒ».

ΠœΠΎΡΡ‚ Β«/etc/postfix/main.cfΒ» ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

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

# Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ .domain β€” это Π·Π°Π΄Π°Ρ‡Π° MUA.
append_dot_mydomain = no

readme_directory = no

# Π‘ΠΌ. http://www.postfix.org/COMPATIBILITY_README.html -- ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 2 для
# Π½ΠΎΠ²Ρ‹Ρ… установок.
compatibility_level = 2

# ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ TLS
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

# Π’ΠΈΠΏ хранСния
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
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-адрСс Π½Π° Π΄ΠΎΠΌΠ΅Π½
sender_dependent_default_transport_maps = pcre:/etc/postfix/sdd_transport.pcre

НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ подробноститС Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³.

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

Π‘ΠΏΠΎΡ€Π΅Π΄ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Π₯Π°Π±Ρ€, Ρ‚ΠΎΠ·ΠΈ Π±Π»ΠΎΠΊ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° `дСзинформация ΠΈ Π½Π΅Π²Π΅Ρ€Π½ΠΈ Ρ‚Π΅Π·ΠΈ`.Π‘Π°ΠΌΠΎ слСд 8 Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°Ρ€ΠΈΠ΅Ρ€Π°Ρ‚Π° си, Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ… Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ SSL.

Π—Π°Ρ‚ΠΎΠ²Π° Ρ‰Π΅ си позволя смСлостта Π΄Π° опиша ΠΊΠ°ΠΊ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° SSL (Π±Π΅Π· Π΄Π° отговарям Π½Π° Π²ΡŠΠΏΡ€ΠΎΡΠΈΡ‚Π΅ "Как Ρ€Π°Π±ΠΎΡ‚ΠΈ Ρ‚ΠΎΠ²Π°?" ΠΈ "Π—Π°Ρ‰ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Ρ‚ΠΎΠ²Π°?").

ΠžΡΠ½ΠΎΠ²Π°Ρ‚Π° Π½Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΡ‚ΠΎ ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ Π΅ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Π²ΠΎΠΉΠΊΠ° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ (Π΄Π²Π΅ ΠΌΠ½ΠΎΠ³ΠΎ дълги строки ΠΎΡ‚ символи).

Единият β€žΠΊΠ»ΡŽΡ‡β€œ Π΅ частСн, Π° другият ΠΊΠ»ΡŽΡ‡ Π΅ β€žΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½β€œ. Частният ΠΊΠ»ΡŽΡ‡ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ старатСлно Π² Ρ‚Π°ΠΉΠ½Π°. ΠŸΡƒΠ±Π»ΠΈΡ‡Π½ΠΈΡΡ‚ ΠΊΠ»ΡŽΡ‡ сС Ρ€Π°Π·Π΄Π°Π²Π° Π½Π° всички ΠΆΠ΅Π»Π°Π΅Ρ‰ΠΈ.

Π‘ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° публичния ΠΊΠ»ΡŽΡ‡ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π° строка тСкст Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ само притСТатСлят Π½Π° частния ΠΊΠ»ΡŽΡ‡ Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° я Π΄Π΅ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°.
Π•, Ρ‚ΠΎΠ²Π° Π΅ основата Π½Π° тСхнологията.

Π‘Ρ‚ΡŠΠΏΠΊΠ° β„–1 β€” сайтовС с https.
ΠšΠΎΠ³Π°Ρ‚ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΡŠΡ‚ сС ΡΠ²ΡŠΡ€Π·Π²Π° с сайта, Ρ‚ΠΎΠΉ Π½Π°ΡƒΡ‡Π°Π²Π° ΠΎΡ‚ ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€Π°, Ρ‡Π΅ ΡΠ°ΠΉΡ‚ΡŠΡ‚ Π΅ https ΠΈ Π·Π°Ρ‚ΠΎΠ²Π° заявява публичния ΠΊΠ»ΡŽΡ‡.
Π£Π΅Π± ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ прСдоставя ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡. Π‘Ρ€Π°ΡƒΠ·ΡŠΡ€ΡŠΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° публичния ΠΊΠ»ΡŽΡ‡ Π·Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅ Π½Π° http-заявката ΠΈ я ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°.
Π‘ΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° http-заявката ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Π½ΠΎ само ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΈΡ‚Π΅ΠΆΠ°Π²Π° частния ΠΊΠ»ΡŽΡ‡, тоСст само ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€Π°, с ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Π²Ρ€ΡŠΠ·ΠΊΠ°.
Http-заявката ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΏΠΎΠ½Π΅ URI. Π’Π°ΠΊΠ° Ρ‡Π΅, Π°ΠΊΠΎ Π² страната сС ΠΎΠΏΠΈΡ‚Π²Π°Ρ‚ Π΄Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π½Π΅ Π΄ΠΎ цСлия сайт, Π° Π΄ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° страница β€” Ρ‚ΠΎ Π·Π° https сайтовС Ρ‚ΠΎΠ²Π° Π΅ нСвъзмоТно.

Π‘Ρ‚ΡŠΠΏΠΊΠ° β„–2 β€” ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€.
Π£Π΅Π± ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π΄Π°Π²Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€, ΠΊΠΎΠΉΡ‚ΠΎ лСсно ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Π½ ΠΏΠΎ ΠΏΡŠΡ‚Ρ.
Π Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ просто β€” Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΡŠΡ‚ Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΎ Π½ΠΈΠ²ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΡΡŠΡ‰Π°Ρ‚Π° Π΄Π²ΠΎΠΉΠΊΠ° частСн-ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡ Π·Π° всСки https сайт.
И Π·Π°Π΅Π΄Π½ΠΎ с заявката Π·Π° публичния ΠΊΠ»ΡŽΡ‡ Π½Π° сайта ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° своя Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡.
Π£Π΅Π± ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π³ΠΎ запомня ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° http-ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π° с Ρ‚ΠΎΠ·ΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡ конкрСтния ΠΊΠ»ΠΈΠ΅Π½Ρ‚.
Π‘Π΅Π³Π° http-ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°Π½ само ΠΎΡ‚ притСТатСля Π½Π° частния ΠΊΠ»ΡŽΡ‡ Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (тоСст самия ΠΊΠ»ΠΈΠ΅Π½Ρ‚).

Π‘Ρ‚ΡŠΠΏΠΊΠ° β„–3 β€” установяванС Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π΅Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΏΠΎ публичния ΠΊΠ°Π½Π°Π».
Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β„–2 ΠΈΠΌΠ° уязвимост β€” Π½ΠΈΡ‰ΠΎ Π½Π΅ ΠΏΡ€Π΅Ρ‡ΠΈ Π½Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΡ‚Π΅ Π»ΠΈΡ†Π° Π΄Π° ΠΏΡ€ΠΈΡ…Π²Π°Ρ‰Π°Ρ‚ http-заявката ΠΈ Π΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Ρ‚ информацията Π·Π° публичния ΠΊΠ»ΡŽΡ‡.
По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ ΠΏΠΎΡΡ€Π΅Π΄Π½ΠΈΠΊΡŠΡ‚ ΠΌΠΎΠΆΠ΅ прСкрасно Π΄Π° Π²ΠΈΠ΄ΠΈ всичкото ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ΠΈΡ‚Π΅-ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ‚Π΅ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π΅ сС смСни ΠΊΠ°Π½Π°Π»ΡŠΡ‚ Π·Π° комуникация.
БправянСто с Ρ‚ΠΎΠ²Π° Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ просто β€” Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΅ Π΄Π° сС ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈ публичният ΠΊΠ»ΡŽΡ‡ Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° ΠΊΠ°Ρ‚ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅, ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΎ с публичния ΠΊΠ»ΡŽΡ‡ Π½Π° ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€Π°.
Π£Π΅Π± ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Ρ‚ΠΎΠ³Π°Π²Π° Π½Π°ΠΉ-Π½Π°ΠΏΡ€Π΅Π΄ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° β€žΡ‚Π²ΠΎΡΡ‚ ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°β€œ ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π° Ρ‚ΠΎΠ²Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ с Ρ‚ΠΎΠ·ΠΈ ΡΡŠΡ‰ΠΈΡ ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡.
Π‘Ρ€Π°ΡƒΠ·ΡŠΡ€ΡŠΡ‚ Π³Π»Π΅Π΄Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π° β€” Π°ΠΊΠΎ Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ β€žΡ‚Π²ΠΎΡΡ‚ ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°β€œ β€” Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° Π΅ 100% гаранция, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΊΠ°Π½Π°Π» Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π΅ бСзопасСн.
Колко бСзопасСн С?
Π‘Π°ΠΌΠΎΡ‚ΠΎ създаванС Π½Π° Ρ‚Π°ΠΊΡŠΠ² бСзопасСн ΠΊΠ°Π½Π°Π» Π·Π° комуникация става със скорост ping*2. НапримСр 20ms.
НСдоброТСлатСлят трябва ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° ΠΏΡ€ΠΈΡ‚Π΅ΠΆΠ°Π²Π° частния ΠΊΠ»ΡŽΡ‡ Π½Π° Π΅Π΄Π½Π°Ρ‚Π° страна. Или Π΄Π° ΠΏΠΎΠ΄Π±Π΅Ρ€Π΅ частния ΠΊΠ»ΡŽΡ‡ Π·Π° няколко милисСкунди.
Π₯Π°ΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Π΄ΠΈΠ½ ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π΅Π½ частСн ΠΊΠ»ΡŽΡ‡ Ρ‰Π΅ ΠΎΡ‚Π½Π΅ΠΌΠ΅ дСсСтилСтия Π½Π° ΡΡƒΠΏΠ΅Ρ€ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€.

Π‘Ρ‚ΡŠΠΏΠΊΠ° β„–4 β€” ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Π° Π‘Π” Π½Π° ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅.
ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Π΅, Ρ‡Π΅ Π² цялата Ρ‚Π°Π·ΠΈ история ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ Ρ‡ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ сСди Π½Π° ΠΊΠ°Π½Π°Π»Π° Π·Π° комуникация ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ ΡΡŠΡ€Π²ΡŠΡ€Π°.
Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π΄Π° бъдС прСдставСн ΠΊΠ°Ρ‚ΠΎ ΡΡŠΡ€Π²ΡŠΡ€, Π° ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π΄Π° бъдС прСдставСн ΠΊΠ°Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚. И Π΄Π° симулира Π΄Π²ΠΎΠΉΠΊΠ° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π² Π΄Π²Π΅Ρ‚Π΅ посоки.
Π’ΠΎΠ³Π°Π²Π° Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΊΡŠΡ‚ Ρ‰Π΅ Π²ΠΈΠΆΠ΄Π° цСлия Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΈ Ρ‰Π΅ ΠΈΠΌΠ° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° "Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°" Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°.
НапримСр, Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ адрСса, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ ΠΏΠ°Ρ€ΠΈ, Π΄Π° ΠΊΠΎΠΏΠΈΡ€Π° ΠΏΠ°Ρ€ΠΎΠ»Π°Ρ‚Π° ΠΎΡ‚ ΠΎΠ½Π»Π°ΠΉΠ½ Π±Π°Π½ΠΊΠ°Ρ‚Π° ΠΈΠ»ΠΈ Π΄Π° Π±Π»ΠΎΠΊΠΈΡ€Π° "Π½Π΅ΡƒΠ³ΠΎΠ΄Π½ΠΎΡ‚ΠΎ" ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅.
Π—Π° Π±ΠΎΡ€Π±Π° с Ρ‚Π°ΠΊΠΈΠ²Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈ Π»ΠΈΡ†Π° Π±Π΅ създадСна ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ с ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π·Π° всСки https сайт.
ВсСки Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ "Π·Π½Π°Π΅" Π·Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠΊΠΎΠ»ΠΎ 200 Ρ‚Π°ΠΊΠΈΠ²Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ²Π° Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΎ във всСки Π±Ρ€Π°ΡƒΠ·ΡŠΡ€.
"Π—Π½Π°Π½ΠΈΠ΅Ρ‚ΠΎ" Π΅ подсигурСно с публичния ΠΊΠ»ΡŽΡ‡ Π½Π° всСки сСртификат. ВоСст, ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ Ρ†Π΅Π½Ρ‚ΡŠΡ€ Π·Π° сСртификация Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Ρ„Π°Π»ΡˆΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΎ.

Π‘Π΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ просто Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ SSL Π·Π° https.
Ако сС замислитС, Ρ‰Π΅ станС ясно ΠΊΠ°ΠΊ спСциалнитС слуТби ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° пробият Ρ‚Π°Π·ΠΈ конструкция. Но Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΠΈΠΌ струва Ρ‡ΡƒΠ΄ΠΎΠ²ΠΈΡ‰Π½ΠΈ усилия.
А Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅, ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ АНБ ΠΈΠ»ΠΈ Π¦Π Π£, практичСски Π΅ нСвъзмоТно Π΄Π° сС ΠΏΡ€ΠΎΠ±ΠΈΠ΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π°, Π΄ΠΎΡ€ΠΈ Π·Π° VIP.

ΠžΡ‰Π΅ Ρ‰Π΅ добавя Π·Π° ssh Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅. Π’Π°ΠΌ няма ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅, ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ. Π’ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ сС Ρ€Π΅ΡˆΠ°Π²Π° ΠΏΠΎ Π΄Π²Π° Π½Π°Ρ‡ΠΈΠ½Π°.
Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ ssh с ΠΏΠ°Ρ€ΠΎΠ»Π°:
ΠŸΡ€ΠΈ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ ssh ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ трябва Π΄Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈ, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΠΎΠ² ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚ ssh ΡΡŠΡ€Π²ΡŠΡ€Π°.
И ΠΏΡ€ΠΈ послСдващи Π²Ρ€ΡŠΠ·ΠΊΠΈ, Π°ΠΊΠΎ сС появи ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ "Π½ΠΎΠ² ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚ ssh ΡΡŠΡ€Π²ΡŠΡ€Π°" - Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ сС ΠΎΠΏΠΈΡ‚Π²Π°Ρ‚ Π΄Π° Π²ΠΈ ΠΏΠΎΠ΄ΡΠ»ΡƒΡˆΠ²Π°Ρ‚.
Или ΠΏΡ€ΠΈ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ стС Π±ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΠ»ΡƒΡˆΠ²Π°Π½ΠΈ, Π° сСга ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠΈΡ€Π°Ρ‚Π΅ със ΡΡŠΡ€Π²ΡŠΡ€Π° Π±Π΅Π· посрСдници.
БобствСно, ΠΏΠΎΡ€Π°Π΄ΠΈ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ ΠΏΠΎΠ΄ΡΠ»ΡƒΡˆΠ²Π°Π½Π΅Ρ‚ΠΎ Π΅ лСсно, Π±ΡŠΡ€Π·ΠΎ ΠΈ Π±Π΅Π· усилия, Ρ‚Π°Π·ΠΈ Π°Ρ‚Π°ΠΊΠ° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° само Π² спСциални случаи Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ‚.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ ssh с ΠΊΠ»ΡŽΡ‡:
Π’Π·ΠΈΠΌΠ°ΠΌΠ΅ Ρ„Π»Π°ΡˆΠΊΠ°, записвамС Π½Π° нСя приватния ΠΊΠ»ΡŽΡ‡ Π·Π° ssh ΡΡŠΡ€Π²ΡŠΡ€Π° (Π·Π° Ρ‚ΠΎΠ²Π° ΠΈΠΌΠ° Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈ ΠΈ ΠΊΡƒΠΏ нюанси, Π½ΠΎ пиша Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½ΠΎ, Π° Π½Π΅ инструкция Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅).
ΠŸΡƒΠ±Π»ΠΈΡ‡Π½ΠΈΡΡ‚ ΠΊΠ»ΡŽΡ‡ оставямС Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π°, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Ρ‰Π΅ бъдС ssh ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΈ ΡΡŠΡ‰ΠΎ Π³ΠΎ Π΄ΡŠΡ€ΠΆΠΈΠΌ Π² Ρ‚Π°ΠΉΠ½Π°.
ΠŸΡ€ΠΈΠ½Π°ΡΡΠΌΠ΅ Ρ„Π»Π°ΡˆΠΊΠ°Ρ‚Π° Π΄ΠΎ ΡΡŠΡ€Π²ΡŠΡ€Π°, Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ я, ΠΊΠΎΠΏΠΈΡ€Π°ΠΌΠ΅ приватния ΠΊΠ»ΡŽΡ‡, Π° Ρ„Π»Π°ΡˆΠΊΠ°Ρ‚Π° изгарямС ΠΈ Ρ€Π°Π·ΠΏΡ€ΡŠΡΠΊΠ²Π°ΠΌΠ΅ ΠΏΠ΅ΠΏΠ΅Π»Ρ‚Π° ΠΏΠΎ Π²ΡΡ‚ΡŠΡ€Π° (ΠΈΠ»ΠΈ ΠΏΠΎΠ½Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°ΠΌΠ΅ с запълванС Π½Π° Π½ΡƒΠ»ΠΈ).
И Ρ‚ΠΎΠ²Π° Π΅ всичко β€” слСд Ρ‚Π°ΠΊΠ°Π²Π° опСрация Ρ‰Π΅ бъдС нСвъзмоТно Π΄Π° сС Ρ…Π°ΠΊΠ½Π΅ Ρ‚Π°ΠΊΠΎΠ²Π° ssh Π²Ρ€ΡŠΠ·ΠΊΠ°. Π Π°Π·Π±ΠΈΡ€Π° сС, слСд 10 Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π½Π° ΡΡƒΠΏΠ΅Ρ€ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€Π΅Π³Π»Π΅Π΄Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° β€” Π½ΠΎ Ρ‚ΠΎΠ²Π° Π΅ ΠΎΡ‚Π΄Π΅Π»Π½Π° история.

Π˜Π·Π²ΠΈΠ½ΡΠ²Π°ΠΉΡ‚Π΅ Π·Π° ΠΎΡ„Ρ„Ρ‚ΠΎΠΏΠΈΠΊΠ°.

И Ρ‚Π°ΠΊΠ°, сСга ΠΊΠΎΠ³Π°Ρ‚ΠΎ тСорията Π΅ извСстна, Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° Π½Π° създаванС Π½Π° ssl сСртификат.

Π‘ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Β«openssl genrsaΒ» създавамС частСн ΠΊΠ»ΡŽΡ‡ ΠΈ «шаблони» Π·Π° публичния ΠΊΠ»ΡŽΡ‡.
Β«Π¨Π°Π±Π»ΠΎΠ½ΠΈΡ‚Π΅Β» ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ Π½Π° Ρ‚Ρ€Π΅Ρ‚Π° страна, Π½Π° която ΠΏΠ»Π°Ρ‰Π°ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ $9 Π·Π° Π½Π°ΠΉ-простия сСртификат.

Π‘Π»Π΅Π΄ няколко часа ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ ΠΎΡ‚ Ρ‚Π°Π·ΠΈ Ρ‚Ρ€Π΅Ρ‚Π° страна нашия Β«ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½Β» ΠΊΠ»ΡŽΡ‡ ΠΈ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ няколко ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ»ΡŽΡ‡Π°.

Π—Π°Ρ‰ΠΎ Π΄Π° ΠΏΠ»Π°Ρ‰Π°ΠΌΠ΅ Π½Π° Ρ‚Ρ€Π΅Ρ‚Π° страна Π·Π° оформянС Π½Π° моя ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡ β€” Ρ‚ΠΎΠ²Π° Π΅ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Π²ΡŠΠΏΡ€ΠΎΡ, Ρ‚ΡƒΠΊ няма Π΄Π° Π³ΠΎ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅.

Π‘Π΅Π³Π° Π΅ ясно какъв Π΅ ΡΠΌΠΈΡΡŠΠ»ΡŠΡ‚ Π½Π° надписа:

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

Π’ ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° Β«\/etc\/sslΒ» са ΡΡŠΠ±Ρ€Π°Π½ΠΈ всички Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ssl Π²ΡŠΠΏΡ€ΠΎΡΠΈ.
domain1.com β€” ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π°.
2018 β€” Π³ΠΎΠ΄ΠΈΠ½Π°Ρ‚Π° Π½Π° създаванС Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅.
Β«keyΒ» β€” ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Ρ„Π°ΠΉΠ»ΡŠΡ‚ Π΅ частСн ΠΊΠ»ΡŽΡ‡.

И ΡΠΌΠΈΡΡŠΠ»ΡŠΡ‚ Π½Π° Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ»:

smtpd_tls_cert_file=\/etc\/ssl\/domain1.com.2018.chained.crt
domain1.com β€” ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π°.
2018 β€” Π³ΠΎΠ΄ΠΈΠ½Π°Ρ‚Π° Π½Π° създаванС Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅.
chained β€” ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Ρ‚ΡƒΠΊ Π΅ Π²Π΅Ρ€ΠΈΠ³Π° ΠΎΡ‚ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ (ΠΏΡŠΡ€Π²ΠΈΡΡ‚ β€” Π½Π°ΡˆΠΈΡΡ‚ ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΈ останалитС β€” ΠΊΠΎΠΈΡ‚ΠΎ са ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈ ΠΎΡ‚ компанията, която Π΅ ΠΈΠ·Π³ΠΎΡ‚Π²ΠΈΠ»Π° публичния ΠΊΠ»ΡŽΡ‡).
crt β€” ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Ρ‚ΡƒΠΊ Π΅ Π³ΠΎΡ‚ΠΎΠ² сСртификат (ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡ с тСхничСски пояснСния).

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

Π’Π°Π·ΠΈ настройка Π² Ρ‚ΠΎΠ·ΠΈ случай Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π½ΠΎ Π΅ написана Π·Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π—Π°Ρ‰ΠΎΡ‚ΠΎ Π³Ρ€Π΅ΡˆΠΊΠ° Π² Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° спам ΠΎΡ‚ вашия ΡΡŠΡ€Π²ΡŠΡ€ (Π±Π΅Π· Π²Π°ΡˆΠ΅Ρ‚ΠΎ Π·Π½Π°Π½ΠΈΠ΅).

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π΄ΠΎΠΊΠ°Π·Π²Π°ΠΉΡ‚Π΅ Π½Π° всички, Ρ‡Π΅ Π½Π΅ стС Π²ΠΈΠ½ΠΎΠ²Π½ΠΈ.

recipient_delimiter = +

Много Ρ…ΠΎΡ€Π° Π½Π΅ знаят, Π½ΠΎ Ρ‚ΠΎΠ²Π° Π΅ стандартният символ Π·Π° раздСлянС Π½Π° ΠΏΠΎΡ‰ΠΈΡ‚Π΅, ΠΈ Ρ‚ΠΎΠ²Π° сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΎΡ‚ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ пощСнски ΡΡŠΡ€Π²ΡŠΡ€ΠΈ.

НапримСр, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ пощСнска кутия Β«username@gmail.comΒ», ΠΎΠΏΠΈΡ‚Π°ΠΉΡ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΡ‚Π΅ Π½Π° Β«username+spam@gmail.comΒ» β€” Π²ΠΈΠΆΡ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ станС.

inet_protocols = ipv4

МоТС Π΄Π° Π΅ ΠΎΠ±ΡŠΡ€ΠΊΠ²Π°Ρ‰ΠΎ.

Но Π½Π΅ Π΅ просто Ρ‚Π°ΠΊΠ°. ВсСки Π½ΠΎΠ² Π΄ΠΎΠΌΠ΅ΠΉΠ½ β€” ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ само IPv4, послС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΌ IPv6 Π·Π° всСки ΠΏΠΎΠΎΡ‚Π΄Π΅Π»Π½ΠΎ.

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

Π’ΡƒΠΊ Π·Π°Π΄Π°Π²Π°ΠΌΠ΅, Ρ‡Π΅ цялата входяща ΠΏΠΎΡ‰Π° ΠΎΡ‚ΠΈΠ²Π° Π² dovecot.
А ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π·Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½, пощСнска кутия, алиас β€” Π²ΠΈΠΆΡ‚Π΅ Π² Π‘Π”.

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

ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» = usermail
ΠΏΠ°Ρ€ΠΎΠ»Π° = mailpassword
хостовС = 127.0.0.1
ΠΈΠΌΠ΅ Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ = servermail
Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ = SELECT 1 FROM virtual_domains WHERE name='%s'

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

ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» = usermail
ΠΏΠ°Ρ€ΠΎΠ»Π° = mailpassword
хостовС = 127.0.0.1
ΠΈΠΌΠ΅ Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ = servermail
Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ = SELECT 1 FROM virtual_users WHERE email='%s'

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

ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» = usermail
ΠΏΠ°Ρ€ΠΎΠ»Π° = mailpassword
хостовС = 127.0.0.1
ΠΈΠΌΠ΅ Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ = servermail
Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ = 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

Π‘Π΅Π³Π° postfix Π·Π½Π°Π΅, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΈΠΌΠ΅ΠΉΠ»ΠΈ Π·Π° ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΡˆΠ½ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ само слСд удостовСряванС с dovecot.

Наистина Π½Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌ Π·Π°Ρ‰ΠΎ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° сС Π΄ΡƒΠ±Π»ΠΈΡ€Π° Ρ‚ΡƒΠΊ. Π’Π΅Ρ‡Π΅ посочихмС Π² β€žvirtual_transportβ€œ всичко Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

Но систСмата postfix Π΅ ΠΌΠ½ΠΎΠ³ΠΎ стара β€” вСроятно Ρ‚ΠΎΠ²Π° са спаситСлни ΠΌΠ΅Ρ€ΠΊΠΈ ΠΎΡ‚ стари Π²Ρ€Π΅ΠΌΠ΅Π½Π°.

smtpd_recipient_restrictions =
        ...

smtpd_helo_restrictions =
        ...

smtpd_client_restrictions =
        ...

Π’ΠΎΠ²Π° сС настройва ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»Π½ΠΎ Π·Π° всСки ΠΈΠΌΠ΅ΠΉΠ» ΡΡŠΡ€Π²ΡŠΡ€.

Π Π°Π·ΠΏΠΎΠ»Π°Π³Π°ΠΌ с 3 ΠΈΠΌΠ΅ΠΉΠ» ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΈ Ρ‚Π΅Π·ΠΈ настройки са ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π·Π°Ρ€Π°Π΄ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ изисквания Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅.

НастройкитС трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½ΠΈ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ β€” Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай спам Ρ‰Π΅ Π½Π°Ρ…Π»ΡƒΠ΅ ΠΏΡ€ΠΈ вас ΠΈΠ»ΠΈ, ΠΎΡ‰Π΅ ΠΏΠΎ-лошо β€” спам Ρ‰Π΅ ΠΈΠ·Π»ΠΈΠ·Π° ΠΎΡ‚ вас.

# SPF
policyd-spf_time_limit = 3600

Настройка Π·Π° някакъв плъгин, ΡΠ²ΡŠΡ€Π·Π°Π½ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° SPF Π·Π° входящи ΠΈΠΌΠ΅ΠΉΠ»ΠΈ.

# 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

Настройка, която ΡƒΠΊΠ°Π·Π²Π°, Ρ‡Π΅ всички изходящи ΠΈΠΌΠ΅ΠΉΠ»ΠΈ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ снабдСни с DKIM подпис.

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

Π’ΠΎΠ²Π° Π΅ ΠΊΠ»ΡŽΡ‡ΠΎΠ² Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ Π² ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΈΠΌΠ΅ΠΉΠ»ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ ΠΎΡ‚ php скриптовС.

Π€Π°ΠΉΠ»ΡŠΡ‚ β€ž/etc/postfix/sdd_transport.pcreβ€œ:

/^www-domain1@domain1.com$/ domain1:
/^www-domain2@domain1.com$/ domain2:
/^www-domain3@domain1.com$/ domain3:
/@domain1.com$/             domain1:
/@domain2.com$/             domain2:
/@domain3.com$/             domain3:

Вляво β€” рСгулярни ΠΈΠ·Ρ€Π°Π·ΠΈ. Вдясно β€” Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚, с ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠ΅ΠΉΠ»ΡŠΡ‚ Π΅ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½.
Postfix, Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π°, Ρ‰Π΅ Π²Π·Π΅ΠΌΠ΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ ΠΎΡ‰Π΅ няколко Ρ€Π΅Π΄Π° конфигурация Π·Π° конкрСтния ΠΈΠΌΠ΅ΠΉΠ».

Как Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‰Π΅ бъдС ΠΏΡ€Π΅ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ postfix Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ ΠΈΠΌΠ΅ΠΉΠ» β€” Ρ‰Π΅ бъдС ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² β€žmaster.cfβ€œ.

Π Π΅Π΄ΠΎΠ²Π΅Ρ‚Π΅ 4, 5, 6 β€” Ρ‚Π΅ са основни. ΠžΡ‚ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° какъв Π΄ΠΎΠΌΠ΅ΠΉΠ½ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ ΠΈΠΌΠ΅ΠΉΠ» β€” Ρ‚Π°ΠΊΡŠΠ² Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ ΠΈ поставямС.
Но Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π² php скриптовСтС Π² стария ΠΊΠΎΠ΄ Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎΠ»Π΅Ρ‚ΠΎ β€žfromβ€œ. Π’ΠΎΠ³Π°Π²Π° Π½Π° ΠΏΠΎΠΌΠΎΡ‰ ΠΈΠ΄Π²Π° потрСбитСлското ΠΈΠΌΠ΅.

Бтатията ΠΈ Ρ‚Π°ΠΊΠ° Π΅ ΠΎΠ±ΡˆΠΈΡ€Π½Π° β€” Π½Π΅ искам Π΄Π° сС отклонявам към настройкитС Π½Π° nginx+fpm.

Накратко β€” Π·Π° всСки сайт Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ свой linux-мярка собствСник. И ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, свой fpm-ΠΏΡƒΠ».

Fpm-ΠΏΡƒΠ»ΡŠΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° всяка вСрсия Π½Π° php (Ρ‚ΠΎΠ²Π° Π΅ прСкрасно, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½Π° Π΅Π΄ΠΈΠ½ ΡΡŠΡ€Π²ΡŠΡ€ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π·Π° ΡΡŠΡΠ΅Π΄Π½ΠΈΡ‚Π΅ сайтовС ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° вСрсия Π½Π° php ΠΈ Π΄ΠΎΡ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ php.ini).

Π’Π°ΠΊΠ° Ρ‡Π΅ конкрСтният linux-ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» β€žwww-domain2β€œ ΠΈΠΌΠ° сайт domain2.com. На Ρ‚ΠΎΠ·ΠΈ сайт ΠΈΠΌΠ° ΠΊΠΎΠ΄ Π·Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅ΠΉΠ»ΠΈ Π±Π΅Π· ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ»Π΅Ρ‚ΠΎ ΠΎΡ‚.

Π’Π°ΠΊΠ° Ρ‡Π΅ Π΄ΠΎΡ€ΠΈ Π² Ρ‚Π°ΠΊΡŠΠ² случай ΠΈΠΌΠ΅ΠΉΠ»ΠΈΡ‚Π΅ Ρ‰Π΅ ΠΈΠ·Π»ΠΈΠ·Π°Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΈ Π½ΠΈΠΊΠΎΠ³Π° няма Π΄Π° ΠΏΠΎΠΏΠ°Π΄Π½Π°Ρ‚ Π² спам.

ΠœΠΎΡΡ‚ β€ž/etc/postfix/master.cfβ€œ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

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

Π€Π°ΠΉΠ»ΡŠΡ‚ Π½Π΅ Π΅ напълно прСдставСн β€” Ρ‚ΠΎΠΉ Π²Π΅Ρ‡Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ голям.
ΠžΡ‚Π±Π΅Π»ΡΠ·Π°Ρ… само Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΎ.

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}

Π’ΠΎΠ²Π° са настройкитС, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ със 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

ПозволявамС ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ с пощСнския ΡΡŠΡ€Π²ΡŠΡ€ ΠΏΡ€Π΅Π· ΠΏΠΎΡ€Ρ‚ 587.
Π—Π° Ρ†Π΅Π»Ρ‚Π° Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° сС Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅.

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

Π’ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° SPF.

apt-get install postfix-policyd-spf-python

Π©Π΅ инсталирамС ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π·Π° ΠΏΠΎ-Π³ΠΎΡ€Π΅ SPF ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

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

А Ρ‚ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-интСрСсното. Π’ΠΎΠ²Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ писма Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ Π΄ΠΎΠΌΠ΅ΠΉΠ½ с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ IPv4/IPv6 адрСс.

ΠŸΡ€Π°Π²ΠΈ сС Ρ‚ΠΎΠ²Π° Π·Π°Ρ€Π°Π΄ΠΈ rDNS. rDNS Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π½ΠΈΠ· ΠΏΠΎ IP адрСс.
И Π·Π° ΠΏΠΎΡ‰Π°Ρ‚Π°, Ρ‚Π°Π·ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π°Π²Π°Π½Π΅, Ρ‡Π΅ helo наистина ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° rDNS Π½Π° адрСса, ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ ΠΈΠΌΠ΅ΠΉΠ»ΡŠΡ‚.

Ако helo Π½Π΅ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° Π½Π° ΠΏΠΎΡ‰Π°Ρ‚Π°, ΠΎΡ‚ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ³ΠΎΡ‚ΠΎ Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ ΠΈΠΌΠ΅ΠΉΠ»ΡŠΡ‚ β€” сС начисляват спам Ρ‚ΠΎΡ‡ΠΊΠΈ.

Helo Π½Π΅ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° rDNS β€” начисляват сС ΠΌΠ½ΠΎΠ³ΠΎ спам Ρ‚ΠΎΡ‡ΠΊΠΈ.
Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, Π·Π° всСки Π΄ΠΎΠΌΠ΅ΠΉΠ½ трябва Π΄Π° ΠΈΠΌΠ° свой IP адрСс.
Π—Π° OVH β€” Π² ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° ΠΈΠΌΠ° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° сС ΡƒΠΊΠ°Π·Π²Π° rDNS.
Π—Π° tech.ru β€” ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ сС Ρ€Π΅ΡˆΠ°Π²Π° Ρ‡Ρ€Π΅Π· ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π°.
Π—Π° AWS β€” ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ сС Ρ€Π΅ΡˆΠ°Π²Π° Ρ‡Ρ€Π΅Π· ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π°.
Β«inet_protocolsΒ» ΠΈ Β«smtp_bind_address6Β» β€” Ρ‚ΠΎΠ²Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° IPv6.
Π—Π° IPv6 ΡΡŠΡ‰ΠΎ трябва Π΄Π° сС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π° rDNS.
Β«syslog_nameΒ» β€” Ρ‚ΠΎΠ²Π° Π΅ Π·Π° улСсняванС Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅.

Π—Π°ΠΊΡƒΠΏΡƒΠ²Π°Π½Π΅ Π½Π° сСртификати ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ Ρ‚ΡƒΠΊ.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° postfix+dovecot Ρ‚ΡƒΠΊ.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° SPF.

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

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

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° mysql, инсталирамС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ.

Π€Π°ΠΉΠ» Β«/etc/dovecot/conf.d/10-auth.confΒ»

disable_plaintext_auth = yes
auth_mechanisms = plain login

Авторизация само Π² ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½ Π²ΠΈΠ΄.

Π€Π°ΠΉΠ» Β«/etc/dovecot/conf.d/10-mail.confΒ»

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

Π’ΡƒΠΊ посочвамС мСстополоТСниСто Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° писмата.

Искам Ρ‚Π΅ Π΄Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½ΠΈ ΠΏΠΎ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ.

Π€Π°ΠΉΠ» Β«/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 {
  }
}

Π’ΠΎΠ²Π° Π΅ главният Ρ„Π°ΠΉΠ» Π·Π° настройкитС Π½Π° dovecot.
Π’ΡƒΠΊ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ Π½Π΅Π·Π°Ρ‰ΠΈΡ‚Π΅Π½ΠΈΡ‚Π΅ Π²Ρ€ΡŠΠ·ΠΊΠΈ.
И Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΌΠ΅ Π·Π°Ρ‰ΠΈΡ‚Π΅Π½ΠΈΡ‚Π΅ Π²Ρ€ΡŠΠ·ΠΊΠΈ.

Π€Π°ΠΉΠ» Β«/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
}

НастройвамС ssl. ΠŸΠΎΡΠΎΡ‡Π²Π°ΠΌΠ΅, Ρ‡Π΅ ssl β€” Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π΅Π½.
И самият сСртификат. Π’Π°ΠΆΠ΅Π½ Π΄Π΅Ρ‚Π°ΠΉΠ» Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° Β«localΒ». Вя ΡƒΠΊΠ°Π·Π²Π°, ΠΏΡ€ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ към ΠΊΠΎΠΉ Π»ΠΎΠΊΠ°Π»Π΅Π½ IPv4 β€” ΠΊΠΎΠΉ ssl сСртификат Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°.

ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, IPv6 Ρ‚ΡƒΠΊ Π½Π΅ Π΅ настроСн, Ρ‰Π΅ поправя Ρ‚ΠΎΠ²Π° пропусканС ΠΏΠΎ-късно.
XX.XX.XX.X5 (domain2) β€” ΡΠ΅Ρ€Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΡŠΡ‚ ΠΎΡ‚ΡΡŠΡΡ‚Π²Π°. Π—Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ трябва Π΄Π° сС посочва domain1.com.
XX.XX.XX.X2 (domain3) β€” ΡΠ΅Ρ€Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΡŠΡ‚ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½, Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС посочва domain1.com ΠΈΠ»ΠΈ domain3.com.

Π€Π°ΠΉΠ» Β«/etc/dovecot/conf.d/15-lda.confΒ»

protocol lda {
  mail_plugins = $mail_plugins sieve
}

Π’ΠΎΠ²Π° ΠΏΠΎ-късно Ρ‰Π΅ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π° spamassassin.

Π€Π°ΠΉΠ» Β«/etc/dovecot/conf.d/20-imap.confΒ»

protocol imap {
  mail_plugins = $mail_plugins antispam
}

Π’ΠΎΠ²Π° Π΅ antispam плъгин. НСобходим Π΅ Π·Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π° spamassassin ΠΏΡ€ΠΈ прСмСстванС Π²/ΠΎΡ‚ ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° Β«SpamΒ».

Π€Π°ΠΉΠ» Β«/etc/dovecot/conf.d/20-pop3.confΒ»

protocol pop3 {
}

ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ‚Π°ΠΊΡŠΠ² Ρ„Π°ΠΉΠ» ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°.

Π€Π°ΠΉΠ» Β«/etc/dovecot/conf.d/20-lmtp.confΒ»

ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» lmtp {
  mail_plugins = $mail_plugins sieve
  postmaster_address = admin@domain1.com
}

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ lmtp.

Π€Π°ΠΉΠ» "\/etc\/dovecot\/conf.d\/90-antispam.conf"

ΠΏΠ»Π°Π³ΠΈΠ½ {
  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
}

Настройки обучСния spamassassin Π²ΠΎ врСмя пСрСноса Π²\/ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ Β«SpamΒ».

Π€Π°ΠΉΠ» "\/etc\/dovecot\/conf.d\/90-sieve.conf"

ΠΏΠ»Π°Π³ΠΈΠ½ {
  sieve = ~\/.dovecot.sieve
  sieve_dir = ~\/sieve
  sieve_after = \/var\/lib\/dovecot\/sieve\/default.sieve
}

Π€Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с входящими письмами.

Π€Π°ΠΉΠ» "\/var\/lib\/dovecot\/sieve\/default.sieve"

require ["fileinto", "mailbox"];

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

НСобходимо ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»: Β«sievec default.sieveΒ».

Π€Π°ΠΉΠ» "\/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 Ρ„Π°ΠΉΠ»ΠΎΠ² для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.
А сам Ρ„Π°ΠΉΠ» β€” это способ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π€Π°ΠΉΠ» "\/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';

Π­Ρ‚ΠΎ соотвСтствуСт Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ настройкам для postfix.

Π€Π°ΠΉΠ» "\/etc\/dovecot\/dovecot.conf"

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

Основной Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.
Π’Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ здСсь ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ-добавляСм ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹.

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

apt-get install spamassassin spamc

Установим ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹.

adduser spamd --disabled-login

Π”ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ.

systemctl enable spamassassin.service

Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π°Π²Ρ‚ΠΎ-Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ spamassassin сСрвис ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅.

Π€Π°ΠΉΠ» "\/etc\/default\/spamassassin":

CRON=1

Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ автоматичСскоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ» Β«ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΒ».

Π€Π°ΠΉΠ» "\/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

НСобходимо ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² mysql Π‘Π” Β«saΒ» с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Β«saΒ» ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ Β«passwordΒ» (Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎΠ΅).

report_safe β€” это вмСсто письма Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΡΡ‹Π»Π°Ρ‚ΡŒΡΡ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎ письмС-спамС.
use_bayes β€” это настройки машинного обучСния spamassassin.

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ настройки spamassassin ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»ΠΈΡΡŒ Ρ€Π°Π½Π΅Π΅ согласно ΡΡ‚Π°Ρ‚ΡŒΠ΅.

ΠžΠ±Ρ‰Π°Ρ настройка Β«spamassassinΒ».
ΠŸΡ€ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Π‘ΠΏΠ°ΠΌ-писСм Π² IMAP ΠΏΠ°ΠΏΠΊΡƒ Β«SpamΒ».
ΠŸΡ€ΠΎ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ связку Dovecot + SpamAssassin.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΊ ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΡŽ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ обучСния spamassassin ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ писСм Π² imap ΠΏΠ°ΠΏΠΊΠ°Ρ… (ΠΈ Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ).

============= ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ сообщСству =============

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° искам Π΄Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ° идСя Π½Π° общността Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° сС повиши Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½ΠΈΡ‚Π΅ ΠΈΠΌΠ΅ΠΉΠ»ΠΈ. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ сС ΠΏΠΎΡ‚ΠΎΠΏΠΈΡ… дълбоко Π² Ρ‚Π΅ΠΌΠ°Ρ‚Π° Π·Π° ΠΈΠΌΠ΅ΠΉΠ»ΠΈΡ‚Π΅.

ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡΡ‚ Π΄Π° ΠΌΠΎΠΆΠ΅ Π½Π° своя ΠΊΠ»ΠΈΠ΅Π½Ρ‚ (outlook, thunderbird, browser-plugin, ...) Π΄Π° създадС ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅. ΠŸΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΈ частСн. ΠŸΡƒΠ±Π»ΠΈΡ‡Π½ΠΈΡΡ‚ β€” Π΄Π° сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π² DNS. Частният β€” Π΄Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. ИмСйл ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ публичния ΠΊΠ»ΡŽΡ‡ Π·Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π΄ΠΎ конкрСтния адрСсат.

И Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ спам ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΈΠ²Π° ΠΈΠΌΠ΅ΠΉΠ»ΠΈ (Π΄Π°, ΠΈΠΌΠ΅ΠΉΠ» ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ) β€” трябва Π΄Π° сС Π²ΡŠΠ²Π΅Π΄Π°Ρ‚ 3 ΠΏΡ€Π°Π²ΠΈΠ»Π°:

  1. Π—Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π΅Π½ истински подпис DKIM, Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π΅Π½ SPF, Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π΅Π½ rDNS.
  2. НСвронна ΠΌΡ€Π΅ΠΆΠ° Π½Π° Ρ‚Π΅ΠΌΠ° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π° антиспам + Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ към нСя ΠΎΡ‚ страната Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.
  3. ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΡŠΡ‚ Π½Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅ трябва Π΄Π° бъдС Ρ‚Π°ΠΊΡŠΠ², Ρ‡Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‰Π°Ρ‚Π° страна Π΄Π° ΠΈΠ·Ρ€Π°Π·Ρ…ΠΎΠ΄Π²Π° 100 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ CPU мощност Π·Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅ ΠΎΡ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‰Π°Ρ‚Π° страна.

ОсвСн ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΈΠΌΠ΅ΠΉΠ»ΠΈ β€” Π΄Π° сС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈ стандарт Π·Π° ΠΈΠΌΠ΅ΠΉΠ»-ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Β«Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ Π·Π°Ρ‰ΠΈΡ‚Π΅Π½Π° корСспондСнция». Π•Π΄ΠΈΠ½ ΠΎΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ (ΠΈΠΌΠ΅ΠΉΠ» кутия) ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π½Π° Π΄Ρ€ΡƒΠ³Π° ΠΈΠΌΠ΅ΠΉΠ» кутия ΠΈΠΌΠ΅ΠΉΠ» с ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π΅Π½ Ρ„Π°ΠΉΠ». Π’ ΠΈΠΌΠ΅ΠΉΠ»Π° тСкст-ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° Π·Π°ΠΏΠΎΡ‡Π²Π°Π½Π΅ Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π΅Π½ ΠΊΠ°Π½Π°Π» Π·Π° комуникация ΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡ Π½Π° притСТатСля Π½Π° ΠΈΠΌΠ΅ΠΉΠ» кутията (ΠΏΡ€ΠΈ Ρ‚ΠΎΠ²Π° частният ΠΊΠ»ΡŽΡ‡ Π΅ ΠΎΡ‚ страната Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°).

МоТС Π΄ΠΎΡ€ΠΈ Π΄Π° сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ спСциално Π·Π° всяка корСспондСнция. ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈ своя ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡ (ΡΡŠΡ‰ΠΎ създадСн спСциално Π·Π° Ρ‚Π°Π·ΠΈ корСспондСнция). Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΏΡŠΡ€Π²ΠΈΡΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° слуТСбно ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΎ писмо (ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΎ с публичния ΠΊΠ»ΡŽΡ‡ Π½Π° втория ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π») β€” ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ ΠΌΡƒ вторият ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΠΌΠΎΠΆΠ΅ Π΄Π° счита, Ρ‡Π΅ ΡΡŠΠ·Π΄Π°Π΄Π΅Π½ΠΈΡΡ‚ ΠΊΠ°Π½Π°Π» Π·Π° комуникация Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° вторият ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΎ писмо β€” ΠΈ Ρ‚ΠΎΠ³Π°Π²Π° ΠΏΡŠΡ€Π²ΠΈΡΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΡΡŠΡ‰ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° смята създадСния ΠΊΠ°Π½Π°Π» Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π΅Π½.

Π—Π° Π±ΠΎΡ€Π±Π° с ΠΏΡ€ΠΈΡ…Π²Π°Ρ‰Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ ΠΏΠΎ ΠΏΡŠΡ‚Ρ β€” Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π΄Π° сС ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ ΠΏΠΎΠ½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ„Π»Π°ΡˆΠΊΠ°.

И Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ β€” Π·Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ всичко Ρ‚ΠΎΠ²Π° (Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ Β«Π° ΠΊΠΎΠΉ Ρ‰Π΅ ΠΏΠ»Π°Ρ‚ΠΈ Π·Π° Ρ‚ΠΎΠ²Π°?Β»):
Π’ΡŠΠ²Π΅Π΄Π΅Ρ‚Π΅ пощСнски сСртификати Π½Π° Ρ†Π΅Π½Π° ΠΎΡ‚ 10$ Π·Π° 3 Π³ΠΎΠ΄ΠΈΠ½ΠΈ. ΠšΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ позволят Π½Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‡Π° Π΄Π° посочи Π² dns, Ρ‡Π΅ β€žΠΌΠΎΠΈΡ‚Π΅ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ са Ρ‚Π°ΠΌβ€œ. И Ρ‰Π΅ Π΄Π°Π²Π°Ρ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π·Π°ΠΏΠΎΡ‡Π²Π°Π½Π΅ Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π΅Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅. ΠŸΡ€ΠΈ Ρ‚ΠΎΠ²Π° β€” Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚ Ρ‚Π°ΠΊΠΈΠ²Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½ΠΎ.
gmail Π½Π°ΠΉ-накрая ΠΌΠΎΠ½Π΅Ρ‚ΠΈΠ·ΠΈΡ€Π° своитС ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. Π—Π° 10$ Π·Π° 3 Π³ΠΎΠ΄ΠΈΠ½ΠΈ β€” ΠΏΡ€Π°Π²ΠΎ Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ Π·Π°Ρ‰ΠΈΡ‚Π΅Π½ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ Π·Π° корСспондСнция.

============= Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ =============

Π—Π° тСстванС Π½Π° цялата статия си ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ… Π΄Π° Π½Π°Π΅ΠΌΠ° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€ Π·Π° Π΅Π΄ΠΈΠ½ мСсСц ΠΈ Π΄Π° купя Π΄ΠΎΠΌΠ΅ΠΉΠ½ с ssl сСртификат.

Но ТитСйскитС обстоятСлства сС стСкоха Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ Π²ΡŠΠΏΡ€ΠΎΡ сС Π·Π°Π±Π°Π²ΠΈ с 2 мСсСца.
И Π΅Ρ‚ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΎΡ‚Π½ΠΎΠ²ΠΎ сС появи свободно Π²Ρ€Π΅ΠΌΠ΅ β€” Ρ€Π΅ΡˆΠΈΡ… Π΄Π° ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°ΠΌ статията Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΠ²Π°Ρ‚ΠΎ Π΅, Π° Π½Π΅ Π΄Π° рискувам Π΄Π° сС Π·Π°Π±Π°Π²ΠΈ публикацията ΠΎΡ‰Π΅ Π·Π° Π΅Π΄Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π°.

Ако ΠΈΠΌΠ° Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡŠΠΏΡ€ΠΎΡΠΈ ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° β€žΠ΅, Ρ‚ΡƒΠΊ Π½Π΅ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎβ€œ β€” Ρ‚ΠΎΠ³Π°Π²Π° вСроятно Ρ‰Π΅ сС намСрят сили наистина Π΄Π° Π²Π·Π΅ΠΌΠ° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€ с Π½ΠΎΠ² Π΄ΠΎΠΌΠ΅ΠΉΠ½ ΠΈ Π½ΠΎΠ² SSL сСртификат ΠΈ Π΄Π° опиша всичко ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ, Π° Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ β€” Π΄Π° открия всички пропуснати Π²Π°ΠΆΠ½ΠΈ Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π±ΠΈΡ… искал Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π° ΠΎΡ‚Π·ΠΈΠ²ΠΈ относно идСята Π·Π° пощСнскитС сСртификати. Ако идСята сС харСса β€” Ρ‰Π΅ сС ΠΎΠΏΠΈΡ‚Π°ΠΌ Π΄Π° намСря сили Π΄Π° напиша Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊ Π·Π° rfc.

ΠŸΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ части ΠΎΡ‚ статията β€” посочвайтС Π»ΠΈΠ½ΠΊ към Ρ‚Π°Π·ΠΈ статия.
ΠŸΡ€ΠΈ ΠΏΡ€Π΅Π²ΠΎΠ΄ Π½Π° ΠΊΠ°ΠΊΡŠΠ²Ρ‚ΠΎ ΠΈ Π΄Π° Π΅ Π΄Ρ€ΡƒΠ³ Π΅Π·ΠΈΠΊ β€” посочвайтС Π»ΠΈΠ½ΠΊ към Ρ‚Π°Π·ΠΈ статия.
На английски Π΅Π·ΠΈΠΊ сам Ρ‰Π΅ сС ΠΎΠΏΠΈΡ‚Π°ΠΌ Π΄Π° ΠΏΡ€Π΅Π²Π΅Π΄Π° ΠΈ Ρ‰Π΅ оставя ΠΊΡ€ΡŠΡΡ‚ΠΎΡΠ°Π½ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅.


Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster