imported>Vix |
imported>Vix |
Строка 1: |
Строка 1: |
| По материалам статьи [http://www.mactime.ru/Environ/WebObjects/mactime.woa/wa/Main?textid=5409&level1=mactimes Антиспам без оружия, или настройка Postfix]
| | '''Установка и настройка''' |
|
| |
|
| '''Пролог:''' спам - чума 21 века. В данной статье приведены практические рекомендации, позволяющие избавиться от этой чумы.
| | Прежде всего обновите локальный список пакетов с помощью вашего пакетного менеджера, например на Ubuntu и Debian это можно сделать с помощью apt: |
| ==Имеем:==
| | apt-get update |
| стандартную конфигурацию почтовой системы, '''Postfix + SASL + CYRUS'''.
| |
| ==Задача: ==
| |
| минимизировать трафик, поступаемый вместе со спамом, а также уменшить кол-во спама, попадающего в почтовые ящики конечных пользователей.
| |
| ==Требуемая политика для Postfix:==
| |
| *разрешена отправка писем с адресов внутренней сети
| |
| *разрешен прием писем снаружи для адресатов внутри
| |
| *прием писем только от существующих и корректных адресатов
| |
| *прием писем только для имеющихся на сервере адресатов
| |
| *для отправки писем FROM: *@mysite.ru с невнутренних хостов требовать обязательную авторизацию, без авторизации письма отклонять
| |
| ==Применяемые технические решения:==
| |
| *разрешать внутренним ип-адресам отправлять письма на несуществующие email-адреса (рассылка рекламного отдела)
| |
| *проверять существование и корректность адреса отправителя
| |
| *проверять существование и корректность адреса получателя
| |
| *проверять корректность IP-адреса сервера передающего письм
| |
| *проверять наличие IP-адреса отправителя в списках DNSBL
| |
| *отклонять письма с IP-адресов, определяемых как динамические (dialup & adsl)
| |
| *проверять заголовок письма на предмет наличия аттачя, содержащего файлы с неразрешенными типами расширений
| |
| для “особо продвинутых” респондентов применять “белые списки”
| |
|
| |
|
| ==Настройки:==
| | Для установки выполните команду: |
| файл /etc/postfix/main.cf:
| | apt-get install exim4 |
| ===Часть 1 - настройка сети===
| |
| <pre>myorigin = proba.ru
| |
| mydestination = $myhostname, $myorigin, localhost.$mydomain, localhost, $mydomain
| |
| alias_database = hash:/etc/postfix/aliases
| |
| # список подсетей, которым разрешена отправка писем, и на
| |
| # письма с которых многие проверки не распространяются.
| |
| # здесь не должно быть подсетей, которые не являются “внешними”
| |
| mynetworks = 127.0.0.0/8,
| |
| 172.16.130.0/24,
| |
| 172.16.131.0/24,
| |
| 172.16.137.0/24,
| |
| 172.16.132.0/24
| |
|
| |
|
| relay_domains = $mydestination
| | Примечание: если вам необходимо использовать ACL и другие расширенные функции, то установите exim4-daemon-heavy: |
| | apt-get install exim4-daemon-heavy |
|
| |
|
| # Через кого пересылаем почту
| | Чтобы перейти к настройке, выполните команду: |
| #relayhost = [mail.qqq.ac.ru]
| | dpkg-reconfigure exim4-config |
| relayhost =
| |
| </pre>
| |
|
| |
|
| ===Часть 2 - защита от спама===
| | Нажмите Ok для начала настройки. |
| <pre># запрещаем проверку отправителем существование адреса получателя | | '''РЕШЕНИЕ ПРОБЛЕМ''' |
| # на этапе передачи заголовка
| | <hr> |
| disable_vrfy_command = yes
| | * '''defer (-53): retry time not reached for any host''' |
| | Повреждены ваши exim db Это возможно связанно с недоступостью почтового сервера какой-то время. |
|
| |
|
| # разрешаем дополнительные проверки пока отправитель
| | '''решение:''' |
| # передает RCPT TO: и MAIL FROM: заголовки. Для детализации mail.log
| |
| smtpd_delay_reject = yes
| |
| ########smtpd_delay_reject = no
| |
|
| |
|
| # требуем от отправителя представиться
| | cd /var/spool/exim/db |
| # (на том, как себя представляет передающий комп,
| | rm -f retry retry.lockfile |
| # основаны многие эффективные проверки "на вшивость"
| | rm -f wait-remote_smtp wait-remote_smtp.lockfile |
| # автоматических рассылок от зомби и троянов)
| | service exim restart |
| smtpd_helo_required = yes
| |
|
| |
|
| | В дальнейшим имеет смысл: внести изменения в /etc/exim/exim.conf |
| | в раздел |
|
| |
|
| # ограничения на приветствие отправителя
| | begin retry |
| smtpd_helo_restrictions =
| | * rcpt_451 F,1h,15m |
| # отсекаем кривые адреса | | * refused F,1h,2m |
| reject_invalid_hostname,
| | * timeout_connect F,2h,2m; F,6h,1h; F,4d,6h |
| # разрешаем "своим" почти все
| | * * F,2h,2m; G,16h,1h,1.5; F,4d,6h |
| permit_mynetworks,
| |
| # "Белый Список" должен быть впереди остальных проверок
| |
| # отсекаем приветствия отправителя от моего имени
| |
| # а также прописываем разрешения для "продвинутых"
| |
| check_helo_access hash:/etc/postfix/helo_access,
| |
| # отсекаем тех, кто представляется ИП-адресом.
| |
| # это явное нарушение RFC, но практика показала, что это один из явных признаков спама.
| |
| check_helo_access regexp:/etc/postfix/helo_regexp,
| |
| # отсекаем почту с хостов (вида вроде news.intranet.),
| |
| # не имеющих полноценного доменного
| |
| # имени вида что-то.домен.домен_верхнего_уровня
| |
| reject_non_fqdn_hostname,
| |
| # требуем отправителя представиться доменным именем,
| |
| # имеющим полноценный IP-адрес
| |
| reject_unknown_hostname,
| |
| # если все вышеперечисленное подошло, идем дальше
| |
| permit
| |
|
| |
|
| | также обратите внимание на запуск с какой опцией он стартует: -q5m |
| | * [https://www.linuxshop.ru/forum/f7/t31431--resheno-remote-smtp-defer-53-retry-time-not-reached-for-any-host-exchange-exim.html взято тут] |
|
| |
|
| # ограничения, проверяемые на этапе MAIL FROM:
| | * Для решения проблемы с ssl в exim4.conf.template изменить: |
| smtpd_sender_restrictions =
| | ... |
| # принимаем почту на отправку с "чужих" хостов, если пользователь
| | REMOTE_SMTP_SMARTHOST_TLS_VERIFY_HOSTS = * |
| # авторизовался по логину/паролю
| |
| permit_sasl_authenticated,
| |
| # "своим" можно и "просто"
| |
| permit_mynetworks,
| |
| # разрешаем или запрещаем "продвинутым"
| |
| regexp:/etc/postfix/sender_access,
| |
| # см комментарий к разделу smtpd_helo_restrictions
| |
| reject_non_fqdn_sender,
| |
| reject_unknown_sender_domain,
| |
| check_sender_access mysql:/etc/postfix/sql/access.cf,
| |
| # если все вышеперечисленное подошло, идем дальше
| |
| permit
| |
|
| |
|
| # ограничения, проверяемые на этапе RCPT TO:
| | на |
| smtpd_recipient_restrictions =
| | ... |
| permit_sasl_authenticated,
| | REMOTE_SMTP_SMARTHOST_TLS_VERIFY_HOSTS = !* |
| permit_mynetworks,
| |
| # запрещаем выдачу писем в поток, как это делают
| |
| # нетерпеливые спаммеры
| |
| reject_unauth_pipelining,
| |
| # см комментарий к разделу smtpd_sender_restrictions
| |
| reject_non_fqdn_recipient,
| |
| reject_unknown_recipient_domain,
| |
| # запрещаем или разрешаем "продвинутым"
| |
| regexp:/etc/postfix/recipient_access,
| |
| # !!! !!! !!! !!! !!!
| |
| # запрещаем прием и передачу писем, не относящихся к нам
| |
| # без этой строчки сервер становится open-relay
| |
| reject_unauth_destination,
| |
| # !!! !!! !!! !!! !!!
| |
| # если все вышеперечисленное подошло, идем дальше
| |
| permit
| |
|
| |
|
| # проверяем, а не является (по признакам ДНС-имен) ли
| | * Если нужно жестко указать порт smtp, то: |
| # динамически-назначаемым IP-адрес хоста-отправителя (определяемого
| | ... |
| # по соединению, а не по приветствию или разрешенному ДНС/IP-адресу)
| | dc_smarthost='mail.myhost.ru::25' |
| smtpd_client_restrictions =
| | ... |
| # разрешаем "своим" почти все
| |
| permit_mynetworks,
| |
| # прописываем адреса "продвинутых" в белом списке
| |
| hash:/etc/postfix/client_access,
| |
| # в файле dul_checks регулярные выражения доменных имен,
| |
| # наиболее часто используемых для обратных зон блоков
| |
| # динамически назначаемых адресов и
| |
| # широкополосных клиентских подключений
| |
| regexp:/etc/postfix/dul_checks,
| |
| # проверяем IP-адрес отправителя по спискам DNSBL (www.ordb.org)
| |
| reject_rbl_client list.dsbl.org,
| |
| reject_rbl_client bl.spamcop.net,
| |
| reject_rbl_client cbl.abuseat.org,
| |
| reject_rbl_client psbl.surriel.com,
| |
| reject_rbl_client spamsources.fabel.dk,
| |
| reject_rbl_client opm.blitzed.org,
| |
| reject_rbl_client combined.njabl.org,
| |
| #####reject_rbl_client relays.ordb.org,
| |
| reject_rbl_client dul.ru,
| |
| reject_rbl_client dialup.balcklist.jippg.org,
| |
| reject_rbl_client relays.mail-abuse.org,
| |
| reject_rbl_client dnsbl.sorbs.net,
| |
| # требуем определяемого обратного ДНС-имени IP-адреса хоста-client
| |
| reject_unknown_client,
| |
| permit
| |
|
| |
|
| # запрещаем прием писем с вирями (по расширениям файлов) в атачах
| | '''ИСТОЧНИКИ:''' |
| header_checks = regexp:/etc/postfix/header_checks
| | <hr> |
| | | * [https://qna.habr.com/q/146009 Exim и внешний SMTP сервер, как заставить ходить почту?] |
| # See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
| | * [https://1cloud.ru/help/linux/nastrojka-exim4 Настройка EXIM4 для отправки почтовых сообщений в Linux] |
| #
| | * [https://serverspace.by/support/help/nastroika-exim-4-na-ubuntu/ Ubuntu. Настройка Exim4] |
| unknown_local_recipient_reject_code = 550
| |
| | |
| # запрещаем прием писем с картинками ведущим по ссылкам в IFRAME
| |
| body_checks = regexp:/etc/postfix/body_checks
| |
| # После добавления следующей строки, спам вообще почти пропал.
| |
| address_verify_sender = $double_bounce_sender
| |
| </pre> | |
| ===Часть 3 для abills===
| |
| Показываю тут эту часть, что бы хоть в одном месте весь файл был целиком.<br />
| |
| По описанию этой части смотри [[Настройка почтового сервера на базе Postfix + abills + mysql]].
| |
| <pre>smtpd_sasl_auth_enable = yes
| |
| smtpd_sasl_security_options = noanonymous
| |
| | |
| #Максимально допустимый размер вложения 20Мб
| |
| message_size_limit = 20971520
| |
| | |
| | |
| local_recipient_maps = $virtual_mailbox_maps
| |
| #local_recipient_maps = unix:passwd.byname $alias_maps
| |
| | |
| transport_maps = mysql:/etc/postfix/sql/transport.cf
| |
| | |
| alias_database = hash:/etc/postfix/aliases
| |
| | |
| virtual_alias_maps = mysql:/etc/postfix/sql/aliases.cf
| |
| virtual_gid_maps = static:1001
| |
| virtual_mailbox_base = /var/mail/virtual
| |
| | |
| virtual_mailbox_domains = mysql:/etc/postfix/sql/virtual_domains.cf
| |
| #virtual_mailbox_domains = mysql:/etc/postfix/sql/virtual_mailbox.cf
| |
| virtual_mailbox_maps = mysql:/etc/postfix/sql/virtual_mailbox.cf
| |
| | |
| # Ограничение размера под почту 500 Мб
| |
| virtual_mailbox_limit = 524288000
| |
| # Generate maildirsize files or not
| |
| virtual_create_maildirsize = yes
| |
| | |
| # Limits only INBOX part (usefull when
| |
| # using when you have IMAP users)
| |
| virtual_mailbox_limit_inbox = yes
| |
| | |
| # maps of soft disk quotas
| |
| virtual_mailbox_limit_maps = mysql:/etc/postfix/sql/virtual_mailbox_limits.cf
| |
| virtual_mailbox_limit_override = yes
| |
| virtual_overquota_bounce = yes
| |
| | |
| | |
| # Limits only INBOX part (usefull when
| |
| # using when you have IMAP users)
| |
| # I use Courier IMAP compatibles files.
| |
| virtual_maildir_extended = yes
| |
| | |
| | |
| # I use Courier IMAP compatibles files.
| |
| virtual_maildir_extended = yes
| |
| | |
| # Usefull for Courier IMAP..
| |
| #virtual_maildir_suffix = Maildir/
| |
| | |
| virtual_minimum_uid = 1001
| |
| virtual_uid_maps = static:1001
| |
| | |
| virtual_mailbox_extended = yes
| |
| | |
| virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
| |
| </pre>
| |
| ===Часть 4 - описание путей, подключение антивируса===
| |
| <pre>
| |
| После подключения и настройки ClamAV следующие 2 строки надо разремить
| |
| #content_filter = scan:127.0.0.1:10025
| |
| #receive_override_options = no_address_mappings
| |
| | |
| debug_peer_level = 3
| |
| | |
| debugger_command =
| |
| PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
| |
| ddd $daemon_directory/$process_name $process_id & sleep 5
| |
| | |
| sendmail_path = /usr/sbin/sendmail.postfix
| |
| | |
| newaliases_path = /usr/bin/newaliases
| |
| | |
| mailq_path = /usr/bin/mailq
| |
| | |
| setgid_group = postdrop
| |
| html_directory = /usr/share/doc/postfix/html
| |
| | |
| manpage_directory = /usr/share/man
| |
| readme_directory = /usr/share/doc/postfix/README_FILES
| |
| queue_directory = /var/spool/postfix
| |
| command_directory = /usr/sbin
| |
| daemon_directory = /usr/lib64/postfix
| |
| data_directory = /var/lib/postfix
| |
| mail_owner = postfix
| |
| #default_privs = nobody</pre>
| |
| ===Описание файлов для раздела борьба со спамом===
| |
| теперь указанные в кач-ве параметров файлы:
| |
| | |
| /etc/postfix/helo_access
| |
| <pre>example.com REJECT you are not in my local networks
| |
| 80.80.80.80 REJECT you are not in my local networks
| |
| dc.DOM OK broken M$ Widnows server</pre>
| |
| последняя строка иллюстрирует пример “продвинутого” респондента, чей компьютер выдает бесмысленное приветствие helo, а почту от такого респондента принимать надо.
| |
| | |
| /etc/postfix/dul_checks
| |
| <pre>/81-177-70-6\.donnetwork\.ru/i OK 81-177-70-6.donnetwork.ru (@aaanet.ru)
| |
| /([0-9]*-){3}[0-9]*(\..*){2,}/i 553 SPAM_ip-add-rr-ess_networks
| |
| /([0-9]*\.){4}(.*\.){3,}.*/i 553 SPAM_ip-add-rr-ess_networks
| |
| /.*\..*\...\.comcast\.net/i 553 SPAM_comcast-net
| |
| /.*yahoobb.*\.bbtec\.net/i 553 SPAM_yahoobb_bbtec-net
| |
| /[0-9]{12}\.bbtec\.net/i 553 SPAM_host_bbtec-net
| |
| /.*\.broadband\.hu/i 553 SPAM_broadband-hu
| |
| /client.*\..*\..*/i 553 SPAM_CLIENT
| |
| /cable.*\..*\..*/i 553 SPAM_CABLE
| |
| /pool.*\..*\..*/i 553 SPAM_POOL
| |
| /dial.*\..*\..*/i 553 SPAM_DIAL
| |
| /ppp.*\..*\..*/i 553 SPAM_PPP
| |
| /dslam.*\..*\..*/i 553 SPAM_DSLAM
| |
| /dhcp.*\..*\..*/i 553 SPAM_DHCP
| |
| /adsl\.r61\.net/i OK adsl.r61.net | |
| /adsl\.infotecstt\.ru/i OK adsl.infotecstt.ru | |
| /[\.-]dsl.*\..*\..*/i 553 SPAM_DSL
| |
| /[ax]dsl.*\..*\..*/i 553 SPAM_XDSL
| |
| /.*([0-9]*\.){4}cableonline\.com\.mx/i 553 SPAM_IP-cableonline-com-mx | |
| /.*\.([0-9]*\.){4}ip\.holtonks\.net/i 553 SPAM_ip-holtonks-net
| |
| /([0-9]*-){3}[0-9]*\.fibertel\.com\.ar/i 553 SPAM_IP-fibertel-com-ar
| |
| /.*[0-9]*-[0-9]*\.fibertel\.com\.ar/i 553 SPAM_IP-fibertel-com-ar
| |
| /[0-9]*\.user\.veloxzone\.com\.br/i 553 SPAM_user-veloxzone-com-br
| |
| /[0-9]*\.customer\.alfanett\.no/i 553 SPAM_customer-alfanett-no
| |
| /.*([0-9]*-){3}[0-9]*\.telecom\.net\.ar/i 553 SPAM_host-telecom-net-ar
| |
| /.*(-[0-9]*){2}\.telpol\.net\.pl/i 553 SPAM_host-telpol-net-pl
| |
| /(.*\.){2}maxonline\.com\.sg/i 553 SPAM_host-maxonline-com-sg
| |
| /(.*-){2}.*\.fairgamemail\.us/i 553 SPAM_host-fairgamemail-us
| |
| /[0-9]*[0-9]*-\.wispnet\.net/i 553 SPAM_host-wispnet-net
| |
| /.*-.*(\..*){2}\.ne\.jp/i 553 SPAM_host-ne-jp
| |
| /[0-9]*\..*\.ne\.jp/i 553 SPAM_h09t-ne-jp | |
| /(.*\.){3}ad\.jp/i 553 SPAM_host-ad-jp | |
| /(.*\.){4}revip\.asianet\.co\.th/i 553 SPAM_revip-asianet-co-th
| |
| /[0-9]*\..*\.virtua\.com\.br/i 553 SPAM_host-virtua-com-br | |
| /([0-9]*-){3}[0-9]*\.exatt\.net/i 553 SPAM_host-exatt-net
| |
| /([0-9]*\.){4}ip\.alltel\.net/i 553 SPAM_host-ip-alltel-net
| |
| /[0-9]{6,}\.chello\.../i 553 SPAM_host-chello
| |
| /.*[0-9]*\..*\.chello\.../i 553 SPAM_host-chello-xx
| |
| /.*\..*\.t-dialin\.net/i 553 SPAM_t-dialin-net
| |
| /.*\..*\.t-ipconnect\.de/i 553 SPAM_t-ipconnect-de
| |
| /([0-9]*-){2,3}[0-9]*\..*\.cgocable\.net/i 553 SPAM_host-cgocable-net
| |
| /.*\..*\.shawcable\.net/i 553 SPAM_host-shawcable-net
| |
| /p[0-9]*\.mp[0-9]*\.aaanet\.ru/i 553 SPAM_aaa_modem_pool
| |
| /([0-9]*-){2}[0-9]*\.ip\.adsl\.hu/i 553 SPAM_ip-adsl-hu
| |
| /([0-9]{1,3}\.){2}broadband4\.iol\.cz/i 553 SPAM_broadband-iol-cz
| |
| /.*\.yandex\.ru/i OK yandex.ru
| |
| </pre>
| |
| /etc/postfix/sender_access
| |
| <pre>/.*@aaanet\.ru/i OK
| |
| /.*@.*tele2\.../i REJECT</pre>
| |
| здесь задаем маски адресов, от кого мы хотим получать корреспонденцию несмотря на то, что домены этих адресов могут быть неопределены.<br />
| |
| Нижняя строчка также иллюстрирует блокировку распространненного спама, якобы от пользователей Tele2.
| |
| | |
| /etc/postfix/recipient_access
| |
| <pre>/.*@friends\.ru/i OK
| |
| /.*evil\.org/i REJECT</pre>
| |
| разрешаем отправку писем на эти адреса
| |
| | |
| /etc/postfix/header_checks
| |
| <pre>/^content-(type|disposition):.*name[[:space:]]*=.*\.(dll|vbs|pif|com|bat|scr|lnk)/ REJECT Prohibited attachement file name extension: $2</pre>
| |
| конечно, вирь может прийти в виде файла с расширением EXE или ZIP, но это могут быть и нормальные файлы
| |
| | |
| /etc/postfix/body_checks
| |
| <pre>/^ < iframe src=(3D)?cid:.* height=(3D)?0 width=(3D)?0>$/ REJECT IFRAME vulnerability exploit</pre>
| |
| | |
| файл /etc/postfix/helo_regexp:
| |
| <pre>/([0-9]{1,3}(\.|-)){3}[0-9]{1,3}/i REJECT IP-able helo SPAM</pre>
| |
| запрещаем ИП-адрес в качестве HELO.
| |
| Это явное нарушение RFC, но практика показала, что это работает без сбоев.
| |
| | |
| после создания файлов helo_access, client_access и dul_checks необходимо выполнить
| |
| <pre>server# postmap helo_access
| |
| server# postmap client_access
| |
| server# postmap dul_checks
| |
| server# postfix check</pre>
| |
| и если все прошло без ругани, то
| |
| <pre>server# postfix reload </pre>
| |
| и можно смотреть лог-файл на предмет ошибок и наличие ошибочных срабатываний (if ever any :) ).
| |
| | |
| В моем примере я несколько дней изучал журналы /var/log/mail.log на предмет ложных срабатываний, и не обнаружил ни одного случая блокировки нормальной почты по вине нашего сервера (один из респондентов пытался отправлять письма с просроченного домена, записи о котором оставались в whois и были убраны из DNS). Следует отметить, что встречались очень искусные попытки мимикрии под реальные емайл-адреса, которые тем не менее легко проверялись с помощью whois-запросов.
| |
| | |
| В течение двух недель также выявились “продвинутые” респонденты, которые отсылали письма с адресов, не имеющих ДНС-имен или с некорректным HELO.
| |
| Для них всех были добавлены записи в “белые списки”, что также решило проблему.
| |
| | |
| Как показал опыт, DNSBL-проверки отсекают примерно 70% спама в процессе приема заголовков, и на этом экономится трафик не принятых тел писем спамов (примерно 20-50 kb на каждой попытке, а их может быть примерно 30-50 тыс в неделю).
| |
| | |
| Удивительное рядом, но на проверках HELO/EHLO отсекается большинство хитрых спаммеров, которые пытаются замаскироваться под приличный сервер(10% от общего числа писем). А на проверках по выражениям dul_checks вместе с требованием существования и корректности обратного ДНС-имени хоста-отправителя эффективно отсекаются хосты-зомби с динамическими адресами.
| |
| | |
| Это особенно актуально в связи с тем, что динамически выделяемые IP-адреса технически не очень эффективно попадают в DNSBL-списки, так как часто к моменту проверки на open-relay'ность некоторого адреса на нем уже “сидит” совершенно другой комп. Зато по обратным доменным именам такие адреса легко распознаются :), и это не зависит от спаммеров, а только от ISP.
| |
| | |
| Приведенные настройки обеспечили эффективную фильтрацию спама, уменьшив его кол-во на порядок (с 300-500 спамов в сутки до 10-15 на один ящик электронной почты).
| |
| | |
| Для сервера с 30 почтовыми ящиками (примерно 5 тыс принятых и 10 тыс отклоненных писем в неделю) кумулятивная экономия трафика составляет примерно 300 мб в неделю, или около полутора гигабайт в месяц.
| |
| | |
| Стоит отметить, что вместе с “закручиванию гаек” для проверок на этапе SMTP-соединений осуществлялись offline-меры по борьбе со спамом. Среди них анализ тенденций по журналу mail.log, отсылка spam-report'ов на www.spamcop.net и DSBL-проверки IP-адресов из спамных писем.
| |
| | |
| "Спам - явление социальное, и только объединившись и действуя сообща, мы сможем его победить" (Кто-то из великих)
| |
| | |
| * [https://miac.volmed.org.ru/wiki/index.php?title=%D0%91%D0%BE%D1%80%D1%8C%D0%B1%D0%B0_%D1%81%D0%BE_%D1%81%D0%BF%D0%B0%D0%BC%D0%BE%D0%BC,_%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8_%D1%81%D0%B0%D0%BC%D0%BE%D0%B3%D0%BE_Postfix&action=edit '''ИСТОЧНИК''']
| |