���� Squid ����������

ArticleCategory: [Choose a category, do not translate this]

SystemAdministration

AuthorImage:[Here we need a little image from you]

[DSOberoi]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in en D.S. Oberoi

en to zh Free Neil

AboutTheAuthor:[A small biography about the author]

D.S. Oberoi ������ӡ�ȵ� Jammu,ӡ��Ŀǰ�������ֽ��ţ��ձ����������� Internet��

Abstract:[Here you write a little summary]

Linux Ŀǰ�Ѿ��𲽳�Ϊ�����ͬ��ʡ��������ڰ칫�������ճ���ͥ����Ϊ�ļ�����������ӡ��������
�ʼ��������Լ�Ӧ��������������ʹ�ã� ��������Ϊ������������ʹ�á�
һ̨��������������ͨ��һ��Internet������ͬһʱ��Ϊ��ͬ���û��ṩInternet���ʷ��񡣺õĴ�����
����ͬʱ��Ϊ���������ṩ�������������һ�����ط������󵽴�ʱ�����������������ڻ����¼���
��������ͬ����������У���ӻ����а�����ֱ�ӻ��͵��ͻ��ˣ��Ӷ����̷���WEB��ʱ�䲢�������
��ѹ����
Squid ��һ��֧��Proxy��HTTP���桢Ftp��Gopher �ȵȵ���������Ҳ֧��SSL�����ʿ��ơ�DNS���沢��Ϊ
���е���������¼��Squid �� Windows NT ��Ҳ���ã���� Logi Sense.

���ĵ��ص���Ϊ����һ̨������������Ϊ�û��ṩ�ɿط����ṩ������ָ����

ArticleIllustration:[This is the title picture for your article]

[squid]

ArticleBody:[The article body]

Squid �Ѿ���װ����

Squid �� rpm �ļ��Ѿ��� RedHat 7.1 �������ˣ��ڰ�װϵͳ��ʱ������� Networks ѡ����ѡ�е�
���������Զ���װ��ϵͳ�ϡ������������������������ϵͳ���Ƿ��Ѿ���װ�� Squid��
rpm -q squid
   
Squid �����°汾������ Squid ��ҳ ����������վ���õ��� Squid �������������װ��ϵͳ�ϣ�
rpm -ivh squid-2.3.STABLE4-10.i386.rpm
   

���� Squid

Squid �Ķ�����ͨ���༭���������ļ� squid.conf ��ʵ�ֵģ�squid.conf �ļ�ͨ���� /etc/squid Ŀ¼
�¡���������ļ����ݺܶ࣬����������ÿ��ѡ����꾡��˵����

����Ҫ�޸ĵ��� http_port�����ѡ��ָ���� Squid �����ͻ�����Ķ˿ڣ�Ĭ��ֵ�� 3128��Ҫʹ�ô���
���ܣ�����˿�ֵҪ������ Squid �Ļ����� IP ��ַһ��ʹ�ã������޸ij�����������

http_port 192.168.0.1:8080

����������ʾ Squid ���� IP ��ַ 192.168.0.1 �ϣ��˿�Ϊ 8080���˿ڿ�������Ϊ����ֵ����Ҫȷ��
û�����������ʹ��ͬ���Ķ˿ڡ������ķ�������Ķ˿�����Ҳ������Ϊ���Ƶ����á�

���ʿ���

ʹ�÷��ʿ������ԣ����Կ����ڷ���ʱ�����ض���ʱ�������л��桢�����ض�վ���һ��վ��ȵȡ� Squid ���ʿ���������Ҫ�أ�ACL Ԫ�غ� �����б��������б�����������ܾ�ijЩ�û��Դ˷���ķ��ʡ�

�����г�һЩ��Ҫ�� ACL Ԫ������
Ϊ��ʹ�ÿ��ƹ��ܣ����������� ACL ����Ӧ�á�ACL �����ĸ�ʽ���£�

acl   acl_element_name   type_of_acl_element values_to_acl

ע��
  1. acl_element_name ��������һ���� ACL �ж�������ơ�
  2. �κ����� ACL Ԫ�ز�������ͬ�����֡�
  3. ÿ�� ACL ���б�ֵ��ɡ�������ƥ�����ʱ�򣬶��ֵ���߼����������ӣ�����֮������һ ACL
    Ԫ�ص�ֵ��ƥ�䣬����� ACL Ԫ�ؼ���ƥ�䡣
  4. ���������е� ACL Ԫ�ض���ʹ�÷����б��е�ȫ�����͡�
  5. ��ͬ�� ACL Ԫ��д�ڲ�ͬ���У�Squid �������������һ���б��С�
���ǿ���ʹ�����಻ͬ�ķ�����Ŀ�������г����ǽ�Ҫ�õ��ļ����� �����б��Ĺ�����һЩ���� 'allow' �� 'deny' �Ĺؼ��ֹ��ɣ�����������ܾ����ض���һ�� ACL Ԫ���ṩ����
ע��
  1. ��Щ���������ǵ�����˳�����ƥ���⣬һ����⵽ƥ��Ĺ���ƥ���������������
  2. һ�������б������ֶ���������ɡ�
  3. ���û���κι������������ƥ�䣬Ĭ�϶��������б������һ�������Ӧ��
  4. һ��������Ŀ�е�����Ԫ�ؽ����߼����������ӣ�
    http_access Action ����1 AND ����2 AND ���� OR.
    http_access Action ����3
    ��� http_access �������û��������ӣ���ÿ��������Ŀ��Ԫ�ؼ������������ӡ�
  5. ���ס�б��еĹ���������ѭ���϶��µ�˳��

�ص����� Squid

Squid Ĭ�ϲ����κ��û����ʿ��ơ���Ҫ����ij�����ʣ�������ж��ƹ����� squid.conf �� http_access deny ��ǰ�����������֣�

acl mynetwork 192.168.0.1/255.255.255.0
http_access allow mynetwork

mynetwork �� acl ���ƣ���һ�������������ض� acl ���� mynetwork �� �Ĺ���192.168.0.1 ָ��������������Ϊ 255.255.255.0 ��������mynetwork ��Ҫ��Ϊ�˸���������һ���������һ��������������Щ
�������� http ���������޸���� http_port �Ϳ����� Squid �ܺõĹ��������ˡ� �޸���ɺ�Squid
��������������������

service squid start

ע��
Squid Ҳ������ϵͳ������ʱ���Զ����У��������� ntsysv �� setup��ϵͳ����˵����д� Squid����
�������ļ������κθ���֮�󣬵�ǰ�����е� Squid ���̱��������������������������������ɣ�
  1. service squid restart ��
  2. /etc/rc.d/init.d/squid restart

���ÿͻ���

���ڿͻ��˵��������͵��������������ض��˿ڵģ���ˣ��ͻ���ҲҪ����Ӧ���á��ڼ�����һ��֮ǰ����
ȷ��Ҫ���ʴ����������Ŀͻ����Ѿ������ھ������в��ѷ�������Ч�� IP ��ַ����ȷ�����Ƕ��� ping ͨ
������ Squid �� Linux ��������
�� Internet Explorer �µ����ã�
  1. ����˵��ϵ� ���� -> Internet ѡ��
  2. ѡ�� ���� ������ ����������
  3. ѡ�� ʹ�ô��������� �������������������� IP ��ַ�Ͷ˿ڡ�

�� Netscape Navigator �µ����ã�
  1. ����˵��ϵı༭��Edit��->��ѡ�Preference��->�߼���Advanced��->������������Proxies����
  2. ѡ���ֶ����ô�����������Manual Proxy Configuration����
  3. ����鿴��View�� ��
  4. �������������������� IP ��ַ�Ͷ˿ڡ�

ʹ�÷��ʿ���

������ʿ��Ƽ������Ϊ�ͻ��˷��ʿ����ṩ��һ�����Ļ��ơ��������ͨ�����õ������ӣ�
  1. �����б��еĻ������� Internet��

    acl allowed_clients src 192.168.0.10 192.168.0.20 192.168.0.30
    http_access allow allowed_clients
    http_access deny !allowed_clients

    �������ֻ���� IP ��ַΪ 192.168.0.10��192.168.0.20 �� 192.168.0.30 �Ļ���
    ���� Internet������ IP ��ַ�Ļ����򶼱��ܾ����ʡ�


  2. ���Ʒ���ʱ�Ρ�

    acl allowed_clients src 192.168.0.1/255.255.255.0
    acl regular_days time MTWHF 10:00-16:00
    http_access allow allowed_clients regular_days
    http_access deny !allowed_clients

    ���������������192.168.0.1�е����пͻ�������һ�����������10:00������4:00
    ���� Internet��


  3. Ϊ��ͬ�Ŀͻ������䲻ͬ�ķ���ʱ�Ρ�

    acl hosts1 src192.168.0.10
    acl hosts2 src 192.168.0.20
    acl hosts3 src 192.168.0.30
    acl morning time 10:00-13:00
    acl lunch time 13:30-14:30
    acl evening time 15:00-18:00
    http_access allow host1 morning
    http_access allow host1 evening
    http_access allow host2 lunch
    http_access allow host3 evening
    http_access deny all

    ����������У����� host1 ������ morning �� evening ʱ�η��� Internet������
    host2 �� host3 �ֱ�ֻ���� lunch �� evening ʱ�η��� Internet��

    ע��
    һ��������Ŀ�����е�Ԫ��֮���������㰴������ʽ���� ��

    http_access Action statement1 AND staement2 AND statement OR.

    ��� http_access ����֮���û��������Ӷ�ÿ��������Ŀ�е�Ԫ�������������ӣ���
    �£�

    http_access allow host1 morning evening

    �޷���ʱ�� morning ��ʱ�� evening ͬʱ����(morning AND evening )���������
    ʽ�����᷵����ֵ��TRUE�����Ӷ������Ŀ�����������κζ�����


  4. վ������
    Squid ��������ijЩ�ض�վ�����ijЩ�ض��ִʵ�վ�㡣����������Ĺ���ʵ�֣�

    acl allowed_clients src 192.168.0.1/255.255.255.0
    acl banned_sites url_regex abc.com *()(*.com
    http_access deny banned_sites
    http_access allow allowed_clients

    Ҳ�����������κ���ijЩ�ض��ִʣ�����˵ dummy��fake����վ��

    acl allowed_clients src 192.168.0.1/255.255.255.0
    acl banned_sites url_regex dummy fake
    http_access deny banned_sites
    http_access allow allowed_machibes

    ��ʵ��Ӧ���У�����Ҫ�������ε�����վ����ִʶ��������棬�����ȱ�����һ���ļ�
    �У���鿴 /etc Ŀ¼�е� banned.list�ļ���ACL ��������ļ��ж���������Ϣ����
    ���α���ֹ��վ�㡣

    acl allowed_clients src 192.168.0.1/255.255.255.0
    acl banned_sites url_regex "/etc/banned.list"
    http_access deny banned_sites
    http_access allow allowed_clients

  5. �Ż�
    Squid ����ͨ��ʹ�� maxconn Ԫ�������ƿͻ������ӵ���Ŀ�� Ҫʹ�����ѡ�����
    ������ client_db��

    acl mynetwork 192.168.0.1/255.255.255.0
    acl numconn maxconn 5
    http_access deny mynetwork numconn

    ע��
    maxconn ACL ʹ��С�ڣ�less-than���Աȡ��� ACL �����������������趨ֵʱ��ƥ�䡣
    ���� ACL ���� http_access �����������õ���Ҫԭ��


  6. ��������
    ���ھ�̬ҳ�棬����������ܹ����̻��͵���������Ŀͻ��ˡ�û�б�Ҫȥ���� cgi-bin
    �� Servlet����Щ������ ACL Ԫ�� no_cache ����ֹ��

    acl cache_prevent1 url_regex cgi-bin /?
    acl cache_prevent2 url_regex Servlet
    no_cache deny cache_prevent1
    no_cache deny cache_prevent2

  7. �Զ���������Ϣ
    �����þܾ������ deny_info ѡ�����Զ���������Ϣ��Squid Ĭ�ϵĴ�����Ϣ����
    /etc/squid/errors Ŀ¼�С����Ŀ¼������ error_directory ѡ��ָ������Ҳ����
    �����ִ�Ĵ�������Ϣ��

    acl allowed_clients src 192.168.0.1/255.255.255.0
    acl banned_sites url_regex abc.com *()(*.com
    http_access deny banned_sites
    deny_info ERR_BANNED_SITE banned_sites
    http_access allow allowed_clients

    ������������У����û���ͼ���ʱ���ֹ��վ��ʱ��������ʾһ�����Ƶ���Ϣ��
    ERR_BANNED_SITE ѡ���е��ļ��������������Ĵ�����Ϣ��Ŀ¼�С�������Ϣ������ HTML ��
    ʽ�ġ������г��� ACL ��һЩѡ������Բο� Squid ��ҳ�ϵ� FAQ �ĵ� �Ի��ʹ�� ACL
    �������Ϣ��

��־

Squid ��������־�ļ�������� /var/log/squid Ŀ¼�У��л�����־��������־�� store.log�ļ�����
�� access.log ��¼���йؿͻ������������ӻ��ÿ�� HTTP & ICP ѯ�ʡ��ͻ��� IP ��ַ������
ʽ������� URL �ȵ���Ϣ����Щ���ݿ��������Է��ʽ��з�������������� sarg�� calamaris, Squid-Log-Analyzer ����������������Щ���ݲ����� HTML ��ʽ�ķ������档 ��Щ���������һ���û���һ��
IP ��ַ��һ����ʹ���վ��ȵȼ�¼�в�����

��Щ��¼�ļ�Ҳ���Գ�Ϊ����������
cache_access_log      For access.log
cache_log             For cache.log
cache_store_log       For store.log (Store manager)
pid_filename          Squid process ID file name

��֤��ʽ

Squid ��Ĭ�����������κ��û���������֤���̾Ϳ��Խ��з��ʡ�Squid ͨ��һ���ⲿ�����ṩ�û���֤
���ܣ�����˵ֻ������Ч���û����� Internet���������Ҫһ����Ч���û��������롣������ proxy_auth
ACL �� authenticate_program ��ʵ�֣�����������ǰǿ�ƽ����û���������ĺ˲顣�����г�һЩ Squid
���õ�����֤����
  1. LDAP : ʹ�� Linux Lightweight Ŀ¼����Э�飨Linux Lightweight Directory Access Protocol��
  2. NCSA : ʹ�� NCSA �����û��������뵵
  3. SMB : ʹ�� SMB Э��ķ����� SAMBA �� Windows NT
  4. MSNT : ʹ�� Windows NT ������֤
  5. PAM : ʹ�� Linux �Ŀ�װ����֤ģ��
  6. getpwam : ʹ�� Linux ���뵵
����ָ��ʹ�õ���֤���򣬿����� authenticate_program ѡ����ɡ���ȷ��ѡ������֤�����Ѱ�װ���ܺ�
�õĹ�����

�޸� squid.conf �ļ�ѡ����֤����
authenticate_program /usr/local/bin/pam_auth

acl pass proxy_auth REQUIRED
acl mynetwork src 192.168.0.1/255.255.255.0
http_access deny !mynetwork
http_access allow pass
http_access deny all

��������ʾ��ʹ�� PAM ��֤���������û��ڻ�÷�������ǰ���������֤��

����Щѡ����� authenticate_ttl �� authenticate_ip_ttl�����������ı���֤����Ķ���������˵ʹij���û���������������Ч��

�����

���Ľ��������� Squid �ı�ɽһ�ǣ�����IJο����Ͽ����������վ���ҵ���