Перейти к содержимому


Самый Популярный Контент


#86 Eset NOD32 зеркало обновлений

Написано Demonik на 02 Февраль 2017 - 04:08

Свое зеркало обновлений Eset NOD32

 

 

------------------------------------------------------------------------------------------------------------------

Данная статья написана для личного удобства (чтоб не забыть) и более легкой подачи

информации другим специалистам.

 

Исходники: 1) Источник №1

                    2) Источник №2

------------------------------------------------------------------------------------------------------------------


  • Demonik это нравится


#77 Установка шлюза Exim+DNSBL+Greylistingd+ClamAV+Spamassassin+SPF+DKIM+DMARC+TL...

Написано Demonik на 01 Май 2016 - 17:41

Установка MTA Exim в Debian 8 Jessy с плюшками и антивирусом для хорошей резки СПАМа.

 

--------------------------------------------------------------------------------------------------------

Вариант с более высокой производительностью - читайте ТУТ

--------------------------------------------------------------------------------------------------------
Почтовая кухня по DNS находиться в этой статье.
Установка подписи DKIM описана в этой статье.
Полный конфиг exim.conf находиться под спойлером ниже 

Скрытый текст

 
Exim



apt-get install exim4-daemon-heavy

DNSBL
В конфиг exim, в проверку acl_check_rcpt добавляем:



deny message     = "You in blacklist - $dnslist_domain $dnslist_text; $dnslist_value"
 hosts           = !+relay_from_hosts
 dnslists        = rbl.rbldns.ru : zen.spamhaus.org : bad.psky.me : sbl.spamhaus.org : bl.spamcop.net : cbl.abuseat.org

Mime(вложения) проверки
Устанавливаем приложение "deepfind" которое содержиться в "strigi-utils" вместо unzip



apt-get install strigi-utils

Указываем в правилах condition где находиться "deepfind", в моем случаи это "/usr/bin/deepfind", и запихиваем правила в acl_check_mime.

acl_check_mime:

# Проверка вложений на исполняемые файлы
deny message = Error! Your message contains executible attachment(s) like: $mime_filename
 condition  = ${if match{$mime_filename}{\N\.(exe|com|vb|vbs|vbe|vba|wsf|bat|cmd|pif|scr|hta|js|jse|jsp|chm|cpl|reg|lnk|ocx|dll|sys|msi|msu|mst|apk|bin|cgi|ps1)$\N}}


# Проверка вложений-архивов zip-rar
deny message = Message contains executible files(s) in attachment $mime_filename
 condition = ${if match{$mime_filename}{\N(?i)\.(bz2|zip|rar|7z|cab|ace|7za|lah|lzo|lzx|gz|arj|bin|msi|cbr|deb|rpm|gzip|jar|pak|pkg|tar-gz|tgz|xar|zipx|wim|tb2|tar|paq|xz|iso|jar|lzh|lzma|pak|pk3|pk4|smzip|u3p|xpi|zipx|cpio|xar|lz|rk|zoo|img|ha)$\N}}
 decode = default
 condition = ${if match{${run{/usr/bin/deepfind $mime_decoded_filename}}}{\N(?i)\.(exe|com|vb|vbs|vbe|vba|wsf|bat|cmd|pif|scr|hta|js|jse|jsp|chm|cpl|reg|lnk|ocx|dll|sys|msi|msu|mst|apk|bin|cgi|ps1)\n\N}}
 log_message = forbidden attachment: recipients=$recipients, content-type=$mime_content_type, attach_filename=$mime_filename

Грейлист (Greylistd)



apt-get install greylistd

- Вставляем следующее правило в acl_check_rcpt до принятия окончательного решения accept: 

# Тут используем серые списки
defer message    = Greylisting in action, try later
 log_message     = Greylisted.
 !hosts          = ${if exists{/etc/greylistd/whitelist-hosts}\
                    {/etc/greylistd/whitelist-hosts}{}} : \
                   ${if exists{/var/lib/greylistd/whitelist-hosts}\
                    {/var/lib/greylistd/whitelist-hosts}{}}
 condition       = ${readsocket{/var/run/greylistd/socket}\
                    {--grey $sender_host_address $sender_address $local_part@$domain}\
                   {5s}{}{false}}

Антивирус ClamAV



apt-get install clamav-daemon

- Добавить в группу от которой запускается Exim

usermod -aG Debian-exim clamav

- Поправить в конфиге ClamAV /etc/clamav/clamd.conf срочку с "AllowSupplementaryGroups false" на "AllowSupplementaryGroups true", Также изменить значение "ScanOLE2 false" на "ScanOLE2 true".
- Вставляем строчку в начало в конфиг exim:

av_scanner = clamd:/var/run/clamav/clamd.ctl

- Вставляем правило в acl_check_data: 

# Запрет приема писем содержащих вирусы
deny message     = message contains a virus ($malware_name)
 malware         = *

- Перезагрузим Exim, чтобы настройки вступили в силу:

/etc/init.d/exim4 restart

Spamassassin + Sa-exim (На сокете)



apt-get install sa-exim spamassassin

- Разрешаем запуск SpamAssassin. Для этого в файле /etc/default/spamassassin меняем строчку на : 

ENABLED=1
CRON=1

Если у Вас Debian 8 jessy, то прописываем в консоли

 systemctl enable spamassassin

- Запускаем spamassassin

/etc/init.d/spamassassin start

- В файле /etc/exim4/sa-exim.conf найдите и удалите либо закоментируйте строчку:

  SAEximRunCond: 0

- Если сервер нагруженный то в /etc/default/spamassassin добавьте такие ключи для запуска:

OPTIONS="--create-prefs --max-children=12 --min-children=8 --max-conn-per-child=10 --helper-home-dir -d -H /var/log/spamassassin -s /var/log/spamassassin/spamd.log -u debian-spamd --socketpath=/var/run/spamd.sock"

У меня работает такая конфигурация по запуску, ошибок не вылетает зато (не указываю явно инфу про детей), бывает такое что письмо весь день долбиться а spamassasin его в определенном ребенке проверить не может и так по кругу (с предыдущим конфигом выше):



OPTIONS="--create-prefs --helper-home-dir -d -H /var/log/spamassassin -s /var/log/spamassassin/spamd.log -u debian-spamd --socketpath=/var/run/spamd.sock"

Также раскоментируем строчку в файле /etc/exim4/sa-exim.conf

SAspamcSockPath: /var/run/spamd.sock

Также добавим строчку в конф файле exim /etc/exim4/exim.conf

spamd_address = /var/run/spamd.sock

Далее смотрим логи и допиливаем права по папкам если имеются.
Так же незабываем кормить спамассассину спам и хам письма чтоб лучше работал.
- Добавим в crontab -e следующее

0 23 * * * root (/usr/bin/sa-update --nogpg && /etc/init.d/spamassassin reload) &> /dev/null

Русские правила для spamassassin

  • Поместите файл 99_wentor.cf или 99_wentor.cf в каталог, где находятся файлы правил (обычно это /usr/share/spamassassin) ,
  • Добавьте строчку include /usr/share/spamassassin/99_wentor.cf в файле /etc/mail/spamassassin/local.cf (необязательно, но у нас без нее правила не подключаются).
  • Перезапустите spamd (/etc/init.d/spamassassin stop, /etc/init.d/spamassassin start).
  • Можно проверить подключение правил командой spamassassin --lint –D
  • Если все подключено правильно в письмах и журнале обработки почты должны появляться правила начинающиеся на RU_WENTOR.

Так же добавить в local.cf следующие правила

Скрытый текст

 
Настройка ротации логов в spamassassin:
 
В /etc/logrotate.d/ положить файлик spamd с содержимым:
 

/var/log/spamassassin/spamd.log {
daily
size=5M
missingok
rotate 5
delaycompress
notifempty
create 666 root root
postrotate
 /usr/bin/pkill -HUP spamd
endscript
}

SPF
- Устанавливаем perl скрипт (только для Debian), другие устанавливают "libmail-spf-query-perl"


apt-get install libspf2-2 libmail-spf-perl spf-tools-perl

- Вставляем следующее правило в acl_check_rcpt до Greylist и принятия окончательного решения accept: 

# Используем "spfquery", чтобы получить статус SPF для данного конкретного отправителя / хоста.
# Если код возврата этой команды равен 1, это несанкционированный отправитель.
deny
 message         = [SPF] $sender_host_address is not allowed to send mail from $sender_address_domain.
 log_message     = SPF check failed.
 set acl_m9      = -ipv4=$sender_host_address \
                   -sender=$sender_address \
                   -helo=$sender_helo_name
 set acl_m9      = ${run{/usr/bin/spfquery $acl_m9}}
 condition       = ${if eq {$runrc}{1}{true}{false}}


defer
 message         = Temporary DNS error while checking SPF record.  Try again later.
 condition       = ${if eq {$runrc}{5}{yes}{no}}


warn
 message         = X-Received-SPF: ${if eq {$runrc}{0}{pass}{${if eq {$runrc}{2}{softfail}\
                                 {   ${if eq {$runrc}{3}{neutral}{${if eq {$runrc}{4}{unknown}\
                                 {${if eq {$runrc}{6}{none}{error}}}}}}}}}}
 condition       = ${if <={$runrc}{6}{yes}{no}}


 warn
    log_message = Unexpected error in SPF check.
    condition = ${if >{$runrc}{6}{yes}{no}}

 
DKIM
В Debian пакет exim4-daemon-heavy по умолчанию собран с поддержкой DKIM.
 
Делаем проверку по DKIM
- Добавляем в начало конфига exim:

DKIM_ENABLE = yes

- Анонсируем отдельный ACL для DKIM

acl_smtp_dkim = acl_check_dkim

- Добавляем правило: 

# Отклоняем письма, не содержащие DKIM-подпись
deny message = Valid DKIM signature needed for mail from $sender_domain
 sender_domains  = +dkim_required_domains
 dkim_status     = none
 add_header      = :at_start:Authentication-Results-DKIM: Exim 4.80 on mx1.tentorium.ru (no dkim signature)
 logwrite        = DKIM test NONE (address=$sender_address domain=$dkim_cur_signer), none signature.

# Отклоняем письма, содержащие DKIM-подпись, если она fail
deny message     = Wrong DKIM signature
 sender_domains  = +dkim_required_domains
 dkim_status     = fail
 add_header      = :at_start:Authentication-Results-DKIM: mx1.tentorium.ru, header.i=$dkim_cur_signer ($dkim_verify_status); reason=$dkim_verify_reason
 logwrite        = DKIM test FAIL (address=$sender_address domain=$dkim_cur_signer), fail signature.

# Принимаем письма, содержащие DKIM-подпись, если она invalid
accept message   = Invalid DKIM signature
 sender_domains  = +dkim_required_domains
 dkim_status     = invalid
 add_header      = :at_start:Authentication-Results-DKIM: mx1.tentorium.ru, header.i=$dkim_cur_signer ($dkim_verify_status); reason=$dkim_verify_reason
 logwrite        = DKIM test PASS (address=$sender_address domain=$dkim_cur_signer), but signature is invalid.

# Принимаем письма, содержащие DKIM-подпись, если проверка прошла успешно
accept message   = Good DKIM signature
 sender_domains  = +dkim_required_domains
 dkim_status     = pass
 add_header      = :at_start:Authentication-Results-DKIM: mx1.tentorium.ru; dkim=$dkim_verify_status, header.i=@$dkim_cur_signer
 logwrite        = DKIM test PASS (address=$sender_address domain=$dkim_cur_signer), good signature.

#Пропускаем остальное
accept

SSL +TLS
- Для получения сертификата можно использовать китайский сервис, который выдает SSL сертификат на 3 года: "https://buy.wosign.com/free/"
- Для генерации CSR для сайта, запускаем команду на сервере:



openssl req -out example.com.csr -new -sha256 -newkey rsa:2048 -nodes -keyout example.com.key

- Объединяем все выданные сертификаты по цепочке в 1 сертификат, потому что exim не имеет команды для просмотра intermidate сертификатов(объединять нужно в последовательности от конечного хоста(сертификат для нашего сервера) к rootCA сертификату:

cat 3_user_example.com.crt 2_issuer_Intermediate.crt 1_cross_Intermediate.crt root.crt > intermidate.crt

- Настраиваем Exim для использования зашифрованной передачи писем, это добавляем вверху конфига: 

#Настройка TLS
tls_on_connect_ports = 465
tls_advertise_hosts = *
tls_certificate = /etc/exim4/ssl/intermidate.crt
tls_privatekey = /etc/exim4/ssl/example.com.key

- Также запускаем демон на 465 порту и отключаем IPv6 если он Вам не нужен: 

#На каком порту будет работать демон SMTP
disable_ipv6
daemon_smtp_ports = 25 : 465

УСЁ!


  • Demonik это нравится


#76 Установка Mailman + exim по https

Написано Demonik на 29 Апрель 2016 - 08:28

Устанавливалось все на Debian 8.

Работа по HTTPS апача, с шифрованием туннеля для smtp и по 465 порту.

Если Вам нужно переделать уже имеющийся mailman на HTTPS то Вам сюда.

Сертификаты обязательны, либо правьте конфиги под свои нужды.

 

1)

Exim уже установлен, его нужно только сконфигурировать.
Вот мой конфиг exim-a для полностью автономного сервера с рассылками. Под спойлером.

Скрытый текст

После запиливаем все необходимые DNS записи и сервис которые вы можете найти тут и тут: A,MX,PTR,DKIM,SPF,DMARC.
После этих манипуляций Exim можно считать настроенным.

 

2)

Так же не забудем  настроить Firewall (iptables) и добавить его в автозагрузку. Под спойлером.

Скрытый текст

 

3)

Устанавливаем mailman командой

apt-get install mailman

После делаем

dpkg-reconfigure mailman

Выбираем ru и en языки и mailman установит правильные языки перевода.
 
Далее правил файл /etc/mailman/mm_cfg.py

DEFAULT_URL_PATTERN = 'https://%s/cgi-bin/mailman/'
DEFAULT_EMAIL_HOST = 'lists.example.com'
DEFAULT_URL_HOST   = 'lists.example.com'
DEFAULT_SERVER_LANGUAGE = 'ru'
MTA=None

Для того чтоб Mailman удалял подпись DKIM от приславшего ему письмо шлюза, добавим в самом конце файла mm_cfg.py строчку:

REMOVE_DKIM_HEADERS = Yes

В итоге рассылка будет подписываться уже при отправке с Mailman и проверка будет проходить по одной записи DKIM на конечном почтовом сервере.

 

4) 
Apache уже в Debian стоит. Нам нужно кое что включить чтоб работал ssl

ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/
a2enmod ssl

Так же делаем файл с виртуальным хостом в папке /etc/apache2/sites-available с названием mailman.conf[/size]

Скрытый текст

Далее включаем наш сайт-конфиг

a2ensite mailman.conf

Перезагружаем apache

/etc/init.d/apache2 restart

5)

Так же в списках рассылки для нормальной работы DKIM возможно надо переключить параметр:

 

"Replace the From: header address with the list's posting address to mitigate issues stemming from the original From: domain's DMARC or similar policies"

на

"Munge From"

 

Вот и все!


  • Demonik это нравится


#73 Динамическая маршрутизация на Debian OSPF,BGP и т.д.

Написано Demonik на 31 Март 2016 - 10:37

Пакет quagga имеется в стандартных репозиториях большинства дистрибутивов, Ubuntu / Debian не исключение, установим его командой

apt-get install quagga

Затем немного подправим конфиг файлы пакеты под наши нужды, настраивать будем OSPF и BGP

Соответственно надо включить нужные нам демоны в конфиге quagga, отредактируйте файл /etc/quagga/daemons до состояния приведенного ниже

# Entries are in the format: =(yes|no|priority)# 0, "no" = disabled
# 1, "yes" = highest priority
# 2 .. 10 = lower priorities
# Read /usr/share/doc/quagga/README.Debian for details.
#
# Sample configurations for these daemons can be found in
# /usr/share/doc/quagga/examples/.
zebra=yes
bgpd=yes
ospfd=yes
ospf6d=no
ripd=no
ripngd=no
isisd=no
Теперь надо создать конфигурационные файлы для демонов
touch /etc/quagga/zebra.conf
touch /etc/quagga/ospfd.conf
touch /etc/quagga/bgpd.conf
Так же надо обязательно сменить владельца файлов для правильной работы демонов
chown quagga:quagga /etc/quagga/zebra.conf
chown quagga:quagga /etc/quagga/ospfd.conf
chown quagga:quagga /etc/quagga/bgpd.conf
Дальше можно наполнить содержанием конфигурационные файлы.
Начнем с /etc/quagga/zebra.conf, минимальная конфигурация для работы демона
!Имя хоста
hostname LinuxRouter
!пароль для доступа
password zebra
!пароль для административного доступа и настройки
enable password z3bRa
Далее перейдем к настройке OSPF, отредактируйте файл /etc/quagga/ospfd.conf, смените сеть 192.168.0.1/24 на вашу
!
! Zebra configuration saved from vty
! 2008/06/10 15:27:51
!
hostname main-server
password zebra
enable password z3bRa
!
interface eth0
!
interface eth1
!
interface lo
!
router ospf
ospf router-id 192.168.0.1
network 192.168.0.1/24 area 0.0.0.0
!
line vty
!
Теперь настроим BGP, зайдите в консоль демона bgpd и выполните несколько простых команд, замените адреса на реальные.
telnet 0 2605
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.


User Access Verification


Password:
bgpd> enable
Password:
bgpd# configure terminal
bgpd(config)# router bgp 65530
bgpd(config-router)# network 192.168.0.0/24
bgpd(config-router)# neighbor 10.0.0.5 remote-as 65531
bgpd(config-router)# end
bgpd# write file
Доступ к настройкам демонов пакета quagga вы можете получить зайдя телнетом на порты
zebra 2601/tcp # zebra vty
ripd 2602/tcp # ripd vty (zebra)
ripngd 2603/tcp # ripngd vty (zebra)
ospfd 2604/tcp # ospfd vty (zebra)
bgpd 2605/tcp # bgpd vty (zebra)
ospf6d 2606/tcp # ospf6d vty (zebra)
ospfapi 2607/tcp # OSPF-API
isisd 2608/tcp # ISISd vty (zebra)
На этом все!

  • Demonik это нравится