LinuxForum.Fans
Тема

Автоматическая загрузка БД с сайта на squid (прокси-сервер).

Автор: Linux777 14 сообщений 4821 просмотров
#328295

Доброго дня! На работе поставили задачу: организация автоматической загрузки списка запрещенных сайтов c ресурса http://www.zapret-info.gov.ru./tooperators/form/ на Squid.

Очевидно требуется скрипт, который будет это автоматом делать. Осталось составить команды, которые это умееют. На ум сразу пришел wget и конструкция типа

# ! /bin/bash/
wget http://www.zapret-info.gov.ru./tooperators/form/

Но возник вопрос надо наверно указать путь, куда ему выгружать. например /etc/squid/squid.conf и дать название файлу, например база ЗЩ (запрещенных сайтов). Чтобы сервер мог автоматом получалось данные с сайта на сервер, допустим это будет файл в каталоге /etc/squid/squid.con и тогда наверно надо внести какое-нибудь изменения в сам конфиг сквида? А пока вот фрагмент сквида по базе этих сайтов, только он взят и вбит вручную, сортировку делал по демену:

text
acl ufa dstdomain .ufa.realstaf.com
acl legalitolko dstdomain .legalitolko.com
acl poroshki dstdomain .poroshki.tv
acl ganjeprom dstdomain .ganjeprom.com
acl aromasmoke dstdomain .aromasmoke.ru
acl sultan74 dstdomain .sultan74.com
acl jahforum dstdomain .jahforum.org
acl salvias dstdomain .salvias.biz
acl bestmaza dstdomain .bestmaza.biz
acl moscowsmokes dstdomain .moscow-smokes.com
acl semyanich dstdomain .semyanich.com
acl angelotrip dstdomain .angelotrip.com
acl legalki dstdomain .legalki.net
acl seedjah dstdomain .seedjah.com
acl 12sex dstdomain .12sex.ru
acl alongtubemixasia dstdomain .along.tubemix.asia
acl freetubemixasia dstdomain .free.tubemix.asia
text
http_access deny legalki
http_access deny seedjah
http_access deny 12sex
http_access deny alongtubemixasia
http_access deny freetubemixasia
http_access deny xpuls 
http_access deny videoone
http_access deny pornosmotrim
http_access deny eroguru
http_access deny pbpictureview
http_access deny nakurruckp
http_access deny legalrc
http_access deny weedhash
http_access deny salesmoke

А теперь надо это сделать автоматически, чтобы база обновлялась. Это вообще возможно в принцепе? а в сквиде реализовать можно? или надо приложение какое ставить, можете подсказать?

Вообщем, подскажите, как реализовать идею эту, если это возможно, может кто уже делал. Или как пример, может у кого, есть подобный скрипт, или аналогичный, который с определенного ресурса берет БД и автоматом загружает на сервер, где уже проверятся определенные условия. В данному случае конфиг сквида уже потом должен проверить разрешен доступ к ним или нет, как я это делал вручную и привел фрагмент с сервера.

#328296

Забрать файл уже надо скрипт, там вроде POST используеться.
После парсишь url и в один файл. Файл прописать в конфиг и готово.

#328299
"Kettler⇓" написал:
Забрать файл уже надо скрипт, там вроде POST используеться.
После парсишь url и в один файл. Файл прописать в конфиг и готово.

Ну, да на этом сайте http://www.zapret-info.gov.ru./tooperators/form/ хранится база сайтов, запрещенных в РФ. И я так понял, чтобы его забрать уже надо скрипт? например, как я указал типа этого

"Linux777⇓" написал:
# ! /bin/bash/
wget http://www.zapret-info.gov.ru./tooperators/form/
потом что-то типа awk + sed использовать и все записывать в файл
и потом этот файл в конфиге прописывать

whet же прекрасно умеет закачивать все, что угодно. не так ли?

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

#328307
Linux777 написал:
[quote="Kettler⇓"]Забрать файл уже надо скрипт, там вроде POST используеться.
После парсишь url и в один файл. Файл прописать в конфиг и готово.

Ну, да на этом сайте http://www.zapret-info.gov.ru./tooperators/form/ хранится база сайтов, запрещенных в РФ. И я так понял, чтобы его забрать уже надо скрипт? например, как я указал типа этого

"Linux777⇓" написал:
# ! /bin/bash/
wget http://www.zapret-info.gov.ru./tooperators/form/
потом что-то типа awk + sed использовать и все записывать в файл
и потом этот файл в конфиге прописывать

whet же прекрасно умеет закачивать все, что угодно. не так ли?

зы. ну я пока как-то так думаю. общее тело скрипта составляю, так сказать алгоритм его работы (блок схема это в информатике называется).[/quote]
Не выкачает. Я бы на вашем месте обратился к freelance.

#328412
"Kettler⇓" написал:
Не выкачает. Я бы на вашем месте обратился к freelance.

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

#328418

Больше чем уверен. Вы для начала хоть ручками попробуйте выкачать и сами увидите.
У вас есть уже файл подписи? Ещё там капча =)

#328420
"Kettler⇓" написал:
Вы для начала хоть ручками попробуйте выкачать и сами увидите.

имеется ввиду просто через консоль и через wget? пробовать буду конечно, но в рабочее время)

"Kettler⇓" написал:
У вас есть уже файл подписи? Ещё там капча =)

не очень понял о чем речь. но у нас есть электронный ключ, наверно речь об этом.

#328439
"Linux777⇓" написал:
не очень понял о чем речь

Речь о том, что прямой ссылки на файл нет, если бы была, то всё элементарно.

#328475

Оно вам надо? Вы уверены что у вас на данный момент данные сайты доступны?

#328655
"Kettler⇓" написал:
Оно вам надо? Вы уверены что у вас на данный момент данные сайты доступны?

уточню, но скорей всего надо, раз требуется. не вручную же все писать, как изначально писалось мной.
но думаю решение какое-то должно быть. будем решать. я даже вручную уже делал выборку из готового файла данных в формате XML, но этот файл я не качал с сайта, мне его тупо на почту высылали. поэтому для начала надо попробвать тупо wget выкачать его (надеюсь без всяких качпей это можно сделать, по прямой ссылке). а если нет, то посмотрим.

Вообще решение думаю есть, даже если по ключу это работает. иначе прикинь, ручками это писать? не айс как-то.

#328673
"zenon⇓" написал:
Речь о том, что прямой ссылки на файл нет, если бы была, то всё элементарно.

Спасибо. Действительно все не так просто, сейчас я узнал как все это работает (но в ручном режиме). Оказывается сначала надо подписать обычный файл xml цифровой электронной подписью (на предмет подлинности документов это надо). Потом подписанный этот файл выгрузить на том сайте, потом ввести капчу для подтверждения и подождать 5-10 минут, чтобы проверили мой файл на подлинность, после этого я закачаю ручками себе документ.

text
всвязи с чем понимаю почему не выкачает, wget работает по прямой ссылке, а тут подпись..капча.. не так все просто, как кажется..но думаю выход есть
#328704
Linux777 написал:
[quote="zenon⇓"]Речь о том, что прямой ссылки на файл нет, если бы была, то всё элементарно.

Спасибо. Действительно все не так просто, сейчас я узнал как все это работает (но в ручном режиме). Оказывается сначала надо подписать обычный файл xml цифровой электронной подписью (на предмет подлинности документов это надо). Потом подписанный этот файл выгрузить на том сайте, потом ввести капчу для подтверждения и подождать 5-10 минут, чтобы проверили мой файл на подлинность, после этого я закачаю ручками себе документ.

text
всвязи с чем понимаю почему не выкачает, wget работает по прямой ссылке, а тут подпись..капча.. не так все просто, как кажется..но думаю выход есть

[/quote]
Совершенно верно. Но есть одно но, скорее всего данные сайты уже заблокированны до вас.

#328705
"Kettler⇓" написал:
Совершенно верно. Но есть одно но, скорее всего данные сайты уже заблокированны до вас.

но как я уже понял, судя по статьям гугла, не первый я такой, в частности нашел на хабре http://habrahabr.ru/company/netangels/blog/158891
а сайты частично заблокированы до нас другими провайдерами, но как показывает практика не все, все зависит от того, кто предоставляет инет нам, и другим. в частности я проверял, нам МТС предоставляет, но они не все блочат, поэтому хочется подставаться и стоит задача сделать это у нас.

в частности думаю, раз не я один озадачен этим, вот что с хабра для нас подходит

В виде полного дампа базы запрещенных ресурсов в разделе «операторам связи». Есть возможность доступа либо через веб-форму с необходимостью ввода капчи, либо через SOAP-сервис. Адрес WSDL: www.zapret-info.gov.ru/services/OperatorRequest/?wsdl.

Еще один ресурс, решение на UNIX http://www.cryptopro.ru/blog/2012/12/14/edinyi-reestr-zapreshchennykh-saitov-eto-prosto-dazhe-v-unix
#328973

Вообщем проблема облегчилась и частично решилась, первое что я узнал, у нас цифровая подпись и сертификат для ОС Windows. Поэтому реализовать ее через скрипты (php, perl or bash) не удастся. В связи с чем, на виндовом сервере будем делать вручную. Но если для работы потребуется автоматическая реализация, буду советовать, чтобы было тоже самое для *nix. И тогда все успешно можно сделать, причем без wget и без парсинга. Все оказывается намного проще сделано. Есть такой SOAP-медод, к нему просто написать небольшой скриптик надо, и делов то)). Но т.к. пока это неактуально, вопрос закрыт.

зы. а о методе SOAP вот статейки, может кому пригодится. кстати, сам я уже понял, там все просто. нужно только реализация подписей и электронных ключей под никсы)). Потому что эта проблемы была не у одного меня, решения в гугле есть. Пару ссылок:
http://habrahabr.ru/sandbox/51575/
http://habrahabr.ru/company/netangels/blog/158891/
http://habrahabr.ru/qa/27711/

а это судя всего решение для винды http://molet.ru/vyigruzhaem-reestr-zapreshhennyih-saytov-s-sayta-roskomnadzora/

сам SOAP-сервис уже приводил выше:

"Linux777⇓" написал:
В виде полного дампа базы запрещенных ресурсов в разделе «операторам связи». Есть возможность доступа либо через веб-форму с необходимостью ввода капчи, либо через SOAP-сервис. Адрес WSDL: www.zapret-info.gov.ru/services/OperatorRequest/?wsdl.

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

Войдите или зарегистрируйтесь, чтобы ответить.