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


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


#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 это нравится


#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 это нравится