postfix + dovecot + mysql αž“αŸ…αž›αžΎ FreeBSD

αžŸαŸαž…αž€αŸ’αžαžΈαžŽαŸ‚αž“αžΆαŸ†

αžαŸ’αž‰αž»αŸ†β€‹αž…αž„αŸ‹β€‹αžŸαž·αž€αŸ’αžŸαžΆβ€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž”αž˜αŸ’αžšαžΎβ€‹αžŸαŸ†αž”αž»αžαŸ’αžšβ€‹αž‡αžΆβ€‹αž™αžΌαžšβ€‹αž˜αž€β€‹αž αžΎαž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžαŸ’αž‰αž»αŸ†β€‹αž‘αžΎαž”β€‹αžαŸ‚β€‹αž”αžΆαž“β€‹αžŠαžΉαž„β€‹αž“αŸ…β€‹αž–αŸαž›β€‹αž“αŸαŸ‡ αž αžΎαž™β€‹αžαŸ’αž‰αž»αŸ†β€‹αž˜αž·αž“β€‹αž’αžΆαž…β€‹αžŸαŸ’αžœαŸ‚αž„β€‹αžšαž€β€‹αž–αŸαžαŸŒαž˜αžΆαž“β€‹αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž…αŸ’αžšαžΎαž“β€‹αž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αž αžΎαž™β€‹αž”αžΆαž“β€‹αž‡αžΆβ€‹αžαŸ’αž‰αž»αŸ†β€‹αžŸαž˜αŸ’αžšαŸαž…β€‹αž…αž·αžαŸ’αžβ€‹αžŸαžšαžŸαŸαžšβ€‹αž€αžΆαžšβ€‹αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–β€‹αž•αŸ’αžŸαžΆαž™β€‹αž›αž˜αŸ’αž’αž·αžβ€‹αžαžΆαž˜β€‹αžŠαŸ‚αž›β€‹αž’αžΆαž…β€‹αž’αŸ’αžœαžΎβ€‹αž‘αŸ…β€‹αž”αžΆαž“αŸ” αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž—αž•αŸ’αžŸαžΆαž™αž“αŸαŸ‡αž“αžΉαž„αž“αž·αž™αžΆαž™αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž’αŸ†αž–αžΈ postfix, dovecot, mysql, postfixadmin αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸαž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ‚αž˜αž‘αžΆαŸ†αž„αž’αŸ†αž–αžΈ spamassassin, clamav-milter (αž€αŸ†αžŽαŸ‚αž–αž·αžŸαŸαžŸαž“αŸƒ clamav αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ) postgrey αž€αŸαžŠαžΌαž…αž‡αžΆαž›αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž•αŸ’αž‘αŸαžšαžŸαžΆαžšαž₯αžαž”αžΆαž“αž€αžΆαžšαž‘αŸ…αž€αžΆαž“αŸ‹αžαž Spam (dovecot - αž”αŸ’αžšαž αŸ„αž„αž–αŸ’αžšαžΆαž”) αŸ”

αž€αžΆαžšαžšαŸ€αž”αž…αŸ†

αž‡αžΆαžŠαŸ†αž”αžΌαž„ αž…αžΌαžšαž™αžΎαž„αžŠαŸ†αž‘αžΎαž„αž€αž‰αŸ’αž…αž”αŸ‹αžŠαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž„αžΆαžš (postfix, dovecot αž“αž·αž„ dovecot-pigeonhole αžαŸ’αžšαžΌαžœαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž–αžΈαž…αŸ’αžšαž€, dovecot-sieve can, αž‡αžΆαž‚αŸ„αž›αž€αžΆαžšαžŽαŸ, αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž–αžΈαž€αž‰αŸ’αž…αž”αŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαž‡αžΆαž„αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž…αŸ’αžšαž€ αž“αž·αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ αž αŸαžαž»αž•αž›αž“αŸαŸ‡ dovecot αž’αžΆαž…αž˜αž·αž“αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™ dovecot- Sieve) αŸ” αžαŸ„αŸ‡αžŠαŸ†αž‘αžΎαž„αž€αž‰αŸ’αž…αž”αŸ‹αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

pkg install apache24 php73 mod_php73 php73-extensions php73-mysqli php73-mbstring php73-openssl clamav-milter postgrey spamassassin mysql57-server openssl wget

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŠαŸ†αž‘αžΎαž„αžšαž½αž… αž™αžΎαž„αž“αžΉαž„αžŠαžΆαž€αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ autostartαŸ–

#postfix ΠΈ dovecot Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ этому ΠΏΠΎΠ·ΠΆΠ΅
sysrc postfix_enable="YES"
sysrc dovecot_enable="YES"

sysrc mysql_enable="YES"
sysrc apache24_enable="YES"

sysrc spamd_flags="-u spamd -H /var/spool/spamd"
sysrc spamd_enable="YES"

sysrc postgrey_enable="YES"

sysrc clamav_clamd_enable="YES"
sysrc clamav_milter_enable="YES"
sysrc clamav_freshclam_enable="YES"
#freshclam Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ слуТбу ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ обновлСния 12 Ρ€Π°Π·
sysrc clamav_freshclam_flags="--daemon --checks=12"

αžαŸ„αŸ‡αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ–

service apache24 start
service mysql-server start
#ΠŸΠ΅Ρ€Π΅Π΄ запуском spamassassin Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±Π°Π·Ρ‹ ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°
sa-update
sa-compile
service sa-spamd start
#Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ обновлСния Π±Π°Π· clamav ΠΏΠ΅Ρ€Π΅Π΄ запуском
freshclam
service clamav-clamd start
service clamav-freshclam start
service clamav-milter start
#ΠŸΠ΅Ρ€Π΅Π΄ запуском postgrey Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скрип ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ(/usr/local/etc/rc.d/postgrey), для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠ»ΠΈΡΡŒ Π² "Π±Π΅Π»Ρ‹ΠΉ" список послС 4-Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ писСм, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ строку : ${postgrey_flags:=--inet=10023} ΠΈ привСсти Π΅Ρ‘ ΠΊ Π²ΠΈΠ΄Ρƒ:
: ${postgrey_flags:=--inet=10023 --auto-whitelist-clients=4}
service postgrey start

αž€αž»αŸ†αž—αŸ’αž›αŸαž…αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ… httpd.conf αž”αž“αŸ’αž‘αžΆαžαŸ‹αžŠαŸ‚αž›αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ php αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„ apache αž“αž·αž„ postfixadmin αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ–

<FilesMatch ".php$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

<IfModule dir_module>
    DirectoryIndex index.php
</IfModule>

#А Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ домашний ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ postfixadmin

DocumentRoot "/usr/local/www/apache24/data/postfixadmin-3.2/public"

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αžαžαž―αž€αžŸαžΆαžšαž αžΎαž™αž‘αžΆαž‰αž™αž€ postfixadmin

cd /usr/local/www/apache24/data

αž‘αžΆαž‰αž™αž€ postfixadmin (αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžšαž€αŸ†αžŽαŸ‚αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž‚αžΊ 3.2)

wget --no-check-certificate https://sourceforge.net/projects/postfixadmin/files/postfixadmin/postfixadmin-3.2/postfixadmin-3.2.tar.gz

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸαŸ‡ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž–αž“αŸ’αž›αžΆαž”αŸαžŽαŸ’αžŽαžŸαžΆαžšαž‘αŸ…αž€αŸ’αž“αž»αž„αžαžαž“αŸαŸ‡αž αžΎαž™αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž˜αŸ’αž…αžΆαžŸαŸ‹αžαžαŸ–

gzip -d postfixadmin-3.2.tar.gz
tar -xvf postfixadmin-3.2.tar
chown -R www:www /usr/local/www/apache24/data
service apache24 restart

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž™αžΎαž„αž“αžΉαž„αžšαŸ€αž”αž…αŸ†αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ postfixadmin αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŠαŸ†αž‘αžΎαž„ mysql-secure-installation (αž–αžΆαž€αŸ’αž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαž€αŸ’αž“αž»αž„αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž“αŸαŸ‡αž“αžΉαž„αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαžαž€αŸ’αž“αž»αž„ mysql αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αžŠαŸ†αž”αžΌαž„αž“αŸƒ mysql αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž…αžΌαž›αŸ” αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„ mysql αž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αžŸαž·αž‘αŸ’αž’αž·αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž“αžΆαž„αŸ–

mysql -p -r
alter user 'root'@'localhost' identified by 'password123';
create database postfix;
grant all privileges on postfix.* to 'postfix'@'localhost' identified by 'password123';
exit

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž―αž€αžŸαžΆαžš config.inc.php αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαž“αŸαŸ‡ αž―αž€αžŸαžΆαžšαž“αŸαŸ‡αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžαž /usr/local/www/apache24/data/postfixadmin-3.2/ αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαž“αŸαŸ‡αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœ αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž”αž“αŸ’αž‘αžΆαžαŸ‹αž‡αžΆαž…αŸ’αžšαžΎαž“ αž αžΎαž™αž“αžΆαŸ†αžœαžΆαž˜αž€ αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž˜αžΆαž“αž“αŸαž™αžαžΆ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ apache αž‘αžΎαž„αžœαž·αž‰ αž’αŸ’αž“αž€αž€αŸαžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαžαžαžαž―αž€αžŸαžΆαžš templates_c αž“αŸ…αž€αŸ’αž“αž»αž„αžαž /usr/local/www/apache24/data/postfixadmin-3.2 αž αžΎαž™αž€αŸ†αžŽαžαŸ‹αž˜αŸ’αž…αžΆαžŸαŸ‹ www αž‘αŸ…αžœαžΆαŸ” :

mkdir /usr/local/www/apache24/data/postfixadmin-3.2/templates_c
chown -R www:www /usr/local/www/apache24/data/postfixadmin-3.2/templates_c

$CONF['configured'] = true
#Π΄Π°Π½Π½Ρ‹ΠΉ Ρ…ΡΡˆ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² вэб интСрфСйсС postfixadmin ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π΄Π°Π½Π½ΡƒΡŽ строку.
$CONF['setup_password'] = 'dd28fb2139a3bca426f02f60e6877fd5:13d2703c477b0ab85858e3ac5e076a0a7a477315';
$CONF['default_language'] = 'ru'
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
#ΠŸΠ°Ρ€ΠΎΠ»ΡŒ ΠΈ имя Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ создал Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅
$CONF['database_password'] = 'password123';
$CONF['database_name'] = 'postfix';

service apache24 restart

SSL αžŠαŸ‚αž›αž”αžΆαž“

αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αžΌαž“αžŸαŸ„αž˜αž½αž™ αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„αž“αŸ…αž›αžΎαž‚αŸαž αž‘αŸ†αž–αŸαžš postfix.org αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž’αžΆαž‡αŸ’αž‰αžΆαž’αžšαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αŸαžαŸ’αžšαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αžαž /etc/ssl αž αžΎαž™αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ’αž‚αŸ’αžšαžΈαž”αŸ–

cd /etc/ssl
/usr/local/openssl/misc/CA.pl -newca

αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αž‚αŸ’αžšαžΈαž” αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž½αžšαžšαž€αžˆαŸ’αž˜αŸ„αŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžš αž€αž»αŸ†αž”αž‰αŸ’αž…αžΌαž›αž’αŸ’αžœαžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž…αž»αž… Enter αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž“αžΉαž„αžŸαž½αžšαž’αŸ’αž“αž€αž±αŸ’αž™αž”αž„αŸ’αž€αžΎαžαž–αžΆαž€αŸ’αž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžš αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž“αžΉαž„αž˜αžΆαž“αžŸαŸ†αžŽαž½αžšαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžš .

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαžαžŸαŸ„αž―αž€αž‡αž“ (αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž–αžΆαž€αŸ’αž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹) αž“αž·αž„αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžŠαŸ‚αž›αž˜αž·αž“αž”αžΆαž“αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆ (αžˆαŸ’αž˜αŸ„αŸ‡αž’αž„αŸ’αž‚αž—αžΆαž–αžšαž”αžŸαŸ‹αž’αž„αŸ’αž‚αž€αžΆαžš (ឧ. αž•αŸ’αž“αŸ‚αž€) [] αžαŸ’αžšαžΌαžœαžαŸ‚αžαž»αžŸαž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžαžΆαž„αž›αžΎαŸ–

openssl req -new -newkey rsa:4096 -nodes -keyout foo-key.pem -out foo-req.pem

αžαŸ„αŸ‡αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆαž›αžΎαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆ (αž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰αž…αŸ†αž“αž½αž“αžαŸ’αž„αŸƒαž…αŸ’αžšαžΎαž“αžαžΆαž˜αžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžš)αŸ–

openssl ca -out foo-cert.pem -days 365 -infiles foo-req.pem

αž‘αž»αž€αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž“αŸ…αž€αŸ’αž“αž»αž„αžαžαž―αž€αžŸαžΆαžšαž“αŸαŸ‡ αž¬αž•αŸ’αž‘αŸαžšαžœαžΆαž‘αŸ…αžαžαžŠαŸ‚αž›αž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž“αŸ„αŸ‡ "αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹" postfix αž“αž·αž„ dovecote αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ„αž™αž‚αž·αžαž‚αžΌαžšαž–αžΈαž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαž“αžΉαž„αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžαžαž“αŸαŸ‡αŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ vmail

αž˜αž»αž“αž–αŸαž›αž™αžΎαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ†αž‘αžΎαž„ postfix, dovecot αž“αž·αž„ dovecot-pigeonhole αžŸαžΌαž˜αž”αž„αŸ’αž€αžΎαžαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž“αž·αž„αž€αŸ’αžšαž»αž˜ (αž€αŸ’αžšαž»αž˜αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·) vmail αž€αŸαžŠαžΌαž…αž‡αžΆαžαžαžŠαŸ‚αž›αžŸαŸ†αž”αž»αžαŸ’αžšαž“αžΉαž„αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αŸ”

pw useradd -n vmail -s /usr/sbin/nologin -u 1000 -d /var/vmail

αžαŸ„αŸ‡αž”αž„αŸ’αž€αžΎαžαžαžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ mail αž αžΎαž™αž€αŸ†αžŽαžαŸ‹ user vmail αž‡αžΆαž˜αŸ’αž…αžΆαžŸαŸ‹αŸ–

mkdir /var/vmail
chown -R vmail:vmail /var/vmail
chmod -R 744 /var/vmail

Postfix, dovecot, dovecot-pigeonhole

αžŠαžΌαž…αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαžšαžŸαŸαžšαž–αžΈαž˜αž»αž“ αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž–αžΈαž…αŸ’αžšαž€ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαžΎαž˜αŸ’αž”αžΈαž‘αžΆαž‰αž™αž€ αž“αž·αž„αž–αž“αŸ’αž›αžΆαž…αŸ’αžšαž€αŸ–

portsnap fetch extract

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž–αž“αŸ’αž›αžΆαž…αŸ’αžšαž€αž…αŸαž‰ αžŸαžΌαž˜αž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αžαžαž―αž€αžŸαžΆαžš dovecot αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž…αŸ’αžšαž€ (αžαŸ’αžšαžΌαžœαžαŸ‚αž–αž·αž“αž·αžαŸ’αž™ mysql support) αž αžΎαž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš build (BATCH=yes αž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž€αž»αŸ†αžŸαž½αžšαžŸαŸ†αžŽαž½αžšαž€αŸ†αž‘αž»αž„αž–αŸαž›αžŠαŸ†αž‘αžΎαž„)αŸ–

cd /usr/ports/mail/dovecot
make config
make BATCH=yes install clean

αž’αŸ’αžœαžΎαžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžŠαžΌαž…αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™ postfix αž“αž·αž„ dovecot-pigeonhole

Dovecot-pigeonholeαŸ–

cd /usr/ports/mail/dovecot-pigeonhole
make BATCH=yes install clean

postfix: αž€αŸαž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž…αŸ’αžšαž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš mysql

cd  /usr/ports/mail/postfix-sasl
make config
make BATCH=yes install clean

αž˜αž»αž“αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš dovecot αžŸαžΌαž˜αž…αž˜αŸ’αž›αž„ "configs"αŸ–

 cp -R /usr/local/etc/dovecot/example-config/*  /usr/local/etc/dovecot

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŠαŸ†αž‘αžΎαž„ postfix αž“αž·αž„ dovecot αžŸαžΌαž˜αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ–

service postfix start
service dovecot start

αžœαžΆαž€αŸαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž•αž„αžŠαŸ‚αžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžαžαžŠαŸ‚αž›αž˜αŸ‰αžΌαžŒαž»αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαžΆαžšαž₯αžαž”αžΆαž“αž€αžΆαžšαž‘αŸ…αž€αžΆαž“αŸ‹αžαžαžŸαžΆαžšαž₯αžαž”αžΆαž“αž€αžΆαžšαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αž€αŸ’αžšαž„ αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αžαžαž“αŸαŸ‡αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžαž /usr/local/etc/dovecot/conf.d αžˆαŸ’αž˜αŸ„αŸ‡αžαžαž‚αžΊ def αž™αžΎαž„αž“αžΉαž„αž”αž„αŸ’αž€αžΎαžαžαžαž―αž€αžŸαžΆαžšαž“αŸαŸ‡ αž“αž·αž„αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž€αžΌαžŠαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αž„αž€αŸ’αžšαž„ αž αžΎαž™αž€αŸ†αžŽαžαŸ‹αž˜αŸ’αž…αžΆαžŸαŸ‹αž“αŸƒαžαžαž“αŸαŸ‡αž‘αŸ…αž‡αžΆ vmail αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ–

mkdir /usr/local/etc/dovecot/conf.d/def
touch /usr/local/etc/dovecot/conf.d/def/default.sieve
chown -R vmail:vmail /usr/local/etc/dovecot/conf.d/def
chmod -R 744 /usr/local/etc/dovecot/conf.d/def

αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαž“αŸαŸ‡αžŠαžΆαž€αŸ‹αž”αž“αŸ’αž‘αžΆαžαŸ‹αŸ–

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

"αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’"

αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž•αŸ’αžαž›αŸ‹αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒ "configs" αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž˜αžαž·αž™αŸ„αž”αž›αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž½αž€αž‚αŸ αžαŸ’αž‰αž»αŸ†αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžŸαž„αŸ’αžŸαŸαž™ "config" αž“αŸƒ spamassassin αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž”αžΆαž“αžšαž€αžƒαžΎαž‰αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸ…αž›αžΎαž”αžŽαŸ’αžαžΆαž‰ (αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž…αžΆαž€αž…αŸαž‰αž–αžΈ "config" αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜) αžŸαžΌαž˜αž”αž“αŸ’αžαŸ‚αž˜αž“αŸ…αž€αŸ’αž“αž»αž„ αž˜αžαž·αž™αŸ„αž”αž›αŸ‹αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž›αŸ’αž’αž”αŸ†αž•αž»αžαžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ spamassassin αŸ”

αž”αŸ’αžšαŸƒαžŸαžŽαžΈαž™αŸ

αž‡αŸ†αž αžΆαž“αžŠαŸ†αž”αžΌαž„αž‚αžΊαž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαž‘αžΆαž‰αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αžŠαŸ‚αž“ αž€αžΌαžαžΆαž–αžΈαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž”αž„αŸ’αž€αžΎαžαžαžαž―αž€αžŸαžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž―αž€αžŸαžΆαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž“αž·αž„αž―αž€αžŸαžΆαžšαž…αžΆαŸ†αž”αžΆαž…αŸ‹αŸ–

mkdir /usr/local/etc/postfix/mysql
touch /usr/local/etc/postfix/mysql/relay_domains.cf
touch /usr/local/etc/postfix/mysql/virtual_alias_maps.cf
touch /usr/local/etc/postfix/mysql/virtual_alias_domain_maps.cf
touch /usr/local/etc/postfix/mysql/virtual_mailbox_maps.cf

αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαž“αŸƒαž―αž€αžŸαžΆαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž“αžΉαž„αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαžŠαžΌαž…αž“αŸαŸ‡αŸ–
relay_domains.cf

hosts = 127.0.0.1
user = postfix
password = password123
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1'

virtual_alias_maps.cf

hosts = 127.0.0.1
user = postfix
password = password123
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active ='1'

virtual_alias_domain_maps.cf

hosts = 127.0.0.1
user = postfix
password = password123
dbname = postfix
query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = '1'

virtual_mailbox_maps.cf

hosts = 127.0.0.1
user = postfix
password = password123
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND  active = '1'

master.cf

#Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ postfix ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ dovecot для доставки ΠΏΠΎΡ‡Ρ‚Ρ‹
dovecot unix - n n - - pipe
    flags=DRhu user=vmail:vmail argv=/usr/local/libexec/dovecot/deliver -f ${sender} -d ${recipient}

#Π£ΠΊΠ°ΠΆΠ΅ΠΌ слуТбС smtpd ΠΎ возмоТности Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· sasl, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ spamassassin Π±ΡƒΠ΄Π΅Ρ‚ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‡Ρ‚Ρƒ
smtp      inet  n       -       n       -       -       smtpd
  -o content_filter=spamassassin
  -o smtpd_sasl_auth_enable=yes

#Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚ 587 ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· sasl
submission inet n       -       n       -       -       smtpd
 -o smtpd_sasl_auth_enable=yes

#Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ слуТбС smtp ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· SASL
smtps     inet  n       -       n       -       -       smtpd
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_tls_wrappermode=yes

#Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Spamassassin
spamassassin   unix  -       n       n       -       -       pipe
   flags=DROhu user=vmail:vmail argv=/usr/local/bin/spamc -f -e
   /usr/local/libexec/dovecot/deliver -f ${sender} -d ${user}@${nexthop}

#628       inet  n       -       n       -       -       qmqpd
pickup    unix  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
#qmgr     unix  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp
        -o syslog_name=postfix/$service_name
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
retry     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
scache    unix  -       -       n       -       1       scache
postlog   unix-dgram n  -       n       -       1       postlogd

main.cf

#Если Π½Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ dovecot, Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ
local_transport = dovecot
#НС Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊ рСгистру список ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ SMTP-сСрвСр Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅ EHLO ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌΡƒ SMTP ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ
smtpd_discard_ehlo_keywords = CONNECT GET POST
#ΠŸΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΈΠ΄Ρ‘Ρ‚ вся информация ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ограничСния
smtpd_delay_reject = yes
#Π’Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ сСссию с привСтствия
smtpd_helo_required = yes
#Π—Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ сущСствуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ ящик, ΠΈΠ»ΠΈ Π½Π΅Ρ‚
disable_vrfy_command = yes
#Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²
broken_sasl_auth_clients = yes
#Π—Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡƒΡŽ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ
smtpd_sasl_security_options = noanonymous noactive nodictionary
smtp_sasl_security_options = noanonymous noactive nodictionary
#Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ dovecot для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ(ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ cyrus)
smtpd_sasl_type = dovecot
smtp_sasl_type = dovecot
#ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
smtpd_sasl_path = private/auth
#Бписок ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
local_recipient_maps = $virtual_mailbox_maps $virtual_alias_maps
#Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅ сущСствуСт, Ρ‚ΠΎΠ³Π΄Π° ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΠΈΡ‚ΡŒ ΠΏΠΎΡ‡Ρ‚Ρƒ
smtpd_reject_unlisted_recipient = yes
#Π›ΠΈΠΌΠΈΡ‚Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° писСм
message_size_limit = 10485760
#ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ spamassassin
spamassassin_destination_recipient_limit = 1
#Антивирус
milter_default_action = accept
milter_protocol = 2
#ΠŸΡƒΡ‚ΡŒ Π΄ΠΎ сокСта clamav
smtpd_milters = unix:/var/run/clamav/clmilter.sock
non_smtpd_milters = unix:/var/run/clamav/clmilter.sock
#MYSQL
relay_domains = mysql:/usr/local/etc/postfix/mysql/relay_domains.cf
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql/virtual_alias_maps.cf, mysql:/usr/local/etc/postfix/mysql/virtual_alias_domain_maps.cf
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql/virtual_mailbox_maps.cf
#ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° HELO
smtpd_helo_restrictions = permit_sasl_authenticated, reject_non_fqdn_helo_hostname, reject_invalid_hostname
#ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ для содСрТимого писСм
smtpd_data_restrictions = permit_sasl_authenticated reject_unauth_pipelining, reject_multi_recipient_bounce
#ΠŸΡ€Π°Π²ΠΈΠ»Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΏΠΎΡ‡Ρ‚Ρ‹
smtpd_sender_restrictions = permit_sasl_authenticated reject_sender_login_mismatch,reject_unauthenticated_sender_login_mismatch, reject_non_fqdn_sender, reject_unknown_sender_domain
#ΠŸΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΈΡ‘ΠΌΠ° ΠΏΠΎΡ‡Ρ‚Ρ‹(check_policy_service inet:127.0.0.1:10023 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ postgrey - Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΈΡ‘ΠΌ ΠΏΠΎΡ‡Ρ‚Ρ‹ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ€Π°Π·Π°)
smtpd_recipient_restrictions = permit_sasl_authenticated reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_multi_recipient_bounce, reject_unknown_client_hostname, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023
#Папка для ΠΏΠΎΡ‡Ρ‚Ρ‹
virtual_mailbox_base = /var/vmail
#uid ΠΈ gid vmail
virtual_minimum_uid = 1000
virtual_uid_maps = static:1000
virtual_gid_maps = static:1000
#Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ транспорт
virtual_transport = devecot
dovecot_destination_recipient_limit = 1
#Настройки ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ
smtp_use_tls=yes
smtp_tls_note_starttls_offer=yes
#строка smtp_tls_security_level=encrypt ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΠΏΠΎΡ‡Ρ‚Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· ssl, Ссли сСрвСр Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΡ‘ΠΌ ΠΏΠΎΡ‡Ρ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· ssl, Ρ‚ΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ smtp_tls_security_level=may(Ссли сСрвСр Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ssl, Ρ‚ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅)
smtp_tls_security_level=encrypt
smtp_tls_session_cache_database=btree:$data_directory/smtp_tls_session_cache
smtp_tls_CAfile=/etc/ssl/demoCA/cacert.pem
smtp_tls_key_file=/etc/ssl/foo-key.pem
smtp_tls_cert_file=/etc/ssl/foo-cert.pem
smtp_tls_session_cache_timeout=3600s
smtp_tls_protocols=!TLSv1.2
smtp_tls_loglevel=1
#строка smtpd_tls_security_level=encrypt ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΠΏΠΎΡ‡Ρ‚Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· ssl, Ссли сСрвСр Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΡ‘ΠΌ ΠΏΠΎΡ‡Ρ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· ssl, Ρ‚ΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ smtpd_tls_security_level=may(Ссли сСрвСр Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ssl, Ρ‚ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅)
smtpd_tls_security_level=encrypt
smtpd_use_tls=yes
smtpd_tls_auth_only=yes
smtpd_tls_loglevel=1
smtpd_tls_received_header=yes
smtpd_tls_session_cache_timeout=3600s
smtpd_tls_session_cache_database=btree:$data_directory/smtpd_tls_session_cache
smtpd_tls_key_file=/etc/ssl/foo-key.pem
smtpd_tls_cert_file=/etc/ssl/foo-cert.pem
smtpd_tls_CAfile= /etc/ssl/demoCA/cacert.pem
smtpd_tls_protocols=!TLSv1.2
#ΠŸΡƒΡ‚ΡŒ Π΄ΠΎ устройства Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° случайных чисСл
tls_random_source=dev:/dev/urandom
#ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ
compatibility_level = 2
#Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚Π° Π½Π΅ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½Π°, Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ Π΅Π΅ Π΅Ρ‰Ρ‘ Ρ€Π°Π·, Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅
soft_bounce = no
#БистСмная учётная запись UNIX ΠΈΠ· ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ запускаСтся ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ postfix
mail_owner = postfix
#Имя хоста Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π·Π²Ρ‘Ρ€Π½ΡƒΡ‚ postfix(Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ имя Π΄ΠΎΠΌΠ΅Π½Π° ΠΈ имя хоста ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚)
myhostname = $mydomain
#Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя Π΄ΠΎΠΌΠ΅Π½Π°
mydomain = virusslayer.su
myorigin = $myhostname
#КакиС интСрфСйсы Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ
inet_interfaces = all
#Бписок Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ доставка ΠΏΠΎΡ‡Ρ‚Ρ‹
mydestination = $mydomain, localhost, localhost.$mydomain
#ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚ ΠΊΠΎΠ΄ ΠΎΡ‚Π²Π΅Ρ‚Π° 550 ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пытаСтся ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ письмо Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ
unknown_local_recipient_reject_code = 550
#ΠΏΠ΅Ρ€Π΅ΡΡ‹Π»Π°Ρ‚ΡŒ ΠΏΠΎΡ‡Ρ‚Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ localhost
mynetworks_style = host
#Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Ρ‡Π΅Π³ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ-ΠΊΠ°ΠΊ подсСти ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ
mynetworks =
#ВСрсия ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ip
inet_protocols = ipv4
#Алиасы Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ(Ссли ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ)
alias_maps = hash:/etc/mail/aliases
alias_database = dbm:/etc/mail/aliases.db
#Π”Π°Π½Π½Ρ‹ΠΌ сообщСниСм сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΏΠΎΡ‡Ρ‚Ρ‹
smtpd_banner = $myhostname ESMTP $mail_name
#Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° сколько ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ‡Ρ‘Ρ‚
debug_peer_level = 2
#Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΊΠΈΠΌΠΈ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌΠΈ ΠΎΡ‚ΡΠ»ΠΊΠΆΠΈΠ²Π°Ρ‚ΡŒ пСрСсылку (для записи Π² Π»ΠΎΠ³, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ yandex.ru gmail.ru mail.ru ΠΈ Ρ‚.Π΄.)
debug_peer_list = 127.0.0.1
#ΠŸΡƒΡ‚ΡŒ Π΄ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
#Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с sendmail
sendmail_path = /usr/local/sbin/sendmail
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
#ΠŸΡƒΡ‚ΠΈ Π΄ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²
html_directory = /usr/local/share/doc/postfix
manpage_directory = /usr/local/man
sample_directory = /usr/local/etc/postfix
readme_directory = /usr/local/share/doc/postfix
meta_directory = /usr/local/libexec/postfix
shlib_directory = /usr/local/lib/postfix
queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix

ដូវខូត

dovecot.conf

#ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ dovecot
protocols = imap pop3
#КакиС адрСса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ
listen = *, ::
#ΠŸΡƒΡ‚ΡŒ Π΄ΠΎ Ρ„Π°ΠΉΠ»Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ извлСчСния ΠΊΠ²ΠΎΡ‚ ΠΈΠ· mysql
dict {
quota = mysql:/usr/local/etc/dovecot/dovecot-dict-sql.conf.ext
}
#Π˜Π·Π²Π»Π΅Ρ‡ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ
!include conf.d/*.conf
!include_try local.conf

dovecot-dict-sql.conf.ext

connect = host=127.0.0.1 dbname=postfix user=postfix password=password123
map {
pattern = priv/quota/storage
table = quota2
username_field = username
value_field = bytes
}
map {
pattern = priv/quota/messages
table = quota2
username_field = username
value_field = messages
}

dovecot-sql.conf.ext

#ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ MYSQL
driver = mysql
connect = host=127.0.0.1 dbname=postfix user=postfix password=password123
#Какая схСма ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ
default_pass_scheme = MD5
#Запросы для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ ΠΈ ΠΊΠ²ΠΎΡ‚
user_query = SELECT '/var/mail/%d/%n/' AS  home, 'maildir:/var/vmail/%d/%n' AS mail, 1000 AS uid, 1000 AS gid, concat('*:bytes=',quota) as quota_rule FROM mailbox 
WHERE username ='%u' AND active = '1'
password_query = SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, 'maildir:/var/vmail/%d/%n' as userdb_mail, 1000 as userdb_uid, 
1000 as userdb_gid, concat('*:bytes=',quota) AS userdb_quota_rule FROM mailbox WHERE username ='%u' AND active ='1'

10-auth.conf

#Π—Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ Π±Π΅Π· SSL
disable_plaintext_auth = yes
#Имя Π’Π°ΡˆΠ΅Π³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°
auth_realms = virusslayer.su
auth_default_realm = virusslayer.su
#Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅(ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ тСкстом, Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаи всС Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· ssl)
auth_mechanisms = plain login
#НСобходимо Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС строки, ΠΊΡ€ΠΎΠΌΠ΅ !include auth-sql.conf.ext, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ· Π±Π°Π·Ρ‹ mysql
#!include auth-deny.conf.ext
#!include auth-master.conf.ext
#!include auth-system.conf.ext
!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
#!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext

10-mail.conf

#ΠŸΡƒΡ‚ΡŒ Π΄ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… ящиков
mail_location = maildir:/var/vmail/%d/%n
#Π’ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ящик для ΠΏΡ€ΠΈΡ‘ΠΌΠ° писСм
namespace inbox {
inbox = yes
}
#uid ΠΈ gid vmail
mail_uid = 1000
mail_gid = 1000
#Бписок ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Π² Π΄Π°Π½Π½ΠΎΠΌ случаи quota
mail_plugins = quota

10-master.conf

#ОписаниС Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΈ использованиС ssl
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
}
service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
service submission-login {
inet_listener submission {
port = 587
}
}
#ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈ ΠΏΡ€Π°Π²Π° для ΠΈΡ… доступа ΠΊ Π±Π°Π·Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ описал, Π½ΠΎ эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ я понял ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ)
service auth {
unix_listener auth-userdb {
mode = 0600
user = vmail
group = vmail
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
}
#ΠŸΡ€Π°Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ vmail ΠΊ ΠΊΠ²ΠΎΡ‚Π°ΠΌ
service dict {
unix_listener dict {
mode = 0660
user =  vmail
group = vmail
}
}

10-ssl.conf

#Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ssl ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ (ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ Π±Π΅Π· sll Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹)
ssl = required
#ΠŸΡƒΡ‚ΠΈ Π΄ΠΎ сСртификатов
ssl_cert = </etc/ssl/foo-cert.pem
ssl_key = </etc/ssl/foo-key.pem
ssl_ca = </etc/ssl/demoCA/cacert.pem
#Какой Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»
ssl_min_protocol = TLSv1.2

15-lda.conf

quota_full_tempfail = no
lda_mailbox_autosubscribe = yes
protocol lda {
# Π’ Π΄Π°Π½Π½ΠΎΠΉ строкС ΡƒΠΊΠ°Π·Π°Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ sieve, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ спам Π² ΠΏΠ°ΠΏΠΊΡƒ спам
mail_plugins = $mail_plugins sieve quota
}

90-plugin.conf

#НСобходимо ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π° для пСрСноса спам писСм Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ "БПАМ", Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° chown -R vmail:vmail
#Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ скомпилируСтся Ρ„Π°ΠΉΠ» для пСрСброса спама Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ "БПАМ"
plugin {
#setting_name = value
sieve = /usr/local/etc/dovecot/conf.d/def/default.sieve
}

auth-sql.conf.ext

#Π€Π°ΠΉΠ»Ρ‹ с настройками доступа ΠΊ Π±Π°Π·Π΅ MYSQL
passdb {
driver = sql
# Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = sql
args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
}

Spamasassin

spamassassin β€œconfig” αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αž’αŸ’αžœαžΈαž˜αž½αž™αž”αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž‰αž»αŸ†αžαžΆαž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸƒαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž˜αž·αž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž‘αŸ αžŸαžΌαž˜αž’αŸ’αž“αž€αž‡αž½αž™αž‡αžΆαž˜αž½αž™αž‘αž·αž“αŸ’αž“αž“αŸαž™ β€œconfigβ€αŸ–

local.cf

rewrite_header Subject *****SPAM*****
report_safe 0
required_score 5.0
use_bayes 1
bayes_auto_learn 1
ifplugin Mail::SpamAssassin::Plugin::Shortcircuit
endif # Mail::SpamAssassin::Plugin::Shortcircuit

αžœαžΆαž€αŸαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž•αž„αžŠαŸ‚αžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αžŽαŸ’αžαž»αŸ‡αž”αžŽαŸ’αžαžΆαž›αž›αžΎαž’αž€αŸ’αžŸαžšαžŠαŸ‚αž›αž˜αžΆαž“ αž“αž·αž„αž‚αŸ’αž˜αžΆαž“αžŸαžΆαžšαž₯αžαž”αžΆαž“αž€αžΆαžšαŸ–

sa-learn --spam /path/spam/folder
sa-learn --ham /path/ham/folder

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž

αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‡αž‰αŸ’αž‡αžΆαŸ†αž„αž—αŸ’αž›αžΎαž„αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎ pf αž”αž“αŸ’αžαŸ‚αž˜ pf αž‘αŸ… autorun αž αžΎαž™αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž―αž€αžŸαžΆαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž…αŸ’αž”αžΆαž”αŸ‹αŸ–

sysrc pf_enable="YES"
sysrc pf_rules="/etc/0.pf"

αžαŸ„αŸ‡αž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžšαž‡αžΆαž˜αž½αž™αž…αŸ’αž”αžΆαž”αŸ‹αŸ–

ee /etc/0.pf

αž αžΎαž™αž”αž“αŸ’αžαŸ‚αž˜αž…αŸ’αž”αžΆαž”αŸ‹αž‘αŸ…αžœαžΆαŸ–

#Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€(Π½Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс lo0) ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ, ΠΈΠ»ΠΈ ΠΎΠ½ Π½Π΅ сработаСт
set skip on lo0
#Настроим доступ ΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ ΠΏΠΎΡ€Ρ‚Π°ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ deovecot, postfix, root
pass in quick proto { tcp, udp } from any to any port {53,25,465,587,110,143,993,995} user {dovecot,postfix,root} flags S/SA modulate state
pass out quick proto { tcp, udp } from any to any port {53,25,465,587,110,143,993,995} user {dovecot,postfix,root}
#Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ любой исходящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root
pass out quick proto {tcp,udp} from any to any user root
#Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° вэб интСрфСйс
pass in quick proto tcp from any to any port 80 flags S/SA modulate state
#SSH
pass in quick proto tcp from any to any port 22 flags S/SA modulate state
#Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ доступ Π² ΡΠ΅Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ clamav ΠΈ spamd 
pass out quick proto {tcp,udp} from any to any user {clamav,spamd}
#DNS ΠΈ ICMP
pass out quick proto {tcp,udp} from any to any port=53 keep state
pass out quick proto icmp from any to any
block from any to any fragment
block from any to any
block all

αž’αŸ’αž“αž€αž’αžΆαž…αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ pf αž‡αžΆαž˜αž½αž™αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαŸ–

service pf start

αžŸαžΆαž€αž›αŸ’αž”αž„

αžŠαžΎαž˜αŸ’αž”αžΈαžŸαžΆαž€αž›αŸ’αž”αž„αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ (STARTTLS, SLL) αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαž…αž›αŸαž (αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš iOS) "MyOffice Mail" αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸαŸ‡αž˜αžΆαž“αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž‡αžΆαž…αŸ’αžšαžΎαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αž‘αžΎαž„αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαžŸαžΆαž€αž›αŸ’αž”αž„ spaassasin αž™αžΎαž„αž”αŸ’αžšαžΎαž αžαŸ’αžαž›αŸαžαžΆ GTUBE αž”αž“αŸ’αžαŸ‚αž˜αž”αž“αŸ’αž‘αžΆαžαŸ‹αž‘αŸ…αž’αž€αŸ’αžŸαžš:

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αž›αž·αžαž·αžαž“αŸ„αŸ‡αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžαžΆαž‡αžΆαžŸαžΆαžšαž₯αžαž”αžΆαž“αž€αžΆαžš αž αžΎαž™αžαŸ’αžšαžΌαžœαž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž‘αŸ…αžαžαžŸαžΆαžšαž₯αžαž”αžΆαž“αž€αžΆαžšαŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαžŸαžΆαž€αž›αŸ’αž”αž„αž€αŸ†αž…αžΆαžαŸ‹αž˜αŸαžšαŸ„αž‚ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž•αŸ’αž‰αžΎαžŸαŸ†αž”αž»αžαŸ’αžšαž‡αžΆαž˜αž½αž™αž―αž€αžŸαžΆαžšαž’αžαŸ’αžαž”αž‘ αž―αž€αžŸαžΆαžšαž“αŸαŸ‡αž“αžΉαž„αž˜αžΆαž“αž›αŸ†αžŠαžΆαž”αŸ‹ EICARαŸ–

X5O!P%@AP[4PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

αž’αž€αŸ’αžŸαžšαž’αž˜αŸ’αž˜αž‡αžΆαžαž·αžαŸ’αžšαžΌαžœαž•αŸ’αž‰αžΎαž…αŸαž‰αž–αžΈαž”αŸ’αžšαž’αž”αŸ‹αžŸαŸ†αž”αž»αžαŸ’αžšαžαžΆαž„αž€αŸ’αžšαŸ…αŸ”
αžŠαžΎαž˜αŸ’αž”αžΈαž˜αžΎαž›αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž€αŸ’αž“αž»αž„αž–αŸαž›αžœαŸαž›αžΆαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ αžŸαžΌαž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ–

tail -f /var/log/maillog

αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸαŸ‡αž•αž„αžŠαŸ‚αžšαžŠαžΎαž˜αŸ’αž”αžΈαžŸαžΆαž€αž›αŸ’αž”αž„αž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαŸ†αž”αž»αžαŸ’αžšαž±αŸ’αž™αž”αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž‘αŸ…αž”αŸ’αžšαž’αž”αŸ‹αžŸαŸ†αž”αž»αžαŸ’αžšαžαžΆαž„αž€αŸ’αžšαŸ… (αž§αž‘αžΆαž αžšαžŽαŸαž‘αŸ… yandex.ru, mail.ru, gmail.com αŸ”αž›αŸ”) αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžαŸ†αž”αž“αŸ‹ DNS αž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸ (PTR record) αž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŠαŸ„αž™αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„ αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ (αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‡αžΆαž€αžΆαžšαž–αž·αž αž’αŸ’αž“αž€αž˜αž·αž“αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ DNS αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αŸ)αŸ”

αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“

αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αžœαžΆαž’αžΆαž…αž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαžαžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŸαŸ†αž”αž»αžαŸ’αžšαž‚αžΊαž‡αžΆαžšαžΏαž„αžŠαŸαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž˜αž½αž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αžœαžΆ αž“αŸαŸ‡αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž€αžΆαžšαž–αž·αžαž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž…αŸ†αžŽαžΆαž™αž–αŸαž›αž”αž“αŸ’αžαž·αž…αž›αžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ αž’αŸ’αž“αž€αž’αžΆαž…αž‘αž‘αž½αž›αž”αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŸαŸ†αž”αž»αžαŸ’αžšαžŠαŸ‚αž›αž˜αžΆαž“αž˜αž»αžαž„αžΆαžšαžŸαž˜αžšαž˜αŸ’αž™ αž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„ spam αž“αž·αž„αž˜αŸαžšαŸ„αž‚αŸ”

PS αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž‚αž˜αŸ’αžšαŸ„αž„ "αž…αž˜αŸ’αž›αž„αž”αž·αž‘αž—αŸ’αž‡αžΆαž”αŸ‹" αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž˜αžαž·αž™αŸ„αž”αž›αŸ‹ αž“αŸ„αŸ‡αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž“αŸ’αžαŸ‚αž˜αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‡αžΆ root (αž“αž·αž„αž’αŸ’αž“αž€αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžΆ) αž‘αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αžαŸ’αž“αžΆαž€αŸ‹αž—αžΆαžŸαžΆαžšαž»αžŸαŸ’αžŸαžΈαŸ–

pw usermod root -L russian

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž‡αŸ†αž αžΆαž“αž‘αžΆαŸ†αž„αž“αŸαŸ‡αžαž½αž’αž€αŸ’αžŸαžšαžšαž»αžŸαŸ’αžŸαŸŠαžΈαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž™αŸ‰αžΆαž„αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹