The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Новое ПО для фильтрации спама.

01.09.2003 12:17

По поводу спама в интернете: мы пытаемся решить эту проблему у себя в институте (Институт Солнечно-Земной Физики). Перепробовали много почтовых фильтров и все они по разным причинам нас не устроили.

Основные причины: использование сомнительных методов фильтрации, таких как контекстных поиск по ключевым словам, фильтрация по цвету используемого шрифта или бэкграунда в HTML сообщениях, черезмерно жесткие требования к конфигурации передающего сервера и.т.п. Отключение этих функций в большинстве популярных фильтров приводит к бесполезности их применения. Использование же этих функций приводит к ошибкам фильтрации - т.е. к утере важной информации.

В нашем случае это было недопустимо и нам пришлось написать собственный фильтр (Sendmail Confirmation System (SMC)), который практически лишен таких недостатков. Сейчас фильтр тестируется на ограниченной группе пользователей. Эффективно фильтрует спам и при правильной настройке не приводит к потере информации.

Основные возможности:

  • Криптографическая система подтверждения доставки;
  • Оригинальный "chek relay" алгоритм;
  • 3 эффективных алгоритма проверки отправителя;
  • Локальная проверка получателя;
  • Поддержка DNS-листов;
  • Функция переименования расширения опасных типов присоединенных файлов;
  • Очистка HTML от скриптов и опасных внедренных объектов.

    Программа доступна в исходниках для некоммерческого использования; немного сырая, но рабочая. Фильтр написан для Sendmail/Linux. Поддержка других систем не предусматривается. Подробнее: http://smc.iszf.irk.ru и если необходимо готов прокомментировать используемые алгоритмы.

    1. Главная ссылка к новости (http://smc.iszf.irk.ru...)
    Автор новости: Alexander Djourik
    Лицензия: CC BY 3.0
    Короткая ссылка: https://opennet.ru/2813-html
    Ключевые слова: html, file, config, limit, mail, color, socket, crypt, access, font, text, linux, search, connect, sendmail, dns, filter, spam, relay
    При перепечатке указание ссылки на opennet.ru обязательно


    Обсуждение (41) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 13:29, 01/09/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    При сборке пишет:
    make
    cc -g -O2 -Wall -D_GNU_SOURCE -D_REENTRANT -c locks.c
    cc -g -O2 -Wall -D_GNU_SOURCE -D_REENTRANT -c utils.c
    cc -g -O2 -Wall -D_GNU_SOURCE -D_REENTRANT -c relay.c
    cc -g -O2 -Wall -D_GNU_SOURCE -D_REENTRANT -c smtp.c
    cc -g -O2 -Wall -D_GNU_SOURCE -D_REENTRANT -o smc-milter locks.o utils.o relay.o smtp.o smc-milter.c -lmilter -lsm -pthread -lssl -lresolv -ldb
    /usr/bin/ld: cannot find -lsm
    collect2: ld returned 1 exit status
    make: *** [milter] Ошибка 1

     
     
  • 2.3, Alexander (?), 19:58, 01/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    Установите sendmail-devel
     
     
  • 3.5, Аноним (1), 07:35, 02/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    Выложи db_185.h из /usr/include/db3 в /usr/include или сделай на него линк

    про sendmail-devel я уже догодался:-)

     

  • 1.2, OLe (?), 16:53, 01/09/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а у меня
    [root@ros smc-milter-1.0.5]# make
    cc -g -O2 -Wall -D_GNU_SOURCE -D_REENTRANT -c relay.c
    relay.c:31:20: db_185.h: No such file or directory
    make: *** [relay.o] Error 1
     
     
  • 2.4, Alexander (?), 20:05, 01/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    для сборки требуется
    db4-devel или db3-devel или glibc-devel в зависимости от того на какой системе вы собираете фильтр.

     
     
  • 3.6, OLe (?), 11:57, 02/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    поставил sendmail-devel
    стоит glibc-devel и db3-devel - все ровно тоже
    [root@ros smc-milter-1.0.5]# make
    cc -g -O2 -Wall -D_GNU_SOURCE -D_REENTRANT -o smc-milter locks.o utils.o relay.o smtp.o smc-milter.c -lmilter -lsm -pthread -lssl -lresolv -ldb
    /usr/bin/ld: cannot find -lsm
    collect2: ld returned 1 exit status
    make: *** [milter] Error 1
     
     
  • 4.7, Alexander (?), 13:41, 02/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    Убери -lsm из LIBS в Makefile
    Вполне достаточно lmilter.
     
     
  • 5.8, OLe (?), 14:07, 02/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    теперь вот это:
    [root@ros smc-milter-1.0.5]# make
    cc -g -O2 -Wall -D_GNU_SOURCE -D_REENTRANT -o smc-milter locks.o utils.o relay.o smtp.o smc-milter.c -lmilter -pthread -lssl -lresolv -ldb
    /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libmilter.a(main.o): In function 'smfi_register':
    main.o(.text+0x74): undefined reference to 'strlcpy'
    /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libmilter.a(main.o): In function 'smfi_setconn':
    main.o(.text+0x12f): undefined reference to 'strlcpy'
    /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libmilter.a(listener.o): In function 'mi_milteropen':
    listener.o(.text+0x184): undefined reference to 'strlcpy'
    /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libmilter.a(engine.o): In function 'st_connectinfo':
    engine.o(.text+0x83a): undefined reference to 'strlcpy'
    collect2: ld returned 1 exit status
    make: *** [milter] Error 1
     
     
  • 6.9, Alexander (?), 14:58, 02/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    Первое: в твоем случае действительно нужна библиотека libsm.a, которая по всей видимости отсутствует в твоем sendmail-devel пакете (вероятно забыли положить ;). Второе: твой sendmail безнадежно устарел. Версию, которую ты используешь использовать опасно. Подробности на http://www.sendmail.org. Удачи!
     
  • 6.10, Alexander (?), 15:29, 02/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    В принципе если найдешь у себя libsm.a
    короче сделай так:
    rpm -qi sendmail-devel | grep libsm
    и посмотри есть она у тебя или нет, если есть - в LIBS
    (в Makefile) вместо -lsm укажи полный путь к ней.
    должно собраться. Но sendmail в любом случае тебе обновить не мешает.
     

  • 1.11, toor (?), 12:19, 03/09/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это все здорово, я только не понял, где же здесь собственно *контекстная* фильтрация. То-есть, анализ тела письма и заголовков. Обратную проверку - вижу, поддержку блэк-листов - тоже, включение-выключение фильтрации для отдельных пользователей - это вообще отлично. А анализа писем нету. Это раз. Два - если MTA отдаёт письмо доставщику, отличному от тупого mail.local (Cyrus, например, точнее lmtpd), часть функций вообще идёт по женско
     
  • 1.12, toor (?), 12:21, 03/09/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это все здорово, я только не понял, где же здесь собственно *контекстная* фильтрация. То-есть, анализ тела письма и заголовков. Обратную проверку - вижу, поддержку блэк-листов - тоже, включение-выключение фильтрации для отдельных пользователей - это вообще отлично. А анализа писем нету. Это раз. Два - если MTA отдаёт письмо доставщику, отличному от тупого mail.local (Cyrus, например, точнее lmtpd), часть функций вообще идёт по женской линии. Три - не на линуксе эта штука даже не соберется, впрочем об этом честно было сказано. Но все равно, жаль, т.к. многие ISP используют *BSD.
     
     
  • 2.13, Alexander (?), 20:38, 03/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    Насчет заголовка - это уж так тут нас обозвали ;-)
    Но в принципе я не против контекстная фильтрация в какой-то мере в фильтре присутствует: подмена опасных расширений присоедененных файлов, фильтрация скриптов и опасных html тегов.. правда это конечно не главное в этом фильтре. Насчет всего остального - согласен. Фильтр писался под нужды института и не предназначен для всех случаев жизни. По поводу других систем и других MTA. Думаю, что новые версии появятся, т.к. пока что (при сильной нагрузке) связка Linux/Sendmail/Milter/Filter работает немного нестабильно.
     
  • 2.14, Alexander (?), 20:57, 03/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, и это все-таки важно Основная идея реализованная в этом фильтре - как р... большой текст свёрнут, показать
     
     
  • 3.15, toor (?), 11:24, 04/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    Да, я понимаю.
    Было бы, может быть, неплохо сделать обратную проверку. Примерно так:
    - принимаем письмо от user@somedomain.dom
    - смотрим, кто является приоритетным MX-ом для mydomain.dom
    - подключаемся на 25 порт этого MX-а, говорим ehlo, говорим mail from: root@ourdomain.dom, говорим rcpt to: user@somedomain.dom
    - если на этом этапе не получаем ошибки, то отключаемся, и считаем, что письмо - не спам.
    Разумеется, это не панацея, т.к. в ряде случаев MX может тупо принимать всю почту для домена - например, в случае дальнейшей передачи по UUCP, или... ну, в общем, возможен ряд других случаев. Но все-таки.
     
     
  • 4.16, Maxim Chirkov (?), 15:26, 04/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    >Было бы, может быть, неплохо сделать обратную проверку. Примерно так:

    Аргументы против такой проверки:
    - 80оей почты составляют письма от роботов с хостов не принимающих почту, а только отправляющих. Затрояненную машину рассылающую спам, не отличить от send-only сервера.
    - Огромное число (больше чем кажется) серверов не осуществляет проверку реальности пользователя на этапе RCPT TO, скорее всего сперва принимается письмо, а потом генерируется bounce сообщение.
    - Спам все больше и больше отправляется с реальными email в заголовках, взятых из спамовской базы по которой ведется рассылка.

     
  • 4.17, Alexander (?), 21:02, 05/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    Фильтр такую проверку делает. Но несколько иным образом.
    На этапе приема почты он делает запрос к наименьшему MX-у и если получает ясный ответ, что такого пользователя не существует - то выдает ошибку 550 Rejected by filter. В любом другом случае ни делаем ничего ;-)
    Причина по которой нельзя пропускать если пользователь существует - в большей части случаев это как раз и есть спам, т.е. письмо отправлено не им.
     

  • 1.18, Oleg Polovinkin (?), 18:11, 08/09/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Источник ссылки - http://smc.iszf.irk.ru/ - только мне недоступен? Или что-то случилось?
     
     
  • 2.19, Alexander (?), 20:18, 08/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    Какие-то проблемы у провайдера. Обещали скоро поправить.
    Если так будет продолжаться - перебросим проект на другой канал.
     
  • 2.20, Alexander (?), 20:55, 12/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    Перебросили сайт проекта на другой канал.
    Пока обновляются DNS-таблицы используйте IP: 195.161.19.177
    Выложили текущую версию фильтра.
    Если у Вас фильтр работает нестабильно, попробуйте новую версию.
    Релиз фильтра ожидается в течение месяца.

     
     
  • 3.21, Alexander (?), 15:15, 17/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    16.09.2003 SMC версия 1.0.9-PR (Pre Release)
     
     
  • 4.22, Alexander (?), 17:31, 24/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    ВНИМАНИЕ: При сборке пакета фильтра версии 1.0.9-PR от 19.09.2003 были допущены ошибки. Фильтр некорректно работал в режиме "подтверждения доставки". Рекомендуется обновление до версии 1.0.9-PR2.
     

  • 1.23, Alexander (?), 05:04, 09/10/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Версия 1.2.0. Release (07.10.2003)
    Фильтр стал меньше, проще и лучше. Среди новых возможностей - проверка проходящей почты на вирусы с помощью антивируса Касперского. Теперь фильтр работает не только с локальными пользователями.
     
     
  • 2.25, x0r (?), 18:06, 23/10/2003 [^] [^^] [^^^] [ответить]  
  • +/
    Замечательный фильтр и алгоритмы неплохо продуманы, но найден один(пока) существенный недостаток. Отшибаются письма от виртуальных почтовых доменов. Пример:
    Письмо от vasya@pupkin.net доставляет нам mail.dudkin.net(1.1.1.1)и его фильтр бортует, т.к. домены не совпадают. Резолвинг адреса 1.1.1.1 дает mail.dudkin.net.
    Но если посмотреть зону pupkin.net , то видно, что там MX mail.pupkin.net , который тоже имеет адрес 1.1.1.1
    Ситуация очень распространенная, нужно как то решать... :(
     
     
  • 3.26, Alexander (?), 16:22, 24/10/2003 [^] [^^] [^^^] [ответить]  
  • +/
    Алгоритм ns-relay не используется для блокирования почты. Это есть в readme (подробное описание сделаем позже). этот алгоритм используется для того, чтобы выделить те контакты, которые могут быть признаны легальными и пропущены без задержек. Прием тех писем, которые вызывают подозрение задерживается (в стандартной конфигурации на 10 минут). После чего такая почта будет также принята. Задержка необходима для того, чтобы отфильтровать тех отправителей, которые не могут осуществить повторную доставку почты в ответ на ошибку 4.7.0 (сервер временно не доступен. повторите позже).

    На некоторые адреса может не срабатывать verify (для проверки есть утилиты
    smc-tools в дистрибутиве).

    Для тех исключительных случаев, когда какой-то из алгоритмов не позволяет
    принимать почту с известного сервера или требуется пропускать почту без
    задержек с какого-то опять же определенного сервера - есть access файл
    sendmail-а в который можно прописать (например для сервера 192.168.1.1):

    192.168.1.1  OK

    Почта с этого адреса будет приниматься без задержек.

    Также для этих целей есть алгоритм автоаутентификации отправителя. Работает он следующим образом: если пользователь системы ранее отправлял сообщение какому-то адресату - то обратный ответ вернется без задержек.

    Таким образом мы имеем один "черный список" - это DNS блэк-листы, блокировку несуществующих адресов (verify), алгоритм ns-relay, который инициирует задержку приема для тех сообщений, которые не были признаны легальными и 3 типа "белых списков", которые позволяют избежать такой задержки в случае ошибки. Это /mail/access, DNS белые списки и система автоаутентификации отправителя.

    Таким образом после некоторого времени работы система автоматически обучается и входит в нормальный режим работы. Остаются только проблемные сервера (они встречаются крайне редко), которые прописываются в /mail/access (см. выше).

     

  • 1.24, Аноним (24), 10:56, 11/10/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а как исправить smc-milter.conf чтобы он локальным пользователям не выдавал "Try again later"
     
     
  • 2.27, Alexander (?), 16:27, 24/10/2003 [^] [^^] [^^^] [ответить]  
  • +/
    smc-milter.conf исправлять не нужно.
    локальные пользователи должны быть определены в /mail/access следующим образом (напр. для локального хоста и сети 10.2.1.0):

    127.0.0.1  RELAY
    10.2.1  RELAY

    Если требуется только принимать почту без проверок от какого-то сервера можно прописать (напр для 192.168.2.1):

    192.168.2.1  OK

     
     
  • 3.28, oleg (?), 12:17, 28/10/2003 [^] [^^] [^^^] [ответить]  
  • +/
    да у меня так все и есть.
    для локальных адресов - RELAY.
    но все равно в ответ только - Try again later.
    а еще варианты есть?
    спасибо за ответы
     
     
  • 4.29, Alexander (?), 13:32, 28/10/2003 [^] [^^] [^^^] [ответить]  
  • +/
    >а еще варианты есть?
    Дополнительные варианты не требуются. Пишите на мой e-mail - попробуем разобраться.

     
     
  • 5.30, Ильгиз (?), 15:43, 04/02/2004 [^] [^^] [^^^] [ответить]  
  • +/
    народ, прошу сильно не бить. У меня несколько чайниковых вопроса:
    1. Заменяет ли данный софт такие связки как Spamassassin+procmail?
    2. Есть ли связное описание данного продукта?
    3. Можно ли после установки данного продукта удалить из mc файла строки типа
    FEATURE(dnsbl, 'dialups.mail-abuse.org','550 Mail from $&{client_addr} rejected; see http://mail-abuse.org/dul/enduser.htm')

    FEATURE(dnsbl,'unconfirmed.dsbl.org','550 Mail from $&{client_addr} rejected; see http://dsbl.org/listing.php?$&{client_addr}
    ')

    FEATURE(dnsbl,'relays.ordb.org', 'Rejected - see http://ordb.org/')
    ?

    Ответы очень прошу продублировать на мыло.
    Спасибо заранее.

     
     
  • 6.31, Юзер (?), 22:19, 25/03/2004 [^] [^^] [^^^] [ответить]  
  • +/
    Заранее спасибо за ответ,
    собираеться нормально, но при старте сендмайла в консоль пишет:

    451 4.0.0 /etc/mail/sendmail.cf: line 1846: XSMC-milter: local socket name /var/spool/msmcfilter/smc-milter.sock unsafe: Group writable directory

    Хотя это естественно не так. :-(

    В лог файле следующая картина:
    NOQUEUE: SYSERR(root): /etc/mail/sendmail.cf: line 1848: XSMC-milter: local socket name /var/run/smc-milter.sock unsafe: Group writable directory
    NOQUEUE: Milter (SMC-milter): to error state
    NOQUEUE: Milter (SMC-milter): to error state

    Спасибо заранее.


     
     
  • 7.35, ArtP (?), 00:52, 04/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    с правами доступа напортачил, у меня такая же проблема был. набрал:
    sudo chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
     

  • 1.32, Евгений (??), 14:12, 26/04/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сырой, слабый продукт. Не очень эффективен. Иногда совсем не эффективен. Намного более интересное решение - это milter-sender.
    А еще milter-regex и smtp-vilter.
     
     
  • 2.33, x0r (?), 13:32, 16/06/2004 [^] [^^] [^^^] [ответить]  
  • +/
    >Сырой, слабый продукт. Не очень эффективен. Иногда совсем не эффективен. Намного более
    >интересное решение - это milter-sender.
    >А еще milter-regex и smtp-vilter.
    В корне не согласен, все вышеперечисленные фильтры значительно уступают по возможностям и эффективности smc-milter.
    На счет сырости - согласен, если бы авторы продолжили работу - получился бы отличный продукт.
     
     
  • 3.34, ald (?), 19:56, 15/02/2005 [^] [^^] [^^^] [ответить]  
  • +/
    >>Сырой продукт.

    Проект продолжает развиваться.
    Новый адрес проекта http://milter.sourceforge.net/
    Проекту нужна помощь.

    -- Alexander

     
  • 3.36, Aleksander (??), 06:54, 30/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    SMC anti-spam e-mail filter версия 2.0

    SMC анти-спам e-mail фильтр (плагин) - программное приложение разработанное, чтобы значительно уменьшить количество приходящей SPAM/UCE почты. SMC использует технику подобную грейлистингу для блокирования нежелательной почты и набор работающих по оригинальным алгоритмам автоматических белых списков для определения легальной почты, которая будет доставлена без задержек. В версии 2.0 появилась поддержка Postfix, поддержка антивируса ClamAV, возможность блокирования всей почты, не прошедшей проверку белыми списками. Устранено большое количество критических ошибок.

    URL: http://milter.sourceforge.net

    Файлы, доступные для скачивания:
    http://prdownloads.sourceforge.net/milter/smc-milter-2.0-1.i586.rpm?download
    http://prdownloads.sourceforge.net/milter/smc-milter-2.0-1.i686.rpm?download
    http://prdownloads.sourceforge.net/milter/smc-milter_2.0-1_i386.deb?download
    http://prdownloads.sourceforge.net/milter/smc-milter-2.0-1.src.rpm?download
    http://prdownloads.sourceforge.net/milter/smc-milter-2.0.tar.gz?download

    Все RPM собираны на Alt-Linux 4.02
    Все DEB пакеты на Ubuntu 8.04

     
     
  • 4.37, Денис (??), 11:52, 02/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Александр я поставил milter все работает замечательно, только я не могу найти детального описания работы этого мильтера. :(
     
     
  • 5.38, Aleksander (??), 16:47, 15/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Скоро обновится сайт и там будет полное и детальное описание.
     
     
  • 6.39, Aleksander (??), 19:39, 30/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    SMC-milter обновился до версии 2.1. Добавлена поддержка SPF (Sender Policy Framework). Исправлена потенциальная ошибка в алгоритме кэширования данных. Перезагрузка конфигурации добавлена на сигнал 1 (SIGHUP). Обновлен загрузочный скрипт для FreeBSD. "NS Relay" алгоритм переименован в AutoSPF. Устранена незначительная ошибка в коде AutoSPF. Открыт сайт проекта AutoSPF ( http://www.autospf.org/ ). Auto-confirmation алгоритм переименован в AutoSWL (Auto Sender White List). Устранена критическая ошибка в greylisting алгоритме фильтра. Добавлен ряд новых опций в конфигурационный файл фильтра. Незначительные изменения в значениях по умолчанию конфигурационного файла. Чистка кода, оптимизация, изменения в документации. Рекомендуется обновление.

    URL: http://milter.sourceforge.net
    URL: http://www.autospf.org

     
     
  • 7.40, Yuri (??), 10:02, 03/07/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Нужна помощь.

    пытаюсь собрать пакет 2.1 на Red Hat Enterprise Linux AS release 3 (Taroon Update 7)

    ./configure
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for gawk... gawk
    checking whether make sets $(MAKE)... yes
    checking for gcc... gcc
    checking for C compiler default output file name...
    configure: error: C compiler cannot create executables
    See 'config.log' for more details.

    в config.log пишет.
    configure:2597: gcc -O2 -Wall -D_GNU_SOURCE -D_REENTRANT -Wextra   conftest.c -pthread >&5
    cc1: unrecognized option '-Wextra'

     

  • 1.41, Аноним (41), 12:08, 11/07/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Есть такая проблема на CentOS 3.
    >configure:2597: gcc -O2 -Wall -D_GNU_SOURCE -D_REENTRANT -Wextra   conftest.c -pthread >&5  cc1: unrecognized option '-Wextra'

    надо в configure поправить строку компиляции убрав из нее -Wextra все собирется и заработает.

     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру