پېژندنه
زه د اوږدې مودې لپاره د میل سرور مطالعه کول غواړم، مګر زه یوازې اوس ورته رسیدلی یم، او زه د دې توان نه لرم چې ډیر سم معلومات ومومئ، نو ما پریکړه وکړه چې د امکان تر حده تفصيلي خپرونه ولیکم. دا خپرونه به نه یوازې د پوسټ فکس، dovecot، mysql، postfixadmin، بلکې spamassassin، clamav-milter (د میل سرورونو لپاره د کلیماو ځانګړې نسخه)، پوسټګري، او همدارنګه د سپیم فولډر (dovecot-pigeon) ته د سپیم لیږدولو امکان په اړه بحث وکړي. سوراخ).
د چمتو کولو لپاره
له هرڅه دمخه ، اجازه راکړئ هغه کڅوړې نصب کړو چې د کار لپاره به ورته اړتیا وي (پوسټ فکس ، ډوکوټ او ډوکوټ - پیژون هول باید له بندرونو څخه نصب شي ، dovecot - sieve په اصل کې د کڅوړو څخه نصب کیدی شي ، مګر په بندرونو کې نوي نسخې شتون لري او د دې لپاره. له همدې امله کیدای شي 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
د نصبولو وروسته، موږ به اړین خدمتونه په اتوماتیک پیل کې ځای پر ځای کړو:
#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
په اپاچي او پوسټ فکس اډمین کې د سم کار کولو لپاره د php لپاره اړین لینونه httpd.conf ته اضافه کول مه هیروئ:
<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"
بیا تاسو اړتیا لرئ لارښود ته لاړشئ او پوسټ فکس اډمین ډاونلوډ کړئ
cd /usr/local/www/apache24/data
پوسټ فکس اډمین ډاونلوډ کړئ (د لیکلو په وخت کې اوسنی نسخه 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
بیا به موږ د پوسټ فکس اډمین لپاره ډیټابیس چمتو کړو، د 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/ ډایرکټر کې موقعیت لري، پدې فایل کې تاسو اړتیا لرئ څو کرښې ایډیټ کړئ او دوی ته یې راوړئ زما مطلب دا دی چې د دې تنظیماتو بدلولو وروسته ، اپاچي بیا پیل کړئ ، تاسو اړتیا لرئ په /usr/local/www/apache24/data/postfixadmin-3.2 لارښود کې د templates_c لارښود رامینځته کړئ او مالک یې 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
ایس ایس
د کیلي پیدا کولو لپاره، موږ به د خپل تصدیق کولو واک په جوړولو سره په ویب پاڼه 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
په دې لارښود کې رامینځته شوي سندونه پریږدئ ، یا یې هغه ډایرکټر ته واستوئ چې ستاسو لپاره خورا اسانه وي ، پوسټ فکس او ډوکوټ "کنفیګز" به د دې حقیقت په پام کې نیولو سره تنظیم شي چې سندونه به پدې لارښود کې موقعیت ولري.
د کارن vmail
مخکې لدې چې موږ د پوسټ فکس ، ډویکوټ او ډوکوټ - پیګون هول نصب کول پیل کړو ، راځئ چې یو کارونکي او ډله جوړه کړو (ګروپ به په اوتومات ډول رامینځته شي) vmail ، او همدارنګه هغه لارښود چې بریښنالیک به پکې موقعیت ولري.
pw useradd -n vmail -s /usr/sbin/nologin -u 1000 -d /var/vmail
راځئ چې د بریښنالیک لپاره لارښود جوړ کړو او د کارونکي vmail د مالک په توګه وټاکو:
mkdir /var/vmail
chown -R vmail:vmail /var/vmail
chmod -R 744 /var/vmail
پوستفکس، dovecot، dovecot - pigeonhole
لکه څنګه چې ما مخکې لیکلي، موږ به د بندرونو څخه د غوښتنلیک ډاټا راټول کړو، د بندرونو ډاونلوډ او خلاصولو لپاره کمانډ چلوو:
portsnap fetch extract
د بندرونو له بسته کولو وروسته ، د ډوکوټ ډایرکټر ته لاړشئ ، بندر تنظیم کړئ (تاسو اړتیا لرئ د مای ایس کیو ایل ملاتړ چیک کړئ) او جوړونه پرمخ وړئ (BATCH = هو به ما ته ووایی چې د نصب کولو پرمهال پوښتنې مه کوئ):
cd /usr/ports/mail/dovecot
make config
make BATCH=yes install clean
ورته عملونه د پوسټ فکس او د dovecot-pigeonhole سره وکړئ
د کبوتر غوټۍ:
cd /usr/ports/mail/dovecot-pigeonhole
make BATCH=yes install clean
پوسټ فکس: د 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
د پوسټ فکس او ډوکوټ نصبولو وروسته، خدمتونه پیل کړئ:
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" شکمن یم، ځکه چې ما په شبکه کې سم توضیحات ونه موندل (ما په ډیفالټ "config" پریښود)، مهرباني وکړئ اضافه کړئ. د سپماساسین تنظیم کولو څرنګوالی غوره دی.
پوسټاسکس
لومړی ګام د ډیټابیس څخه د کاروونکو، ډومینونو، کوټو ایستلو لپاره د فایلونو رامینځته کول دي. د دې فایلونو او اړینو فایلونو ذخیره کولو لپاره لارښود جوړ کړئ:
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
}
سپماساسین
د سپماساسین "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 په اتوماتیک کې اضافه کړم او فایل به د قواعدو سره مشخص کړم:
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"؛ دا غوښتنلیک د میل سرور سره د اړیکو تنظیم کولو لپاره ډیری پیرامیټونه لري.
د سپاساسین ازموینې لپاره موږ د 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 ریکارډ) ثبت کړئ ، دا د تماس له لارې ترسره کیدی شي. ستاسو چمتو کونکی (که البته، تاسو خپل DNS سرور نلرئ).
پایلې
البته، داسې ښکاري چې د بریښنالیک سرور یو ډیر پیچلی شی دی، مګر که تاسو ورته وګورئ، دا واقعیا ریښتیا نه ده؛ په ترتیب کې د لږ وخت لګولو وروسته، تاسو کولی شئ په کافي اندازه فعال میل سرور ترلاسه کړئ. د سپیم او ویروسونو پروړاندې محافظت.
PS که تاسو د نظرونو سره "کاپي پیسټ" کولو پلان لرئ ، نو تاسو اړتیا لرئ د روسی ټولګي لاګونو کې د روټ کارونکي (او هغه څوک چې ورته اړتیا لري) اضافه کړئ:
pw usermod root -L russian
د دې ګامونو وروسته، روسي حروف به په سمه توګه ښکاره شي.
سرچینه: www.habr.com