LinuxForum.Fans
Тема

Squid + C-ICAP

Автор: u34500 26 сообщений 4933 просмотров
#382568

Доброго времени суток!
Пытаюсь настроить связку Squid + C-ICAP.

Сам C-ICAP работает:
[console]ICAP server:localhost, ip:127.0.0.1, port:1344

OPTIONS:
Allow 204: Yes
Preview: 1024
Keep alive: Yes

ICAP HEADERS:
ICAP/1.0 200 OK:
Methods:RESPMOD, REQMOD
Service:C-ICAP/0.3.3 server - Echo demo service
ISTag:CI0001-XXXXXXXXX
Transfer-Preview:*
Options-TTL:3600
Date:Wed, 04 Jun 2014 05:16:49 GMT
Preview:1024
Allow:204
X-Include:X-Authenticated-User, X-Authenticated-Groups
Encapsulated:null-body=0
[/console]

Пинг между машинами есть.
А вот взаимодействия со сквидом нет.
Конфиг сквида:

text
acl mynetwork src 192.168.10.0/24 #Подсеть, из которой пользователи ломятся в интернет через сквид

acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT

http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost manager http_access deny manager http_access allow localhost http_access allow mynetwork http_access deny all

### icap_enable on

icap_service service_req reqmod_precache bypass=1 icap://192.168.11.2:1344/request adaptation_access service_req allow all

icap_service servise_resp respmod_precache bypass=1 icap://192.168.11.2:1344/response adaptation_access servise_resp allow all ###

http_port 3129 http_port 3128 transparent visible_hostname myproxy cache_dir ufs /var/spool/squid3 4096 32 256 cache deny mynetwork coredump_dir /var/spool/squid3

refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880 refresh_pattern . 0 20% 4320

error_directory /usr/share/squid3/errors/Russian-koi8-r

memory_pools on memory_pools_limit 50 MB

Конфиг икапа:

text
PidFile /var/run/c-icap/c-icap.pid
CommandsSocket /var/run/c-icap/c-icap.ctl

Timeout 300 MaxKeepAliveRequests 100 KeepAliveTimeout 600 StartServers 3 MaxServers 10 MinSpareThreads 10 MaxSpareThreads 20 ThreadsPerChild 10 MaxRequestsPerChild 0

Port 1344 ServerAdmin you@your.address ServerName icapsrv

TmpDir /var/tmp MaxMemObject 131072

DebugLevel 1 ModulesDir /usr/local/c-icap/lib/c_icap ServicesDir /usr/local/c-icap/lib/c_icap TemplateDir /usr/local/c-icap/share/c_icap/templates/ TemplateDefaultLanguage en LoadMagicFile /usr/local/c-icap/etc/c-icap.magic

RemoteProxyUsers off RemoteProxyUserHeader X-Authenticated-User RemoteProxyUserHeaderEncoded on

acl ALLREQUESTS type OPTIONS RESPMOD REQMOD acl localnet src 192.168.11.1 acl localhost src 127.0.0.1

icap_access allow ALLREQUESTS icap_access allow localnet icap_access allow localhost

ServerLog /usr/local/c-icap/var/log/server.log AccessLog /usr/local/c-icap/var/log/access.log

Service echo srv_echo.so

В логе сквида следующее:

text
2014/06/04 12:26:16 kid1| WARNING: Squid got an invalid ICAP OPTIONS response from service icap://192.168.11.2:1344/request; error: unsupported status code of OPTIONS response
2014/06/04 12:26:16 kid1| WARNING: Squid got an invalid ICAP OPTIONS response from service icap://192.168.11.2:1344/response; error: unsupported status code of OPTIONS response

В логе икапа:

text
04/Jun/2014:12:25:15 +0700, 192.168.11.2 192.168.11.1 OPTIONS request 404
04/Jun/2014:12:25:15 +0700, 192.168.11.2 192.168.11.1 OPTIONS response 404

Я так понимаю они не могут договориться между собой о конфигурации.
Знающие, подскажите, в чем ошибка, что пропустил или не учел?

#382572

ТС ман по которому настраивали.
И какие версии програм вы используете?

#382579

C-ICAP - 0.3.3
Squid - 3.3.8
Толковых, а главное новых манов не нашел, поэтому методом тыка, и по описанию конфига.
Добавление поддержки в сквид брал здесь.

Показать
#382581

squid собран с поддержкой icap?

#382582

По ссылке, которую я дал, сказано что squid, начиная с 3 версии, имеет встроенную поддержку icap.

#382583
D4 написал:
По ссылке, которую я дал, сказано что squid, начиная с 3 версии, имеет встроенную поддержку icap.

ДА имеет собирать не надо

#382584
"D4" написал:
icap_access allow ALLREQUESTS icap_access allow localnet

Ну не знаю попробуйте вот тут поправить так

text
icap_access allow ALLREQUESTS localnet
#382586

Попробовал как вы сказали, не заработало. Думаю, перезагружусь, мало что бывает.
Затем, запускаю с параметрами

text
./c-icap -N -D -d 10

На что он мне отвечает следующее

text
root@icapSRV:/usr/local/c-icap/bin# ./c-icap -N -D -d 10
Setting parameter :-d=10
Searching 0x8066750 for default value
Setting parameter :PidFile=/var/run/c-icap/c-icap.pid
Searching 0x8066754 for default value
Setting parameter :CommandsSocket=/var/run/c-icap/c-icap.ctl
Searching 0x8066724 for default value
Setting parameter :Timeout=300
Searching 0x806671c for default value
Setting parameter :MaxKeepAliveRequests=100
Searching 0x8066720 for default value
Setting parameter :KeepAliveTimeout=600
Searching 0x806677c for default value
Setting parameter :StartServers=3
Searching 0x8066780 for default value
Setting parameter :MaxServers=10
Searching 0x8066788 for default value
Setting parameter :MinSpareThreads=10
Searching 0x806678c for default value
Setting parameter :MaxSpareThreads=20
Searching 0x8066784 for default value
Setting parameter :ThreadsPerChild=10
Searching 0x8066b8c for default value
Setting parameter :MaxRequestsPerChild=0
Searching 0x8066744 for default value
Setting parameter :Port=1344
Searching 0x8066774 for default value
Setting parameter :ServerAdmin=you@your.address
Searching 0x8066778 for default value
Setting parameter :ServerName=icapsrv
Searching 0x806674c for default value
Setting parameter :TmpDir=/var/tmp
Searching 0x8066ac0 for default value
Setting parameter :MaxMemObject=131072
Searching 0x8066770 for default value
Setting parameter :ModulesDir=/usr/local/c-icap/lib/c_icap
Searching 0x806676c for default value
Setting parameter :ServicesDir=/usr/local/c-icap/lib/c_icap
Searching 0xb76ee628 for default value
Setting parameter :TemplateDir=/usr/local/c-icap/share/c_icap/templates/
Searching 0xb76ee598 for default value
Setting parameter :TemplateDefaultLanguage=en
The db file /usr/local/c-icap/etc/c-icap.magic is the same as default. Ignoring...
Searching 0x8066ba8 for default value
Setting parameter :RemoteProxyUsers=0
Searching 0x8066904 for default value
Setting parameter :RemoteProxyUserHeader=X-Authenticated-User
Searching 0x8066900 for default value
Setting parameter :RemoteProxyUserHeaderEncoded=1
Adding to acl ALLREQUESTS the data OPTIONS
In search specs list (nil),name ALLREQUESTS
Adding to acl ALLREQUESTS the data RESPMOD
In search specs list 0x91d44e8,name ALLREQUESTS
Checking name:ALLREQUESTS with specname ALLREQUESTS
Adding to acl ALLREQUESTS the data REQMOD
In search specs list 0x91d44e8,name ALLREQUESTS
Checking name:ALLREQUESTS with specname ALLREQUESTS
New ACL with name:ALLREQUESTS and  ACL Type: type
Adding to acl localnet the data 192.168.11.1
In search specs list 0x91d44e8,name localnet
Checking name:localnet with specname ALLREQUESTS
New ACL with name:localnet and  ACL Type: src
Adding to acl localhost the data 127.0.0.1
In search specs list 0x91d44e8,name localhost
Checking name:localhost with specname ALLREQUESTS
Checking name:localhost with specname localnet
New ACL with name:localhost and  ACL Type: src
Creating new access entry as allow with specs:
In search specs list 0x91d44e8,name ALLREQUESTS
Checking name:ALLREQUESTS with specname ALLREQUESTS
In search specs list 0x91d44e8,name ALLREQUESTS
Checking name:ALLREQUESTS with specname ALLREQUESTS
    Adding acl spec: ALLREQUESTS
In search specs list 0x91d44e8,name localnet
Checking name:localnet with specname ALLREQUESTS
Checking name:localnet with specname localnet
In search specs list 0x91d44e8,name localnet
Checking name:localnet with specname ALLREQUESTS
Checking name:localnet with specname localnet
    Adding acl spec: localnet
Creating new access entry as allow with specs:
In search specs list 0x91d44e8,name localhost
Checking name:localhost with specname ALLREQUESTS
Checking name:localhost with specname localnet
Checking name:localhost with specname localhost
In search specs list 0x91d44e8,name localhost
Checking name:localhost with specname ALLREQUESTS
Checking name:localhost with specname localnet
Checking name:localhost with specname localhost
    Adding acl spec: localhost
Searching 0x8066938 for default value
Setting parameter :ServerLog=/usr/local/c-icap/var/log/server.log
Adding the access logfile /usr/local/c-icap/var/log/access.log
Loading service :echo path srv_echo.so
Found handler C_handler for service with extension:.so
Initialization of echo module......
Registering conf table:echo
Warning, alias is the same as service_name, not adding
My hostname is:icapSRV
Command relog registered
Cannot open the pid file: /var/run/c-icap/c-icap.pid
Error opening control socket /var/run/c-icap/c-icap.ctl. Fatal error, exiting!

Честно сказать, не понял этого момента. Куда делся файл? Может я изначально что-то не так делаю.

#382587

icap-демона сначала остановите, а потом запускайте режим отладки.

#382591

Дык он после перезагрузки автоматически и не запускался (вроде).
Проверяю командой

text
netstat -apn | grep 1344

Ничего.
+ там где должен располагаться pid файл по конфигу тоже ничего нет. Даже папки c-icap.

#382592

Может ее создать? И заодно на нее права дать пользователю, от которого запускается c-icap.

#382593

Создал, c-icap запустился. Но проблемы это не решило, со сквидом он работать отказывается.

Еще идеи есть?

#382594
"D4" написал:
icap_enable on
icap_service service_req reqmod_precache bypass=1 icap://192.168.11.2:1344/request adaptation_access service_req allow all
icap_service servise_resp respmod_precache bypass=1 icap://192.168.11.2:1344/response adaptation_access servise_resp allow all

Вчитайесь повнимательнее - вы нигде не находите ошибки в написании? -
icap_service servise_resp

#382596
"JonnyBekoff" написал:
icap_service servise_resp respmod_precache bypass=1 icap://192.168.11.2:1344/response adaptation_access servise_resp allow all

И в конце строки такая же ошибочка. Или это не ошибка?

#382599

Вроде как это не ошибка, просто имя сервиса (хотя да, я опечатался). Но все-равно спасибо :)

#382600

c-icap у вас нормально уже стартонул???
И покажыте но вывод
[console]squid -v[/console]

#382604

Да, c-icap запустился.

[console]root@userpc:~/Desktop# squid3 -v
Squid Cache: Version 3.3.8
configure options: '--build=i686-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=${prefix}/lib/squid3' '--srcdir=.' '--disable-maintainer-mode' '--disable-dependency-tracking' '--disable-silent-rules' '--datadir=/usr/share/squid3' '--sysconfdir=/etc/squid3' '--mandir=/usr/share/man' '--enable-inline' '--enable-async-io=8' '--enable-storeio=ufs,aufs,diskd,rock' '--enable-removal-policies=lru,heap' '--enable-delay-pools' '--enable-cache-digests' '--enable-underscores' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-auth-basic=DB,fake,getpwnam,LDAP,MSNT,MSNT-multi-domain,NCSA,NIS,PAM,POP3,RADIUS,SASL,SMB' '--enable-auth-digest=file,LDAP' '--enable-auth-negotiate=kerberos,wrapper' '--enable-auth-ntlm=fake,smb_lm' '--enable-external-acl-helpers=file_userip,kerberos_ldap_group,LDAP_group,session,SQL_session,unix_group,wbinfo_group' '--enable-url-rewrite-helpers=fake' '--enable-eui' '--enable-esi' '--enable-icmp' '--enable-zph-qos' '--enable-ecap' '--disable-translation' '--with-swapdir=/var/spool/squid3' '--with-logdir=/var/log/squid3' '--with-pidfile=/var/run/squid3.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=proxy' '--enable-linux-netfilter' 'build_alias=i686-linux-gnu' 'CFLAGS=-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' 'CPPFLAGS=-D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security'
[/console]

#382607

Поправили ошыбки в конфиге сквида??

text
icap_enable on

icap_service service_req reqmod_precache bypass=1 icap://127.0.0.1:1344/request adaptation_access service_req allow all

icap_service service_resp respmod_precache bypass=0 icap://127.0.0.1:1344/response adaptation_access service_resp allow all

И что при этом не работает????

#382608

Поправил, не работает.

#382609

А какие ошыбки при этом выдаёт сквид и Икап сервары?

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