���� Squid ����������
ArticleCategory: [Choose a category, do not translate
this]
SystemAdministration
AuthorImage:[Here we need a little image from you]
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]
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 Ԫ������
- src : Դ��ַ �����ͻ���IP��ַ��
- dst : Ŀ���ַ ����������IP��ַ��
- srcdomain : Դ���� �����ͻ������ƣ�
- dstdomain : Ŀ������ �������������ƣ�
- time : һ���е�ʱ�̺�һ���ڵ�һ��
- url_regex : URL �������ʽƥ��
- urlpath_regex: URL-path �������ʽƥ�䣬��ȥЭ���������
- proxy_auth : ͨ���ⲿ��������û���֤
- maxconn : ��һ IP �����������
Ϊ��ʹ�ÿ��ƹ��ܣ����������� ACL ����Ӧ�á�ACL �����ĸ�ʽ���£�
acl acl_element_name type_of_acl_element
values_to_acl
ע��
- acl_element_name ��������һ���� ACL �ж�������ơ�
- �κ����� ACL Ԫ�ز�������ͬ�����֡�
- ÿ�� ACL ���б�ֵ��ɡ�������ƥ�����ʱ���ֵ�������������ӣ�����֮������һ ACL
Ԫ�ص�ֵ��ƥ�䣬����� ACL Ԫ�ؼ���ƥ�䡣
- ���������е� ACL Ԫ�ض���ʹ�÷����б��е�ȫ�����͡�
- ��ͬ�� ACL Ԫ��д�ڲ�ͬ���У�Squid �������������һ���б��С�
���ǿ���ʹ�����ͬ�ķ�����Ŀ�������г����ǽ�Ҫ�õ��ļ�����
- http_access: ���� HTTP ���ʡ��������Ҫ�ķ��ʿ�����Ŀ��
- no_cache: ����Ի����������Ӧ��
�����б��Ĺ�����һЩ���� 'allow' �� 'deny' �Ĺؼ��ֹ��ɣ�����������ܾ����ض���һ�� ACL Ԫ���ṩ����
ע��
- ��Щ���������ǵ�����˳�����ƥ���⣬һ����ƥ��Ĺ���ƥ���������������
- һ�������б������ֶ���������ɡ�
- ���û���κι������������ƥ�䣬Ĭ�϶��������б������һ�������Ӧ��
- һ��������Ŀ�е�����Ԫ�ؽ��������������ӣ�
http_access Action ����1 AND ����2 AND ���� OR.
http_access Action ����3
��� http_access �������û��������ӣ���ÿ��������Ŀ��Ԫ�ؼ������������ӡ�
- ���ס�б��еĹ���������ѭ���϶��µ�˳��
�ص����� 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 ���̱��������������������������������ɣ�
- service squid restart ��
- /etc/rc.d/init.d/squid restart
���ÿͻ���
���ڿͻ��˵��������͵��������������ض��˿ڵģ���ˣ��ͻ���ҲҪ����Ӧ���á��ڼ�����һ��֮ǰ����
ȷ��Ҫ���ʴ����������Ŀͻ����Ѿ������ھ������в��ѷ�������Ч�� IP ��ַ����ȷ�����Ƕ��� ping ͨ
������ Squid �� Linux ��������
�� Internet Explorer �µ����ã�
- ����˵��ϵ� ���� -> Internet ѡ��
- ѡ�� ���� ������ ����������
- ѡ�� ʹ�ô��������� �������������������� IP ��ַ�Ͷ˿ڡ�
�� Netscape Navigator �µ����ã�
- ����˵��ϵı༭��Edit��->��ѡ�Preference��->����Advanced��->������������Proxies����
- ѡ���ֶ����ô�����������Manual Proxy Configuration����
- ����鿴��View�� ��
- �������������������� IP ��ַ�Ͷ˿ڡ�
ʹ�÷��ʿ���
������ʿ��Ƽ������Ϊ�ͻ��˷��ʿ����ṩ��һ�����Ļ��ơ��������ͨ�����õ������ӣ�
-
�����б��еĻ������� 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 ��ַ�Ļ������ܾ����ʡ�
-
���Ʒ���ʱ�Ρ�
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��
-
Ϊ��ͬ�Ŀͻ������䲻ͬ�ķ���ʱ�Ρ�
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�����Ӷ������Ŀ�����������κζ�����
-
վ������
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
-
�Ż�
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 �����������õ���Ҫԭ��
-
��������
���ھ�̬ҳ�棬����������ܹ����̻��͵���������Ŀͻ��ˡ�û�б�Ҫȥ���� 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
-
�Զ���������Ϣ
�����þܾ������ 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
���õ�����֤����
- LDAP : ʹ�� Linux Lightweight Ŀ¼����Э�飨Linux Lightweight Directory Access Protocol��
- NCSA : ʹ�� NCSA �����û��������뵵
- SMB : ʹ�� SMB Э��ķ����� SAMBA �� Windows NT
- MSNT : ʹ�� Windows NT ������֤
- PAM : ʹ�� Linux �Ŀ�װ����֤ģ��
- 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ο����Ͽ����������վ���ҵ���