   ()
=============================================

        
-"".     
WWW (http, https)    
""- SQUID (http://www.squid-cache.org/).  
   c-icap (http://c-icap.sf.net/),
  ICAP (RFC3507).


----------

       
 :

-   FreeBSD  6.2  ;
-      (   /usr/ports):
  - squid  2.5       ICAP (RFC3507)
  - memcached  1.2.3  
  -  libmemcache  1.4.0rc2  
  - sqlite  2.8.17  ,   3.0.0
  - perl  5.8.8  

 
-------------

       update.skf.edu.ru   :

http://update.skf.edu.ru/unix/FreeBSD/packages -   ,
     FreeBSD-6.2-RELEASE  pkg_add.

http://update.skf.edu.ru/unix/FreeBSD/ports -  ,
       FreeBSD.

       ,   
   .

 
-------------

      :

1.        pkg_add.  
       (man pkg_add).

2.      .  
         
FreeBSD.

 
----------

      ,
   FreeBSD   .  
    /usr/local/etc/rc.d/c_icap.  
  :

start -    

stop -    

restart -    

rcvar -      

status -      - "  ?"

poll -    

 
--------------------

        
 :

- memcached (     ).  
      , 
     .

       
sqlite2.       
   (    )  
.

     
/usr/local/etc/c-icap.conf.   .   
       c-icap . 
  ,   
.         :

Service url_filter_module srv_url_filter.so

     .   :

url_filter.MemcachedServers "< >:<>[,< >:<>]"

       ,   
  memcached .    (  )
     memcached .   
    ','.

  : url_filter.MemcachedServers "memcached:11121"

url_filter.SQLiteDBFile "<   >"

     (    ) sqlite2 
    .        
    /.     
    /usr/local/share/c-icap/initdb.pl (
       . ).

  : url_filter.SQLiteDBFile "/var/db/url-filter.sqldb"

url_filter.Host2CatServer "<  >:<>"

        .

url_filter.RedirectUrl "<URL>"

   URL ,      ,
    policy  redirect.

  : url_filter.RedirectUrl "http://www.content-filtering.ru/filter.html"

        
  .  :

  0 -   ;
  1 -  ,   ;
  2 -    URL   url_filter.RedirectUrl

url_filter.SQLiteOpenErrorPolicy
         , 
   .

url_filter.SQLiteQueryErrorPolicy
    ,     ,  
  ,  .

url_filter.UnknownRolePolicy
    ,     
   

url_filter.MemcachedConnectErrorPolicy 
    ,     memcached
    

url_filter.MemcachedMissPolicy
    ,    
     memcached

url_filter.EmptyCategoryPolicy
    ,    
   .

url_filter.CategoryNotFoundPolicy
    ,   
     .


 ,   
-------------------------------------

       
""      .   
  ,     SQUID
(       
 SQUID   squid.conf)  IP  
.       
. :

teacher@10.12.19.5 -   teacher,
                       10.12.19.5

       SQLite2 DB , 
     url_filter.SQLiteDBFile 
 .     
 /usr/local/share/c_icap/initdb.pl.  
   
/usr/local/share/c_icap/check.pl.

    
------------------------------------------

      "[]" 
 .     "<>".  
     .

    initdb.pl   
/usr/local/share/c_icap    SQL 
        "" . 
   ,   :

users -      .
custom_roles, generic_roles -     
 .

       
:

initdb.pl [-h] [-v] [-c] [-w] [-d <>] <  >

:

-h                 
-v               SQL-,  
                
-c            ,   
-w                   
                 
-d <>        users,
              custom_roles  generic_roles

 users     
      ( ,  
   ,       "#",
      ):

[< >]@[<IP >[/< >]]	<>

< > -  ,     .
                           .
                          .   ,
                        .
<IP >         - IP     IP  . 
                      ,    "0.0.0.0/0"
< >       -    0  32. < > -  
                        IP .   ,  
                      "/32"

    ,   .

:

user@                          student5
@192.168.0.0/24                student4
user@192.168.0.0/24            student3
user@192.168.0.5               student2
@                              student

        :

 user   192.168.0.5 -
   student2

 user   192.168.0.4 -
   student3

 user   192.168.1.15 -
   student5

 user1   192.168.0.4 -
   student4

 user1   192.168.1.15 -
   student

 generic_roles      
  ,   . 
    ( ,     
,       "#", 
     ):

role < >
     < > <>[ < >]
     < > <>[ < >]
     < > <>[ < >]

         -   .   
                      

     , 
.

      :

parent      -     () . 
              ,       
               
accept      -    .  
                     .
reject      -    .  
                     .
redirect    -    .    
                   
                   ,
                url_filter.RedirectUrl.
blacklist   -   URL (  '*' 
                ).  URL 
                  (   '*'), 
                    
                .
whitelist   -   URL (  '*' 
                ).  URL 
                  (   '*'), 
                    
                .
exactmatch  - ,      'on', 'true' 
              '1',    'off', 'false'  '0'.
                  .  
              ,     blacklist  whitelist
                     '*'.

 custom_roles    ,   generic_roles,    
   'accept'.

    
--------------------------------------

    check.pl   
/usr/local/share/c_icap     .

       
:

check.pl [-h] <  > < > <IP > <URL  >

:

-h                 

       :

Uname: < >
IP: <IP >
URL: <URL  >
Host: < >
Role: <  >
Cats: < >
Action: <> (  - ACCEPT, REJECT, REDIRECT)

