nixp.ru v3.0

29 мая 2017,
понедельник,
20:04:27 MSK

DevOps с компанией «Флант»
grisha написал 19 октября 2008 года в 09:51 (49946 просмотров) Ведет себя как мужчина; открыл 34 темы в форуме, оставил 202 комментария на сайте.

Есть сквид, хочу к нему приделать сквидгад. Настройки сквида

http_port 127.0.0.1:3128
visible_hostname localhost
cache_dir ufs /var/spool/squid 900 16 256
maximum_object_size 10000 KB
acl localhost src 127.0.0.1/255.255.255.255
acl all src 0.0.0.0/0.0.0.0
http_access deny !localhost
header_access       From deny all
header_access Referer deny all
header_access Server deny all
header_access User-Agent deny all
header_access WWW-Authenticate deny all
header_access Link deny all
error_directory /usr/share/squid/errors/Russian-1251
access_log /var/log/squid/access.log squid
redirector_bypass on
redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf

Настройки сквидГада

dbhome /var/lib/squidguard/db
logdir /var/log/squid
time workhours {
      weekly mtwhf 08:00 - 16:30
      date *-*-01  08:00 - 16:30
}
src admin {
      ip            127.0.0.1
      user            root user
      within             workhours
}
src me {
      ip            127.0.0.1
      user            root user
      within             workhours
}
dest good {
}
dest local {
}
dest adult {
      domainlist      adult/domains
      urllist            adult/urls
      #redirect       http://admin.foo.bar.no/cgi-bin/squidGuard.cgi?clientaddr=%a+clientname=%n+clientident=%i+srcclass=%#s+targetclass=%t+url=%u
}
dest ads {
      domainlist      ads/domains
      urllist            ads/urls
      expressionlist      ads/expressions
      #redirect       http://admin.foo.bar.no/cgi-bin/squidGuard.cgi?clientaddr=%a+clientname=%n+clientident=%i+srcclass=%#s+targetclass=%t+url=%u
}
dest porn {
      domainlist      porn/domains
      urllist            porn/urls
      expressionlist      porn/expressions
}
dest sexuality {
      domainlist      sexuality/domains
      urllist            sexuality/urls
      #expressionlist      sexuality/expressions
}
acl {
      me {
            pass       !porn !ads !sexuality !adult all
      }
default {
            pass       local none
#            rewrite       dmz
#            redirect http://admin.foo.bar.no/cgi-bin/squidGuard.cgi?clientaddr=%a+clientname=%n+clientident=%i+srcclass=%s+targetclass=%t+url=%u
      }
}

Выполняю

sudo /etc/init.d/squid restart
 * Restarting Squid HTTP proxy squid                                                         [ OK ]

В результате интернета нет (почему?), браузер говорит что прокси отказывает в соединении. Настройки браузера — http_proxy 127.0.0.1 port:3128

Netstat показывает

sudo netstat -nuapt
Активные соединения с интернетом (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State       PID/Program name
tcp        0      0 127.0.0.1:80            0.0.0.0:*               LISTEN      5841/apache2
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      5140/cupsd
tcp        0      0 MyIpAddress:45062     63.245.213.32:443       ESTABLISHED 6321/firefox
udp        0      0 0.0.0.0:56223           0.0.0.0:*                           14570/(squid)

Где tcp у сквида?

/var/log/squid/squidGuard.log показывает

2008-10-19 16:43:38 [14839] destblock good missing active content, set inactive
2008-10-19 16:43:38 [14839] destblock local missing active content, set inactive
2008-10-19 16:43:38 [14839] init domainlist /var/lib/squidguard/db/adult/domains
2008-10-19 16:43:38 [14839] /var/lib/squidguard/db/adult/domains: Permission denied
2008-10-19 16:43:38 [14841] destblock good missing active content, set inactive
2008-10-19 16:43:38 [14841] destblock local missing active content, set inactive
2008-10-19 16:43:38 [14841] init domainlist /var/lib/squidguard/db/adult/domains
2008-10-19 16:43:38 [14841] /var/lib/squidguard/db/adult/domains: Permission denied
2008-10-19 16:43:38 [14843] destblock good missing active content, set inactive
2008-10-19 16:43:38 [14843] destblock local missing active content, set inactive
2008-10-19 16:43:38 [14843] init domainlist /var/lib/squidguard/db/adult/domains
2008-10-19 16:43:38 [14843] /var/lib/squidguard/db/adult/domains: Permission denied
2008-10-19 16:43:38 [14844] destblock good missing active content, set inactive
2008-10-19 16:43:38 [14844] destblock local missing active content, set inactive
2008-10-19 16:43:38 [14844] init domainlist /var/lib/squidguard/db/adult/domains
2008-10-19 16:43:38 [14844] /var/lib/squidguard/db/adult/domains: Permission denied
2008-10-19 16:43:38 [14845] destblock good missing active content, set inactive
2008-10-19 16:43:38 [14845] destblock local missing active content, set inactive
2008-10-19 16:43:38 [14845] init domainlist /var/lib/squidguard/db/adult/domains
2008-10-19 16:43:38 [14845] /var/lib/squidguard/db/adult/domains: Permission denied
2008-10-19 16:43:41 [14850] destblock good missing active content, set inactive
2008-10-19 16:43:41 [14850] destblock local missing active content, set inactive
2008-10-19 16:43:41 [14850] init domainlist /var/lib/squidguard/db/adult/domains
2008-10-19 16:43:41 [14850] /var/lib/squidguard/db/adult/domains: Permission denied
2008-10-19 16:43:41 [14851] destblock good missing active content, set inactive
2008-10-19 16:43:41 [14851] destblock local missing active content, set inactive
2008-10-19 16:43:41 [14851] init domainlist /var/lib/squidguard/db/adult/domains
2008-10-19 16:43:41 [14851] /var/lib/squidguard/db/adult/domains: Permission denied
2008-10-19 16:43:41 [14852] destblock good missing active content, set inactive
2008-10-19 16:43:41 [14852] destblock local missing active content, set inactive
2008-10-19 16:43:41 [14852] init domainlist /var/lib/squidguard/db/adult/domains
2008-10-19 16:43:41 [14852] /var/lib/squidguard/db/adult/domains: Permission denied
2008-10-19 16:43:41 [14853] destblock good missing active content, set inactive
2008-10-19 16:43:41 [14853] destblock local missing active content, set inactive
2008-10-19 16:43:41 [14853] init domainlist /var/lib/squidguard/db/adult/domains
2008-10-19 16:43:41 [14853] /var/lib/squidguard/db/adult/domains: Permission denied
2008-10-19 16:43:41 [14854] destblock good missing active content, set inactive
2008-10-19 16:43:41 [14854] destblock local missing active content, set inactive
2008-10-19 16:43:41 [14854] init domainlist /var/lib/squidguard/db/adult/domains
2008-10-19 16:43:41 [14854] /var/lib/squidguard/db/adult/domains: Permission denied



ls -lF /var/lib/squidguard/db/adult/domains
-rw-r--r-- 1 root user 15780988 2008-10-19 13:58 /var/lib/squidguard/db/adult/domains

В результате не получается запустить Гада, плюс сквид перестал работать.

grisha

Вот что пишет /var/log/squid/cache.log

2008/10/19 18:14:20| Starting Squid Cache version 2.6.STABLE18 for i386-debian-linux-gnu...
2008/10/19 18:14:20| Process ID 6492
2008/10/19 18:14:20| With 1024 file descriptors available
2008/10/19 18:14:20| Using epoll for the IO loop
2008/10/19 18:14:20| DNS Socket created at 0.0.0.0, port 44672, FD 6
2008/10/19 18:14:20| Adding nameserver 213.59.136.245 from /etc/resolv.conf
2008/10/19 18:14:20| Adding nameserver 194.85.113.244 from /etc/resolv.conf
2008/10/19 18:14:20| User-Agent logging is disabled.
2008/10/19 18:14:20| Referer logging is disabled.
2008/10/19 18:14:20| Unlinkd pipe opened on FD 11
2008/10/19 18:14:20| Swap maxSize 921600 KB, estimated 70892 objects
2008/10/19 18:14:20| Target number of buckets: 3544
2008/10/19 18:14:20| Using 8192 Store buckets
2008/10/19 18:14:20| Max Mem  size: 8192 KB
2008/10/19 18:14:20| Max Swap size: 921600 KB
2008/10/19 18:14:20| Local cache digest enabled; rebuild/rewrite every 3600/3600 sec
2008/10/19 18:14:20| /var/spool/squid/swap.state: (13) Permission denied
FATAL: storeUfsDirOpenSwapLog: Failed to open swap log.
Squid Cache (Version 2.6.STABLE18): Terminated abnormally.
CPU Usage: 0.008 seconds = 0.004 user + 0.004 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0

Директория /var/spool/squid/ — пустая, (там вроде как должен быть лог-файл свопа, где он?)

Перезапуск сквида с параметром -z не создает swap.state

grisha

В ответ на

sudo touch /var/spool/squid/swap.state


в папке /squid/ все равно пусто.

Сдаюсь :0

sky

у сквидового пользователя есть права на запись в каталог /var/spool/squid/?

grisha
sky
у сквидового пользователя есть права на запись в каталог /var/spool/squid/?

владелец /etc/init.d/squid — root, он же владелец /var/spool/squid/ с правами rwx

grisha
sky
у сквидового пользователя есть права на запись в каталог /var/spool/squid/?
sky
grisha
владелец /etc/init.d/squid — root, он же владелец /var/spool/squid/ с правами rwx

Мужчина, чаитать читать и ещё раз читать, да побольше…

У сквида в конфиге есть

cache_effective_user squid

Собственно данный пользователь должен быть зарегистрирован в системе. И права на каталог /var/spool/squid/ нужно задавать для этого пользователя. Пользователь не обязятельно должен быть squid, он может быть и proxy или чем-то другим…

grisha

но в моем случае юзер в конфиге не прописан. А это значит рут остается.

sky
grisha
но в моем случае юзер в конфиге не прописан. А это значит рут остается.

Нет, не значит.

Сквид из исходников или из репо дистрибутива? Если первое, то добавить в систему пользователя и прописать оного в конфиге. Если второе, то смотреть, какого пользователя он добавляет в систему при установке пакета. Погляди в /etc/passwd наличие пользователя squid или proxy

grisha

Сквид заработал после того как:

сделал владельцем /var/spool/squid снова proxy 8) и удалил swap.state который принадлежал соответственно руту. После перезапуска сквид ожил. Все равно хочу спросить

Если второе, то смотреть, какого пользователя он добавляет в систему при установке пакета.

А это точно что сквид при установке добавляет новую учетную запись в систему? Может это умолчальные записи убунты? Другое дело, что возможно при установке сквид создает папку /var/spool/squid и делает владельцем proxy. (может так?). Если не так, как узнать какого пользователя создаст/создала определенная программа? И еще откуда скид берет информацию о пользователе proxy? (мне казалось что все что нужно программе знать — лежит в ее конфиге).

Теперь по теме. Сквид работает, но когда я раскомментировал в его конфиге строки

redirector_bypass on

redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf


он снова впал в ступор а браузер говорит что прокси отказывает в соединении. А netstat -nuapt такой

tcp 0 0 127.0.0.1:3128 127.0.0.1:36161 TIME_WAIT -

tcp 0 0 127.0.0.1:3128 127.0.0.1:36160 TIME_WAIT -

tcp 0 0 127.0.0.1:3128 127.0.0.1:36159 TIME_WAIT -

tcp 0 0 127.0.0.1:3128 127.0.0.1:36156 TIME_WAIT -

tcp 0 0 127.0.0.1:3128 127.0.0.1:36157 TIME_WAIT -

tcp 0 0 127.0.0.1:3128 127.0.0.1:36158 TIME_WAIT -

tcp 0 0 127.0.0.1:3128 127.0.0.1:59502 TIME_WAIT -

sky
grisha
А это точно что сквид при установке добавляет новую учетную запись в систему? Может это умолчальные записи убунты? Другое дело, что возможно при установке сквид создает папку /var/spool/squid и делает владельцем proxy. (может так?). Если не так, как узнать какого пользователя создаст/создала определенная программа? И еще откуда скид берет информацию о пользователе proxy? (мне казалось что все что нужно программе знать — лежит в ее конфиге).

Этот вопрос на усмотрение разработчиков пакета, но обычно добавляет.

Если собираешь сквида из исходников, то можно в конфигуре задать имя пользователя, дабы не указывать его потом в конфиге.

А с гардом не помогу, как-то не было необходимости его тискать…

grisha

Со сквидГардом тоже самое было. Переназначил пользователя proxy для папки /var/lib/squidguard/db/ и все что в ней лежит (список доменов, выражений, урл) и он тоже кажется зафурычил, вот его лог

2008-10-20 20:23:35 [9817] init domainlist /var/lib/squidguard/db/ads/domains
2008-10-20 20:23:35 [9817] loading dbfile /var/lib/squidguard/db/ads/domains.db
2008-10-20 20:23:35 [9817] init urllist /var/lib/squidguard/db/ads/urls
2008-10-20 20:23:35 [9817] loading dbfile /var/lib/squidguard/db/ads/urls.db
2008-10-20 20:23:35 [9817] init expressionlist /var/lib/squidguard/db/ads/expressions
2008-10-20 20:23:35 [9817] init domainlist /var/lib/squidguard/db/porn/domains
2008-10-20 20:23:35 [9817] loading dbfile /var/lib/squidguard/db/porn/domains.db
2008-10-20 20:23:35 [9817] init urllist /var/lib/squidguard/db/porn/urls
2008-10-20 20:23:35 [9817] loading dbfile /var/lib/squidguard/db/porn/urls.db
2008-10-20 20:23:35 [9817] init expressionlist /var/lib/squidguard/db/porn/expressions
2008-10-20 20:23:35 [9817] init domainlist /var/lib/squidguard/db/sexuality/domains
2008-10-20 20:23:35 [9817] loading dbfile /var/lib/squidguard/db/sexuality/domains.db
2008-10-20 20:23:35 [9817] init urllist /var/lib/squidguard/db/sexuality/urls
2008-10-20 20:23:35 [9817] loading dbfile /var/lib/squidguard/db/sexuality/urls.db
2008-10-20 20:23:35 [9817] squidGuard 1.2.0 started (1224494615.874)
2008-10-20 20:23:35 [9817] squidGuard ready for requests (1224494615.882)

Только самое главное — страницы не блокирует. Конфиг тот же

#
# CONFIG FILE FOR SQUIDGUARD
#
dbhome /var/lib/squidguard/db
logdir /var/log/squid
#
# SOURCE ADDRESSES:
#
src admin {
      ip            127.0.0.1
      #user            root user
      #within             workhours
}
src me {
      ip            127.0.0.1
      #user            root user
      #within             workhours
}
#
# DESTINATION CLASSES:
#
dest good {
}
dest local {
}
dest adult {
      domainlist      adult/domains
      urllist            adult/urls
}
dest ads {
      domainlist      ads/domains
      urllist            ads/urls
      expressionlist      ads/expressions
}
dest porn {
      domainlist      porn/domains
      urllist            porn/urls
      expressionlist      porn/expressions
}
dest sexuality {
      domainlist      sexuality/domains
      urllist            sexuality/urls
      #expressionlist      sexuality/expressions
}
acl {
      me {
            pass       !porn !ads !sexuality !adult all
      }
      default {
            pass       none
      }
}

Что не так?

Anarchist
grisha
Со сквидГардом тоже самое было. Переназначил пользователя proxy для папки /var/lib/squidguard/db/ и все что в ней лежит

Правильно.

SquisGuard (с которым я практически не работал) работает от имени того же пользователя, что и squid.

grisha

Блин, так чем же вы там все фильтруете интернет? Я выбртал сквидгард в мыслях что

1) работая с базами данных (а кол-во записей со временем афигенно растет) нагрузка на систему будет меньше чем просто со списками

2)плюс базы можно обнавлять через урл

Anarchist
grisha
Блин, так чем же вы там все фильтруете интернет?

А оно так уж нужно?

Мы (как это очевидным образом следует из ника) категорически против любой цензуры.

grisha
Я выбртал сквидгард в мыслях что

1) работая с базами данных (а кол-во записей со временем афигенно растет) нагрузка на систему будет меньше чем просто со списками

Сквид можно скрестить с ClamAV’ом.

Правила можно (и если их много, да с регулярными обновлениями — нужно) хранить в OpenLDAP (Сквид и такую связку должен уметь).

Чего ещё тебе не хватает?

grisha
2)плюс базы можно обнавлять через урл

Объясни что ты хотел сказать по человечески.

sky
grisha
Блин, так чем же вы там все фильтруете интернет? Я выбртал сквидгард в мыслях что

1) работая с базами данных (а кол-во записей со временем афигенно растет) нагрузка на систему будет меньше чем просто со списками

2)плюс базы можно обнавлять через урл

Было дело режик ковырял…достаточно прост в настройке. Но более чем squid+clamav не нужно.

grisha

squid + clamav вариант мне нравиться, буду пробовать. Всем спасибо.

Anarchist
grisha
squid + clamav вариант мне нравиться, буду пробовать. Всем спасибо.

Поправочка: squid с поддержкой OpenLDAP (и хранением правил в базе LDAP’а) + ClamAV.

grisha
Anarchist
Поправочка: squid с поддержкой OpenLDAP (и хранением правил в базе LDAP’а) + ClamAV.

А зачем оно мне если сети все равно нет? :)

Anarchist
grisha
А зачем оно мне если сети все равно нет? :)

Много зачем.

В качестве наработки на будущее.

Ну и в качестве бонуса: отсутствие необходимости в перезапуске свида при изменении правил.

grisha

После ковыряний с c-icap, решил остановиться на другом редиректоре squidclamav (версия 3.6). По плану должно быть так squid+squidclamav+clamd. Все из репозитария убунты, кроме squidclamav — его установил из исходника. С одной стороны все вроде работает

sudo /usr/local/squidclamav/bin/squidclamav
SquidClamav running as UID 0: writing logs to stderr
Thu Oct 23 15:36:48 2008 LOG Reading configuration from /etc/squidclamav.conf
Thu Oct 23 15:36:48 2008 LOG SquidClamav (PID 18628) started

а с другой — тестовый вирус eicar.com спокойно скачивается в папку downloads. В конфиге clamd.conf

TCPSocket 3310
TCPAddr 127.0.0.1

в конфиге squidclamav.conf

proxy       http://127.0.0.1:3128/
debug       0
force       1
timeout     60
clamd_ip    127.0.0.1
clamd_port  3310
stat        0
logfile /var/log/squidclamav.log
redirect http://localhost
regexi    ^.*\.exe$
regexi    ^.*\.com$
regexi    ^.*\.zip$
aborti ^.*\.png$
aborti ^.*\.jpg$
abort ^.*\.html$
content ^.*application\/.*$

в конфиге squid.conf

url_rewrite_program  /usr/local/squidclamav/bin/squidclamav

И почему squidclamav пишет логи на консоль а не в файл, который я создал и указал в его конфиге /var/log/squidclamav.log? (squidclamav запускается как рут, владелец лога тоже рут.Снова права?)

grisha

Ну ведь работает же, правда?

sudo netstat -nuapt
Активные соединения с интернетом (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State       PID/Program name
tcp        0      0 127.0.0.1:80            0.0.0.0:*               LISTEN      5836/apache2    
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      5140/cupsd      
tcp        0      0 127.0.0.1:3128          0.0.0.0:*               LISTEN      21277/(squid)  
tcp        1      1 мой айпи:54074     88.198.38.136:80        LAST_ACK    -              
tcp        1      1 мой айпи:58079     129.33.13.208:80        LAST_ACK    -              
tcp        1      1 мой айпи:58087     129.33.13.208:80        LAST_ACK    -              
tcp        1      0 мой айпи:34962     88.198.38.136:80        CLOSE_WAIT  21280/(squidclamav)
tcp        0      0 мой айпи:33495     213.219.249.64:80       ESTABLISHED 21280/(squidclamav)
tcp        0      0 мой айпи:33493     213.219.249.64:80       ESTABLISHED 21281/(squidclamav)
tcp        1      0 мой айпи:37606     64.12.164.24:80         CLOSE_WAIT  21280/(squidclamav)
udp        0      0 0.0.0.0:45341           0.0.0.0:*                           21277/(squid)

Почему вирусы не ловит? 8)

grisha

А тут логи сквида

Thu Oct 23 16:21:57 2008 ERROR Error opening log stream
Thu Oct 23 16:21:57 2008 ERROR fail downloading url http://www.opennet.ru/img/securit2.swf?link1=http://click.opennet.ru/cgi-bin/opennet/hjump.cgi?securit2
Thu Oct 23 16:21:57 2008 ERROR Error opening log stream
Thu Oct 23 16:21:57 2008 ERROR CURLOPT_ERRORBUFFER: Operation timed out after 60000 milliseconds with 0 bytes received
grisha

Херня все это. Пойду c-icap доковыряю ;-)

grisha

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

tcp        0      0 0.0.0.0:1344            0.0.0.0:*               LISTEN      16095/c-icap    
tcp        0      0 127.0.0.1:1344          127.0.0.1:34403         TIME_WAIT   -

Но в интернет не пускает

WARNING: Squid got an invalid ICAP OPTIONS response from service icap://localhost:1344/srv_clamav; error: unsupported status code of OPTIONS response
2008/10/23 19:49:40| essential ICAP service is down after an options fetch failure: icap://localhost:1344/srv_clamav [down,!valid]

В конфиге у сквида

icp_port 1344
icap_enable on
icap_preview_enable on
icap_preview_size 128
icap_send_client_ip on
icap_service service_avi respmod_precache 0 icap://localhost:1344/srv_clamav
icap_class class_antivirus service_avi
icap_access class_antivirus allow all
sky

в сквиде

icap_preview_enable on
icap_preview_size 128
icap_send_client_ip on
icap_service service_avi_req reqmod_precache 0 icap://localhost:1344/srv_clamav
icap_service service_avi respmod_precache 1 icap://localhost:1344/srv_clamav
icap_class class_antivirus service_avi
icap_class class_av2 service_avi_req
icap_access class_antivirus allow all
icap_access class_av2 allow all

Ток есть ещё оговорка, icap поддерживается в squid3, ежели используется squid2.*, необходимо наложить на него патчи, для добавления поддержки icap

grisha
Ток есть ещё оговорка, icap поддерживается в squid3, ежели используется squid2.*, необходимо наложить на него патчи, для добавления поддержки icap

Версия: 3.0.STABLE1-1ubuntu1

После изменения конфига на

icap_enable on
icap_preview_enable on
icap_preview_size 128
icap_send_client_ip on
icap_service service_avi_req reqmod_precache 0 icap://localhost:1344/srv_clamav
icap_service service_avi respmod_precache 1 icap://localhost:1344/srv_clamav
icap_class class_antivirus service_avi
icap_class class_antivirus service_avi_req
icap_access class_antivirus allow all

интернет заработал но тестовый вирус также спокойно продолжает загружаться (сука,блять). /usr/local/c-icap/var/log/server.log пишет одну и ту же запись

Thu Oct 23 21:45:25 2008, general, Service not found

/var/log/squid3/cache.log тоже хуячит одно и то же

2008/10/23 21:45:25| WARNING: Squid got an invalid ICAP OPTIONS response from service icap://localhost:1344/srv_clamav; error: unsupported status code of OPTIONS response

И напоследок вот это

sudo /usr/local/c-icap/bin/icap-client
ICAP server:localhost, ip:127.0.0.1, port:1344
OPTIONS:
      Allow 204: No
      Preview: -1
      Keep alive: Yes
ICAP HEADERS:
      ICAP/1.0 404 Service not found


Сквид можно скрестить с ClamAV’ом.

И как же это?

sky

что-то у тебя icap не живой… рабочий отвечает так:

/usr/local/c-icap/bin/icap-client
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/060708rc1 server - Echo demo service
      ISTag: CI0001-XXXXXXXXX
      Transfer-Preview: *
      Options-TTL: 3600
      Date: Thu, 23 Oct 2008 16:19:23 GMT
      Preview: 1024
      Allow: 204
      X-Include: X-Authenticated-User, X-Authenticated-Groups
      Encapsulated: null-body=0

Покажи конфиг icap’a…

grisha


PidFile /var/run/c-icap.pid
CommandsSocket /var/run/c-icap/c-icap.ctl
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 600  
StartServers 3
MaxServers 10
MinSpareThreads     10
MaxSpareThreads     20
ThreadsPerChild     10
MaxRequestsPerChild  0
Port 1344
User root
Group user
TmpDir /var/tmp
MaxMemObject 131072
ServerLog /usr/local/c-icap/var/log/server.log
AccessLog /usr/local/c-icap/var/log/access.log
ModulesDir /usr/local/c-icap/lib/c_icap
Module logger sys_logger.so
Module perl_handler perl_handler.so
sys_logger.Prefix "C-ICAP:"
sys_logger.Facility local1
Logger file_logger
acl externalnet src 0.0.0.0/0.0.0.0
acl localsquid_respmod src 127.0.0.1 type respmod
acl localsquid src 127.0.0.1
icap_access allow localsquid_respmod
icap_access allow localsquid
ServicesDir /usr/local/c-icap/lib/c_icap
Service echo_module srv_echo.so
Service url_check_module srv_url_check.so
Service antivirus_module srv_clamav.so
ServiceAlias  avscan srv_clamav?allow204=on&sizelimit=off&mode=simple
srv_clamav.ScanFileTypes TEXT DATA EXECUTABLE ARCHIVE GIF JPEG MSOFFICE
srv_clamav.SendPercentData 5
srv_clamav.StartSendPercentDataAfter 2M
srv_clamav.Allow204Responces on
srv_clamav.MaxObjectSize  5M
srv_clamav.ClamAvMaxFilesInArchive 0
srv_clamav.ClamAvMaxFileSizeInArchive 100M
srv_clamav.ClamAvMaxRecLevel 5
srv_clamav.VirSaveDir /usr/local/c-icap/vir
srv_clamav.VirHTTPServer  "http://fortune/cgi-bin/get_file.pl?usename=%f&remove=1&file="
srv_clamav.VirUpdateTime   15
srv_clamav.VirScanFileTypes ARCHIVE EXECUTABLE
sky

Во первых смени пользователя и группу на nobody

Во вторых, замени Logger на sys_logger

grisha

Ок попробую позже. Вообще решил остановиться на havp (тоже вроде как прокси, которая умеет работать с libclam), поскольку эта штука имеется в репозитариях убунты (следовательно будет поддержка и удобное обновление в рамках самой ос). Что касается c-icap то его буду пробовать на фре. А сейчас на убунте у меня получился такой вот бутерброд squid-havp-squid, увиденный и слегка адаптированный на форуме http://havp.hege.li/forum/

havp работает на 3129 порту, браузер настроен через 8080 порт, в конфиге squid следующее

http_port 127.0.0.1:8080
http_port 127.0.0.1:3128
acl from_client myport 8080
acl from_havp   myport 3128
cache_peer 127.0.0.1            parent  3129    0       no-query no-digest no-netdb-exchange default
icp_port  0
htcp_port 0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports  port 443 563     # https, snews
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443 563     # https, snews
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 banned url_regex -i "/etc/squid3/ban"
acl porn url_regex -i "/etc/squid3/por"
acl CONNECT method CONNECT
http_access deny banned
http_access deny porn
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow from_havp localhost
http_access deny from_havp all
http_access allow localhost
http_access deny all
http_reply_access allow all
icp_access allow all
cache_peer_access 127.0.0.1 deny CONNECT
cache_peer_access 127.0.0.1 deny from_havp
cache_peer_access 127.0.0.1 allow all
always_direct allow CONNECT
cache_dir ufs /var/spool/squid3 900 16 256
maximum_object_size 32768 KB
coredump_dir            /var/spool/squid3
shutdown_lifetime       5 seconds
half_closed_clients     off
pipeline_prefetch       on
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
no_cache deny localhost
no_cache deny CONNECT
no_cache allow all

Вроде все работает нормально, меня устраивает, вирусы определились (кстати может подкинет-кто еще ссылку-другую где можно протестировать такую связку?), с acl списками тоже можно работать (в случае squid-havp у меня это не получалось) единственный минус, который я вижу в havp это его неумение работать с https. И еще хотелось бы узнать мнение, насколько такая связка оптимальна, безопасна и т.д. для компьютера без сети/с сетью.

ЗЫ: извиняюсь за эту кашу, которая тут получилась на 2ух страницах, но у меня отмазка — я в поиске. :)

sky

у меня когда-то havp не заработал…вернее заработал, но вирусы не ловил…