Не хочет работать скрипт redirector.pl из SQUID конфига

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
WarDraft
проходил мимо
Сообщения: 9
Зарегистрирован: 2007-10-08 15:20:47
Откуда: СПб

Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение WarDraft » 2007-10-08 17:10:27

У меня более чем скромный опыт во FreeBSD, но кой-что получается.

Делаю второй в своей жизни сервер-гейт на FreeBSD.

Задача: прикрутить прозрачный прокси и настроить, чтобы пользователи не сидели в рабочее время на сайтах lovemy.ru, vkontake.ru и
прочих любовно/морковных ресурсах.

Воспользовался в целях настройки статьей Лиссяры "Прокси-сервер SQUID" (http://www.lissyara.su/?id=1026):
(за что автору огромное человеческое спасибо за толковую статью для начинающих закипать чайников :)

В целом и в общем, все чудно запустилось и работает. Небольшой затык, конечно был, когда обнаружил,
что опции httpd_accel* уже не применяются, но справился, вроде, почитав оригинальную документацию на squid-cache.org, хотя
возможно именно с этим и "накосячил".

Вся схема: FreeBSD 6.2-RELEASE + IPFW + Squid Cache version 2.6.STABLE16. Все заработало, включая acl-листы на
запреты/разрешения.

Предвидя вопросы, сразу скажу, что squid работает под пользователем nobody, на папки, для логов и кеша выданы
соответствующие права и nobody является их владельцем, и прежде чем писать на форум, это было неоднократно проверено.

Моя проблема: не хочет работать скрипт redirector.pl, ну тот который по идее должне фильтровать и редиректить с "вредных"
сайтов (в моем случае, временно разумеется: gazeta.ru, vkontakte.ru)

Выяснилось следущее при проверке из шелла (правда, мне это мало о чем говорит, я даже не знаю куда рыть...):

Код: Выделить всё

gw# ps -ax | grep squid
11324  ??  Ss     0:00.00 /usr/local/squid/sbin/squid -D
11326  ??  S      0:00.05 (squid) -D (squid)
(Типа, все как по учебнику)

Код: Выделить всё

gw# ps -ax | grep perl
11327  ??  Is     0:00.01 redirect (perl5.8.8)
11328  ??  Is     0:00.01 redirect (perl5.8.8)
11329  ??  Is     0:00.01 redirect (perl5.8.8)
11330  ??  Is     0:00.01 redirect (perl5.8.8)
11331  ??  Is     0:00.01 redirect (perl5.8.8)
11332  ??  Is     0:00.01 redirect (perl5.8.8)
11333  ??  Is     0:00.01 redirect (perl5.8.8)
11334  ??  Is     0:00.01 redirect (perl5.8.8)
11335  ??  Is     0:00.01 redirect (perl5.8.8)
11336  ??  Is     0:00.01 redirect (perl5.8.8)
(Тоже, наверное, все правильно)

gw# sockstat | grep perl

Код: Выделить всё

nobody   perl5.8.8  11336 0  stream -> ??
nobody   perl5.8.8  11336 1  stream -> ??
nobody   perl5.8.8  11335 0  stream -> ??
nobody   perl5.8.8  11335 1  stream -> ??
nobody   perl5.8.8  11334 0  stream -> ??
nobody   perl5.8.8  11334 1  stream -> ??
nobody   perl5.8.8  11333 0  stream -> ??
nobody   perl5.8.8  11333 1  stream -> ??
nobody   perl5.8.8  11332 0  stream -> ??
nobody   perl5.8.8  11332 1  stream -> ??
nobody   perl5.8.8  11331 0  stream -> ??
nobody   perl5.8.8  11331 1  stream -> ??
nobody   perl5.8.8  11330 0  stream -> ??
nobody   perl5.8.8  11330 1  stream -> ??
nobody   perl5.8.8  11329 0  stream -> ??
nobody   perl5.8.8  11329 1  stream -> ??
nobody   perl5.8.8  11328 0  stream -> ??
nobody   perl5.8.8  11328 1  stream -> ??
nobody   perl5.8.8  11327 0  stream -> ??
nobody   perl5.8.8  11327 1  stream -> ??
!!! А вот это уже, как-то не очень выглядит...

И похоже, проблема как раз в том, что perl и squid не стыкуются. Сразу скажу, что apache (ну тот, куда указывает редирект в

redirector.pl) живет на др. сервере, но та картинка, соответственно, ссылка http://gw/warning/prohibited.jp вполне

существует и в браузере открывается преспокойно.

Вот то, что у меня накорябано из конфигов:

Код: Выделить всё

---------------------------------
/etc/rc.conf
---------------------------------
# Поскольку, сервер пока в тестовом режиме, то IP-адреса использую "серые".
# Сетевые настройки
hostname="gw"
ifconfig_em1="inet 172.25.210.200/24"   # Внутренний интерфейс
ifconfig_em0="inet 192.168.0.200/24"	# Внешний интерфейс
defaultrouter="192.168.0.252"
gateway_enable="YES"
natd_enable="YES"
natd_flags="-f /etc/natd.conf"

# Службы
named_enable="YES"
squid_enable="YES"

# Файрволл
firewall_enable="YES"
firewall_quiet="NO"
firewall_logging="YES"
firewall_type="filename"
firewall_script="/etc/fw_new"
В файрволле (ipfw), как и положено для прокси назначено перенаправление:

Код: Выделить всё

fwd 127.0.0.1,3128 tcp from 172.25.210.0/24 to any dst-port 80 via em0

Код: Выделить всё

---------------------------------
/usr/local/squid/etc/squid.conf
---------------------------------
http_port 3128 transparent
icp_port 0
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 256 MB
maximum_object_size 8092 KB
maximum_object_size_in_memory 512 KB
cache_dir ufs /var/cache/squid 5120 64 256
access_log /usr/local/squid/var/logs/access.log squid
cache_log /usr/local/squid/var/logs/cache.log
cache_store_log /usr/local/squid/var/logs/store.log
cache_mgr gw.support@gw
visible_hostname gw
tcp_outgoing_address 192.168.0.200
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320
redirect_program /usr/local/squid/etc/redirector.pl
redirect_children 10

acl     all             src             0.0.0.0/0.0.0.0
acl     allowed_sites   dstdomain       "/usr/local/squid/etc/allowed_sites.conf"
acl     limited_IP      src             "/usr/local/squid/etc/limited_IP.conf"
acl     localhost       src             127.0.0.0/8
acl     our_networks    src             172.25.210.0/24
# acl   denied_sites    dstdomain       "/usr/local/squid/etc/denied_ext.conf"
# http_access   deny    denied_sites
http_access     allow   allowed_sites
http_access     deny    limited_IP
http_access     allow   our_networks
http_access     allow   localhost
http_access     deny    all

http_port 80 accel vhost vport

# Следующие строки закомментированы в свете тех событий, что версия squid'a 2.6
# httpd_accel_host virtual
# httpd_accel_port 80
# httpd_accel_uses_host_header on

coredump_dir /var/cache/squid/cache
pid_filename /usr/local/squid/var/logs/squid.pid
Файлики acl, соответственно, заполнены следующим содержимым:

Код: Выделить всё

---------------------------------
/usr/local/squid/etc/allowed_sites.conf
---------------------------------
http://www.yandex.ru
mail.yandex.ru
http://www.ya.ru
http://www.mail.ru

Код: Выделить всё

---------------------------------
/usr/local/squid/etc/denied_ext.conf
---------------------------------
vkontakte.ru
love.ru

Код: Выделить всё

---------------------------------
/usr/local/squid/etc/limited_IP.conf
---------------------------------
172.25.210.123

Код: Выделить всё

---------------------------------
/usr/local/squid/etc/redirector.pl
---------------------------------
#!/usr/bin/perl

$0 = 'redirect' ;
$| = 1 ;

open (IN_FILE, "/usr/local/squid/etc/denied_ext.conf") || die $!;
my @tmp_data = <IN_FILE>;
chomp @tmp_data;
push @banners, map { qr /\Q$_\E/ }  grep { ! /^\s*$/ } @tmp_data;
close IN_FILE;

while (<>) {
    ($url, $who, $ident, $method) = /^(\S+) (\S+) (\S+) (\S+)$/ ;
    $url = 'http://gw/warning/prohibited.jpg'
        if grep ($url=~/$_/i, @banners) ;
    print "$url $who $ident $method\n" ;
}
Последний раз редактировалось WarDraft 2007-10-08 22:59:24, всего редактировалось 1 раз.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Не хочет работать скрипт redirector.pl из SQUID-овского конф

Непрочитанное сообщение dikens3 » 2007-10-08 17:46:56

не сидели в рабочее время на сайтах lovemy.ru, vkontake.ru и
прочих любовно/морковных ресурсах.
Если по ним лазиют, то блокируй, если общаются, тогда блокируй метод POST на эти сайты.
squid.conf
acl users src 192.168.1.0/255.255.255.0
acl porno dstdomain "/usr/local/etc/squid/porno"

http_access deny users POST porno
/usr/local/etc/squid/porno
mylov.ru
mylove.net.ru
mylovein.net
mypupsik.com
nabka.ru
ndate.ru
need-love.ru
need4love.net
neolove.info
neolove.ru
netlovers.ru
nevesta.ehho.com
new-dating.com
new-love.ru
newznakomka.ru
nezabudu.ru
neznakomec.ru
neznakomka.ru
nik-chat.net
nizhny.gayclub.ru
nnovgorod.lubwi.net
norrus.narod.ru
novgorod.lubwi.net
nskfriend.narod.ru
nskprazdnik.com
nwlove.ru
obozhayu.ru
odinochka.net
oduvanchik.info/love
olubvi.info
omen.ru/LOVE.HTM
omeno.ru
oniona.co.il
orenlove.ru
originclub.ru
osdate.ru
osdnsk.ru
oxxxo.narod.ru
park.shsd.org.ru
partnervermittlung-paula.de
partyclub.ru
partyru.de
pautinka.ru
penpal.ru/rus
person.ru
piazzo.net
plove.ru
poceluy.com
poceluy.ru
pole777.org.ru
polovinka.com.ua
polovinka.ru
polubi.ru
poputchika.net
porokov.net
poshel.com
poznakomlu.ru
poznakomsya.front.ru
poznakomsya.land.ru
pozvonimne.ru
pozwonimne.ru
prijateli.ru
primochka.ru/anket
primochka.ru/photoroom
primorka.info
privat.nn.ru
privet.kz
pu-teen.ru
pyram.narod.ru
robkih.net
romantic.jua.ru
romantic.ru
romany.ru
ru-dating.ru
ru.berry-dating.com
ru.lavaplace.com
rudate.net
rus.freepersonals.ru
rus.you-only-you.com
ruskadril.ru
ruslive.info
russian-fiancee.com
russianbridesweb.com
russiangirl.h10.ru
russianlink.com/dating.asp
russianmatch.ru
russiansingles.org.ru
russiantoronto.com/tet-a-tet
s-lux.narod.ru
s-world.narod.ru
saitznakomstv.de
sambola.ru
saratovka.com
sea.beautilove.ru
seans.ru
selli.narod.ru
serdcebienie.ru
sex-online-dating.com
sex.donetsk.ua
sex.hotelland.ru
sex.kiev.ua
sex.kirovograd.ua
sex.lviv.ua
sex.marmeladki.ru
sex.poltava.ua
sex.rv.ua
sex.vip-chat.ru
sex777.be
sex911.ru
sexdays.ru
sexfriend.ru
sexgirl.name
sexhelp.ru
sexis.net.ru
sexparty.ru
sexseeker.ru
sexua.com.ua
sexvip.ru
sexy.vannochka.ru
shalom-friends.com
siblove.ru
silknet.ru
silver.kiev.ua/contact
singles.ru
singles.su
singlesity.ru
site-znakomstv.narod.ru
sitelove.info
sitelove.net
sms.webmob.ru
sms2day.ru
smski.ru
smski.vitlove.ru
smslovers.ru
smsyou.ru
smsznakomstva.ru
snezhana-love.com
sociolove.com
sociolove.ru
socionics.org
sosulka.ru
spacelove.ru
specialdating.com
sps.net.ru
sudba.dobroe.tv
sudba.ru
sulamif.ru
svidanka.ru
tatary.boom.ru
tatulove.ru
tehnovolga.ru.monamour.ru
tino.ru
tip.hop.ru
tlcom.krs.ru/rs
tomeet.ru
top.amurzon.ru
top.diq.ru/dating
top.love.voffka.com
top.love.zadorno.com
top.loves.co.ua
top.mromance.ru
top.zalet.ru
top.znakomka.ru
top.znakomstv.ru
top50.h11.ru
toplemon.ru/find
toplove.h1.ru
travelinlove.com
trickme.ru
truefriends.ru
turbolove.ru
twohearts.trecom.tomsk.ru
ublove.com
urallove.ru
uralswing.narod.ru
urodov.net.ru
valentine.ru
vashyznakomstva.ru
vdome.ru
videoflirt.ru
vipdate.ru
visit.irk.ru
vitadating.ru
vitalik.info
voha.ru/love
vse.co.il
vstrechi.net
webflirt.ru
weplay.ru
withsmile.net
worldlove.com.ua
worldoflove.com.ua
www-irma.narod.ru
wwwru.top-date.org
wwww.viptop.ru
x-love.net
xfriend.ru
xilove.net
xotim.ru
yanity.com
yarlove.com
yoshkar-ola.com/armando
you-and-i.ru
you.birdz.ru
you.ya-ne.ru
youlove.ru
your-ideal.com
zamuzh.com
zapretov.net
zeta777.ru
zhenihi.ru
zhivotik.ru
zhukcity.ru/dating
zna.name
znaclove.narod.ru
znaesh.ru
znakomilka.ru
znakomim.com.ua
znakomka.ru
znakoms.ru
znakomstva-moskva.com
znakomstva.809.ru
znakomstva.co.uk
znakomstva.ee
znakomstva.funplanet.ru
znakomstva.h11.ru
znakomstva.lt
znakomstva.lv
znakomstva.odnoklassniki.ru
znakomstva.ru
znakomstva.sitecity.ru
znakomstva.strana.de
znakomstva.tok-commerc.info
znakomstva.vnovgorode.ru
znakomstva4u.info
znakomstvasxxx.narod.ru
znakomstvo.al.ru
znakomstvo.h16.ru
znakomsya.front.ru
zodiac.parole.ru
zox.ru
zupater.com.ru
zwoni.h1.ru
Посмотри как rejik работает и установи. Там всё редиректится.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
WarDraft
проходил мимо
Сообщения: 9
Зарегистрирован: 2007-10-08 15:20:47
Откуда: СПб

Re: Не хочет работать скрипт redirector.pl из SQUID-овского конф

Непрочитанное сообщение WarDraft » 2007-10-08 22:54:31

dikens3 писал(а):Если по ним лазиют, то блокируй, если общаются, тогда блокируй метод POST на эти сайты.
squid.conf
Спасибо за инфу и богатую "порно-базу", :) - ценное пополнение и особая благодарность разъяснение по технике блокирования метода POST. Весьма ценная для меня инфа.
WarDraft писал(а):Посмотри как rejik работает и установи. Там всё редиректится.
До этого самого rejik'а я еще доберусь, как доберусь и до Sarga, т.к. хочется полного контроля, но это будет следующим этапом работы, а мне бы все-таки хотелось понять почему не заработало в текущем конфиге, т.к. для меня важнее все-таки разобраться в причинах неработоспособности, а в особенности вот этого:

Код: Выделить всё

redirect_program /usr/local/squid/etc/redirector.pl

Код: Выделить всё

gw# sockstat | grep perl
nobody   perl5.8.8  11336 0  stream -> ??
nobody   perl5.8.8  11336 1  stream -> ??
nobody   perl5.8.8  11335 0  stream -> ??
nobody   perl5.8.8  11335 1  stream -> ??
nobody   perl5.8.8  11334 0  stream -> ??

Аватара пользователя
WarDraft
проходил мимо
Сообщения: 9
Зарегистрирован: 2007-10-08 15:20:47
Откуда: СПб

Re: Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение WarDraft » 2007-10-10 11:45:11

Чет-то меня в жесткий игнор поставили, уже явно сам с собой на форуме разговариваю. К дохтору, наверное, мне надо....

А чтобы время не терять rejik я таки поставил. Завелся и работает с полпинка. Я рад, но эмоции высказываю скромно, т.к. описанная ранее проблема с redirector.pl не разрешилась, но я это оставлю на потом, когда вырасту и стану большим и умным (относительно FreeBSD). Сейчас меня ждут более другие дела: почта с веб-интерфейсом, трафик-шейпер для пользователей, ну может, еще что придумаю. Срок до конца декабря. Нужно успевать.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение Alex Keda » 2007-10-10 12:07:37

:)
может все непоняли проблему?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
WarDraft
проходил мимо
Сообщения: 9
Зарегистрирован: 2007-10-08 15:20:47
Откуда: СПб

Re: Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение WarDraft » 2007-10-10 12:55:17

lissyara писал(а):может все непоняли проблему?
Ну да... Может, и не поняли. Но может, кто бы объяснил что это такое у меня?:

Код: Выделить всё

gw# sockstat | grep perl
nobody   perl5.8.8  11336 0  stream -> ??
nobody   perl5.8.8  11336 1  stream -> ??
nobody   perl5.8.8  11335 0  stream -> ??
nobody   perl5.8.8  11335 1  stream -> ??
nobody   perl5.8.8  11334 0  stream -> ??
Явно ситуевина из разряда abnormal. Т.к. в твоей же статье фигурирует красивенькая картинка:

Код: Выделить всё

/usr/local/etc/squid/>sockstat | grep perl
squid    squid    73074   14 tcp4   127.0.0.1:3248        127.0.0.1:4480
squid    squid    73074   15 tcp4   127.0.0.1:3922        127.0.0.1:2536
squid    squid    73074   16 tcp4   127.0.0.1:2393        127.0.0.1:3906
squid    squid    73074   21 tcp4   *:3128                *:*
squid    squid    73074   22 udp4   *:3401                *:*
squid    squid    73072    4 dgram  syslogd[83]:3
squid    perl     73076    0 tcp4   127.0.0.1:4371        127.0.0.1:1506
squid    perl     73076    1 tcp4   127.0.0.1:4371        127.0.0.1:1506
squid    perl     73075    0 tcp4   127.0.0.1:1596        127.0.0.1:2215
squid    perl     73075    1 tcp4   127.0.0.1:1596        127.0.0.1:2215
У меня есть, конечно, подозрения, что не устанавливается сокет между перлом и сквидом, или перловый скрипт некорректно разбирает параметр, или не возвращает вообще ничего, либо не правильно настроена "прозрачность" проксика. Беда в том, что в Perl'е я - полный ноль (впрочем, уже начал устранять этот недостаток). Я опубликовал в самом первом посте все свои конфиги, с тем прицелом, что с момента опубликования статьи изменились и сам Squid, в частности акселерация порта, настройка прозрачности, а мне все-таки помогут разобраться.

Я уж тут написал, что rejik успешно заработал у меня и, типа, можно забить на неработавший redirector.pl, но тут уж моя натура не оставляет в покое. Я привык разбирать все затыки и траблы до победного конца, хотя, может быть, особенно в условиях боевой работы сисадмина подобный перфекционизм - непозволительная роскошь :).

В общем, был бы признателен, если бы кто хоть намекнул, что трабл может быть в этих каракулях, будь они неладны:

Код: Выделить всё

gw# sockstat | grep perl
nobody   perl5.8.8  11336 0  stream -> ??

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение Alex Keda » 2007-10-10 14:12:31

дык - не было значит такого ни у кого :(
Убей их всех! Бог потом рассортирует...

Alex27
рядовой
Сообщения: 30
Зарегистрирован: 2008-02-07 17:06:42

Re: Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение Alex27 » 2008-02-07 18:43:36

Доброго времени суток, уважаемые!

Собственно, у меня та же проблема... Не работает скрипт redirector.pl из статьи Лисяры "Прокси-сервер SQUID".

Код: Выделить всё

proxy# sockstat | grep perl
nobody   perl5.8.8  19227 0  stream -> ??
nobody   perl5.8.8  19227 1  stream -> ??
nobody   perl5.8.8  19226 0  stream -> ??
nobody   perl5.8.8  19226 1  stream -> ??
nobody   perl5.8.8  19225 0  stream -> ??
У меня вопрос. Хотя в программировании на perl я почти ничего не понимаю, однако:
$0 = 'redirect' ;
$| = 1 ;

open (IN_FILE, "/usr/local/my_doc_smb/squid/denied_ext.conf") || die $!;
my @tmp_data = <IN_FILE>;
chomp @tmp_data;
push @banners, map { qr /\Q$_\E/ } grep { ! /^\s*$/ } @tmp_data;
close IN_FILE;

while (<>) {
($url, $who, $ident, $method) = /^(\S+) (\S+) (\S+) (\S+)$/ ;
$url = 'http://mail.my_domain.ru/zaglushka.jpg'
if grep ($url=~/$_/i, @banners) ;
print "$url $who $ident $method\n" ;
@banners - это какая-то переменная? может что-то нужно в ней указать, или как-то объявить?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение Alex Keda » 2008-02-07 22:47:37

это перл.
в первой строке и есть разбор с занесением в массив баннерс...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение Alex Keda » 2008-02-07 22:55:40

Код: Выделить всё

/tmp/>echo www.good.com lissyara 1000 GET | ./redirector.pl
www.good.com lissyara 1000 GET
/tmp/>echo www.sex.com lissyara 1000 GET | ./redirector.pl
http://mail.my_domain.ru/zaglushka.jpg lissyara 1000 GET
/tmp/>more porno.txt
porno
sex
deffki

/tmp/>more redirector.pl
#!/usr/bin/perl
#
#
$0 = 'redirect' ;
$| = 1 ;

open (IN_FILE, "/tmp/porno.txt") || die $!;
my @tmp_data = <IN_FILE>;
chomp @tmp_data;
push @banners, map { qr /\Q$_\E/ } grep { ! /^\s*$/ } @tmp_data;
close IN_FILE;

while (<>) {
        ($url, $who, $ident, $method) = /^(\S+) (\S+) (\S+) (\S+)$/ ;
        $url = 'http://mail.my_domain.ru/zaglushka.jpg'
        if grep ($url=~/$_/i, @banners) ;
        print "$url $who $ident $method\n" ;
}

/tmp/>                                         
проверить никому религия не позволяет?
в последнем варианте, отсутствует закрывающая скобка...
Убей их всех! Бог потом рассортирует...

Alex27
рядовой
Сообщения: 30
Зарегистрирован: 2008-02-07 17:06:42

Re: Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение Alex27 » 2008-02-07 23:02:23

Скобка да... Только в статье то она присутствует...
Пример скрипта мной был взят из статьи, и скобка там есть...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение Alex Keda » 2008-02-07 23:20:55

ну а оот меня что надо?
что он работает - я продемонстрировал.
=======
могу порекомендоватьь вместо него положить шелл скрипт и логгировать в нём запросы.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение zingel » 2008-02-07 23:27:11

gw# sockstat | grep perl
nobody perl5.8.8 11336 0 stream -> ??
nobody perl5.8.8 11336 1 stream -> ??
nobody perl5.8.8 11335 0 stream -> ??
nobody perl5.8.8 11335 1 stream -> ??
кто-то не обновил мир после пересборки ядра? =)
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение Alex Keda » 2008-02-07 23:28:10

zingel писал(а):
gw# sockstat | grep perl
nobody perl5.8.8 11336 0 stream -> ??
nobody perl5.8.8 11336 1 stream -> ??
nobody perl5.8.8 11335 0 stream -> ??
nobody perl5.8.8 11335 1 stream -> ??
кто-то не обновил мир после пересборки ядра? =)
непонял....
Убей их всех! Бог потом рассортирует...

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение zingel » 2008-02-07 23:35:00

обычно, stream от nobody указывает на что-либо, или на tcp || udp || raw или другой сокеты, в частности эта трабла связана с кривизной PF_LOCAL, кривизна которого обычно бывает из-за того, что make.conf старого мира кардинально отличается от make.conf нового мира, то есть мир собран с меньшим числом программ или обновлен неправильно. Самый распостраненный вариант - сборка нового ядра без обновления мира. Как-то так (сори если чего непонятно, просто я спать хочу)
Z301171463546 - можно пожертвовать мне денег

Alex27
рядовой
Сообщения: 30
Зарегистрирован: 2008-02-07 17:06:42

Re: Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение Alex27 » 2008-02-07 23:39:33

Таки да... Ядро я в первый раз обновлял после апдейта цвсапом, но тогда я обновлял по всем правилам... Вместе с миром, ребутом в сингл мод и мерджмастером.

Вот только после этого я в ядро что-то вкомпиливал... Толи форвард, толи ещё что-то... И мир не пересобирал... :( Может таки в этом проблема... Завтра на работе проверю, отпишусь.

Alex27
рядовой
Сообщения: 30
Зарегистрирован: 2008-02-07 17:06:42

Re: Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение Alex27 » 2008-02-08 18:51:17

Собственно, обновил мир, 'mergemaster -p' перед installworld выдал что-то насчёт перла (кстати, версия 5.8.8 ), что-то про его variables.

Скрипт так и не заработал,

sockstat | grep perl выдаёт тоже самое.

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение zingel » 2008-02-10 1:26:14

а что он выдал, примерно?.
дайте вывод:

Код: Выделить всё

perl -e 'use ExtUtils::Installed;$installed =
ExtUtils::Installed->new();foreach $module ($installed->modules()){printf
"Module:%s\t\tVersion: %s\n", $module, $installed->version($module);}' -
Z301171463546 - можно пожертвовать мне денег

Alex27
рядовой
Сообщения: 30
Зарегистрирован: 2008-02-07 17:06:42

Re: Не хочет работать скрипт redirector.pl из SQUID конфига

Непрочитанное сообщение Alex27 » 2008-02-12 17:06:30

Код: Выделить всё

proxy# cat /usr/local/my_doc_smb/squid/denied_ext.conf
ya.ru
fignia

Код: Выделить всё

proxy# cat /usr/local/etc/squid/redirector.pl
#!/usr/bin/perl

$0 = 'redirect' ;
$| = 1 ;

open (IN_FILE, "/usr/local/my_doc_smb/squid/denied_ext.conf") || die $!;
my @tmp_data = <IN_FILE>;
chomp @banners;
chomp @tmp_data;
push @banners, map { qr /\Q$_\E/ } grep { ! /^\s*$/ } @tmp_data;
close IN_FILE;

while (<>) {
        ($url, $who, $ident, $method) = /^(\S+) (\S+) (\S+) (\S+)$/ ;
        $url = 'http://nachalstvo.com'
                if grep ($url=~/$_/i,@banners) ;
        print "$url $who $ident $method\n" ;
}

Код: Выделить всё

proxy# echo www.good.com alex 1000 GET | ./redirector.pl
www.good.com alex 1000 GET

Код: Выделить всё

proxy# echo www.ya.ru alex 1000 GET | ./redirector.pl
http://nachalstvo.com alex 1000 GET
Проблема, как писал Ув. zingel была в неправильном обновлении мира. А именно - моём неумении работать с mergemaster... Глупо было на все вопросы отвечать нажатием на клавишу Enter.. Уже понял и исправился.
Скрипт работает :)

Большое всем спасибо!