ISP`s IT Аутсорсинг
Быстрый переход: Главная блога Главная сайта Форум
Если Вы чего то недопоняли или не нашли - задайте
вопрос на нашем форуме и мы попробуем Вам помочь.
Subnets.ru Регистрация IP и Автономных систем mega-net.ru

Добро пожаловать в блог! Надеемся, что Вы еще вернетесь.

Недавно возникла задача сохранять письма уходящие и приходящие на mail сервер.

Было решено, что по входящим письмам буду сохраняться, только те, которые приходят к существующим на mail сервере ящикам, а исходящие будут сохраняться все.

Входящие:

Вариант backup`а через копирование во «второй ящик»:

1. Имеем ящик root@domain.ru и соответственно папку ящика

/var/qmail/popboxes/domain-ru/root/Maildir/

2. создаем backup папку для ящика

/var/qmail/popboxes/domain-ru/root_BAK/Maildir/

3. в файле /var/qmail/popboxes/domain-ru/root/.qmail основного ящика пишем:

|/var/qmail/bin/mailquotacheck
./../root_BAK/Maildir/
./Maildir/

где:

  • первая строка это проверка квоты ящика
  • второй строкой как раз кладем копию письма в backup папку
  • и третья доставка письма в основной ящик

4. в файле .qmail backup ящика можно вообще уже ничего не писать

Итог: получаем точную копию письма в backup папке, которое приходит и доставляется для root@domain.ru

Исходящие:

В Qmail FAQ можно прочитать:

Что такое QUEUE_EXTRA?

QUEUE_EXTRA - статическая переменная, которая определяет дополнительного получателя,
который будет добавлен к каждой доставке. Это используется, прежде всего, для логов.
Например, FAQ описывает, как использовать QUEUE_EXTRA, чтобы сохранить копии всех
приходящих и уходящих сообщений.Дляљ использования QUEUE_EXTRA, отредактируйте файл
extra.h определив дополнительного получателя в формате "Trecipient\0", и длину строки
QUEUE_EXTRA в QUEUE_EXTRALEN ( "\0" считается за один символ).
Например:

#define QUEUE_EXTRA "Tlog\0"
#define QUEUE_EXTRALEN 5

Остановите qmail, если он запущен.

Если вы установили скрипт qmail из раздела <Установка> то можете выполнить:
/usr/local/sbin/qmail stop

Если у вас нет скрипта qmail, Вы должны использовать свой скрипт включения/выключения
или послать процессу qmail-send сигнал TERM
Для компиляции qmail:
make setup check
Заполните ~alias/.qmail-log в зависимости от того, что хотите регистрировать.
Например, для регистрации Message-ID:|
 awk '/^$/ { exit } /^[mM][eE][sS][sS][aA][gG][eE]-/ { print }'

И наконец, перезапустите qmail.

Поясню, т.к. лично я "наступил на грабли":

#define QUEUE_EXTRA «Tlog\0» — локальный (!) ящик log для копии письма
#define QUEUE_EXTRALEN 5 — длина QUEUE_EXTRA:

Т(равно 1 символ) + log (равно 3 символа) + \0 (равно 1 символ) = 5 символов

В файл .qmail (/var/qmail/popboxes/domain-ru/log/.qmail), локального ящика log, помещаем вызов внешнего скрипта с передачей письма ему :

| /root/save_mail.pl

Ну и сам скрипт:

#!/usr/bin/perl
my $in=join(" ",<STDIN>);
open F,">/path/sample.txt";
print F $in;
close F;

Он сохранит письмо в текстовый файл /path/sample.txt. Вы можете дописать скрипт, чтобы он разбирал письмо, копировал письмо в соответствующую подпапку и .т.д. и т.п. Вообщем творим, что хотим.

На /path нужно выставить права owner ящика, смотрим owner`а:

ls -la /var/qmail/popboxes/domain-ru/log
total 8
drwx------  3 popuser  qmail  512 Dec  4 13:01 .
drwxr-xr-x  6 popuser  qmail  512 Dec  4 18:39 ..
-rw-------  1 popuser  qmail   41 Dec  4 13:01 .qmail
drwx------  5 popuser  qmail  512 Jul 11 10:15 Maildir

Выставляем права:

chown -R popuser:qmail /path

Вот и все.

=================

Заметка

Необходимо сделать в домене ящик для всей почты (дефолтовый ящик так сказать), т.е. на любое имя, но при этом ещё пересылать всю попадающую в ящик почу на другой почтовый ящик.

Допустим что ящик для всей почты домена mydomain.ru будет называться «default». Для этого добавим в файл /usr/symlinks/qmail/users/assign строчку:

+mydomain-ru-:popuser:888:82:/var/qmail/popboxes/mydomain-ru/default:::

Обратите внимание на символ «» в конце.

Затем создадим файл dot-qmail /usr/symlinks/qmail/popboxes/yamaika-ru/default/.qmail-default с адресом почты, куда пересылать письма:
&mailbox@someotherdomain.ru

Теперь вся почта (на любой ящик) домена mydomain.ru будет сначала попадать в ящик default@mydomain.ru, а затем пересылаться на  mailbox@someotherdomain.ru.

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Авторы: Николаев Дмитрий (virus (at) subnets.ru) и Панфилов Алексей (lehis (at) subnets.ru)
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 2, среднее: 5,00 из 5)
Загрузка...
Отправить на почту Отправить на почту
    Не найдено

Реализация простого автоответчика, хранящего ответ в MySQL. Всякого рода защиты отсутствуют, возможно добавлю для чистоты.

Если адрес присуствует в таблице autoreply и на этот адрес поступит почта, то отправителю будет отправлено уведомление, текст которого берется из таблицы message.

MySQL:

CREATE TABLE IF NOT EXISTS `autoreply` (
`id` int(100) NOT NULL AUTO_INCREMENT,
`recipient` varchar(50) NOT NULL DEFAULT '',
`message` longtext CHARACTER SET cp1251 NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM
;

exim.conf

Transport:

userautoreply:
driver = autoreply
from = ${local_part}@${domain}
reply_to = ${local_part}@${domain}
to = ${sender_address}
subject = AutoReply Re: ${rfc2047:$h_Subject:}
text = ${lookup mysql{SELECT message FROM autoreply WHERE recipient='${local_part}@${domain}'}}

Router:

userautoreply:
driver = accept
condition = ${if eq{} {${lookup mysql{SELECT recipient FROM autoreply \
WHERE recipient='${local_part}@${domain}'}}}{no}{yes}}
senders = " ! ^.*-request@.*:\
! ^owner-.*@.*:\
! ^postmaster@.*:\
! ^listmaster@.*:\
! ^mailer-daemon@.*\
! ^root@.*\
! ^noreply@.*"
no_expn
no_verify
transport = userautoreply
unseen

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Автор: makky
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 3, среднее: 4,33 из 5)
Загрузка...
Отправить на почту Отправить на почту
    Не найдено

По-моему мнению, рассылки внутри компании и не только? очень удобная вещь.

Я приведу организацию простейшего случая, но весьма нужного (всем кому давал — очень понравилось =))

Поставьте в acl_check_rcpt:

deny    !authenticated  = *
local_parts     = all

А то спамить удобно будет =)

Router:

virtual_allusers:
driver = redirect
allow_fail
allow_defer
condition = ${if eq {$local_part}{all}{yes}{no}}
data = ${lookup mysql{SELECT CONCAT(login,"@",domain) FROM users}}

секция rewrite:

all@domain $1@domain F

Таким образом, посылая письмецо на all@domain, его получат все. Перебивать заголовки необязательно, но тогда при ответе на такое письмо, ответ получат все, что иногда приводило к появлению неприятных ситуаций.

Enjoy it! ;)

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Автор: makky
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 2, среднее: 4,00 из 5)
Загрузка...
Отправить на почту Отправить на почту
    Не найдено

Введение

Поводом к посту послужил поиск проблемы, следующего характера: блокированные пользователи с помощью ACL на SVI на 3560 продолжают работать.

Данный пост не претендует на некое открытие, возможно автор изначально не внимательно читал rtfm)

Схема работы сети абсолютно стандартная: 3560 в роли L3 -> trunk ports -> L2 коммутаторы. Все пользователи находятся в своих Vlan, для каждого vlan свой SVI на 3560.

Сами конфиги

!
interface GigabitEthernet0/5
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 308,508,553,901-938,951-958,1010-1030
switchport mode trunk
mac access-group DropL2InvalidFrames in

!
interface Vlan904
ip address х.х.х.х 255.255.255.248
ip access-group vlan904-in in
ip access-group vlan904-out out

!
interface Vlan909
ip address у.у.у.у 255.255.255.248
ip access-group vlan909-in in

!
mac access-list extended DropL2InvalidFrames
deny any 0180.c200.0000 0000.0000.000f
deny any host 0180.c200.0010
deny any host 0100.0c00.0000
deny any host 0100.0ccc.cccc
deny any host 0100.0ccc.cccd
deny any host 0100.0ccd.cdce
deny any host 0100.0ccd.cdd0
permit any any
!

sh ip access-lists vlan904-in

Extended IP access list vlan904-in
10 deny tcp host х.х.х.х any eq 445
20 deny tcp host х.х.х.х any eq 135
30 deny tcp host х.х.х.х any eq 139
40 permit ip any any

sh ip access-lists vlan909-in

Extended IP access list vlan909-in
10 deny ip у.у.у.у 0.0.0.7 any
20 permit ip any any

Вывод

Как видно из конфигурации, что клиент находящийся во vlan 909 не должен работать, однако, это не так. После долгих поисков и проб с конфигурацией ACL, было выяснено — исключение строки

mac access-group DropL2InvalidFrames in

из конфигурации порта коммутатора восстанавливало работу ACL L3.

После изучения документа Catalyst 3560 Switch Software Configuration Guide находим некоторые полезные фрагменты:

When an input router ACL and input port ACL exist in an switch virtual interface (SVI), incoming
packets received on ports to which a port ACL is applied are filtered by the port ACL. Incoming
routed IP packets received on other ports are filtered by the router ACL. Other packets are not
filtered.

И еще выдержка:

After you create a MAC ACL, you can apply it to a Layer 2 interface to filter non-IP traffic coming in
that interface. When you apply the MAC ACL, consider these guidelines:
• If you apply an ACL to a Layer 2 interface that is a member of a VLAN, the Layer 2 (port) ACL
takes precedence over an input Layer 3 ACL applied to the VLAN interface or a VLAN map applied
to the VLAN. Incoming packets received on the Layer 2 port are always filtered by the port ACL.
• You can apply no more than one IP access list and one MAC access list to the same Layer 2 interface.
The IP access list filters only IP packets, and the MAC access list filters non-IP packets.

Данный текст можно притянуть «за уши» к решению проблемы и принять, что это так, но однако сам документ, равно как и автор более широко осветить решение данной проблемы не может. Пока этот обнаруженный факт оставляем, как заметка №1, которую надо учитывать при настройке коммутаторов 3560.

P.S. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !
Автор: zaikini
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 3, среднее: 5,00 из 5)
Загрузка...
Отправить на почту Отправить на почту
    Не найдено

Вступление

Время от времени поднимается вопрос:

«А может ли Cisco выступать в качестве pptp-клиента?»

и, обычно, на него следует ответ: «Нет».

Однако, большинство IOS версий 12.2 или выше поддерживают это, если дана комманда service internal (она скрытая — по «?» не отображается, но работает) . После выполнения этой комманды в разделе vpdn group в секции request-dialin становятся доступны комманды rotary-group и pool-member.

Рабочая конфигурация на примере Cisco 827-V4 :

!
service internal
!

рекомендуется, подробности ниже — в «Ссылках»:
!
no ip gratuitous-arps
!
ip multicast-routing
!

Включаем VPN
!
vpdn enable
!
vpdn-group 1
request-dialin
protocol pptp
rotary-group 0

IP-адреса PPTP серверов:

initiate-to ip 1.1.1.1
initiate-to ip 2.2.2.2
!

Настройки Dialer0:
interface Dialer0

Уменьшение стандартного MTU:
mtu 1450

Получаем IP от PPTP сервера:
ip address negotiated

Источник сетевой активности, для автоустановления соединения, без использования дополнительных маршрутов:
ip pim dense-mode

Выставляем инкапсуляцию:
encapsulation ppp

Продолжаем настройку Dialer0:

dialer in-band
dialer idle-timeout 0
dialer string 123 ! Рекомендуется, но не используется
dialer vpdn
dialer-group 1
no cdp enable
ppp pfc local request
ppp pfc remote apply
ppp encrypt mppe auto
ppp chap hostname ВАШ_ЛОГИН
ppp chap password 0 ВАШ_ПАРОЛЬ
!
dialer-list 1 protocol ip permit

Маршруты до PPTP-серверов:
ip route 1.1.1.1 255.255.255.255 Ethernet0
ip route 2.2.2.2 255.255.255.255 Ethernet0

Маршрут по умолчанию через VPN:
ip route 0.0.0.0 0.0.0.0 Dialer0

После применения данной конфигурации у вас должен сразу подняться туннель:

Router#show ip interface brief
Interface                  IP-Address      OK? Method Status                Protocol
Ethernet0                  192.168.221.106 YES DHCP   up                    up
Dialer0                    10.255.0.1      YES IPCP   up                    up
Virtual-Access1            unassigned      YES unset  up                    up

Подняться default роутинг:

Router#sh ip route
Gateway of last resort is 0.0.0.0 to network 0.0.0.0

     1.1.1.0/32 is subnetted, 1 subnets
S       1.1.1.1 [1/0] via 192.168.221.1
     10.0.0.0/32 is subnetted, 2 subnets
C       10.30.10.1 is directly connected, Dialer0
C       10.255.0.1 is directly connected, Dialer0
C    192.168.221.0/24 is directly connected, Ethernet0
S*   0.0.0.0/0 is directly connected, Dialer0

Ссылки:

P.S. Все команды в вышеприведенной конфигурации являются обязательными.
P.P.S. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !
Автор: Панфилов Алексей (lehis (at) subnets.ru)
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 2, среднее: 5,00 из 5)
Загрузка...
Отправить на почту Отправить на почту
    Не найдено