Настройка доступа

Конфигурирование прокси-сервера (Установка, настройка SQUID)
Ответить
Аватара пользователя
Роман Торопов
Администратор
Сообщения: 134
Зарегистрирован: 24 мар 2008, 10:49
Откуда: г. Пермь
Контактная информация:

Настройка доступа

Сообщение Роман Торопов » 25 мар 2008, 09:55

ACCESS CONTROLS - НАСТРОЙКА ДОСТУПА

Код: Выделить всё

# 
# ----------------------------------------------------------------------------- 

#  TAG: acl 
# Defining an Access List 
# 
# acl aclname acltype string1 ... 
# acl aclname acltype "file" ... 
# 
# when using "file", the file should contain one item per line 
# 
# acltype is one of src dst srcdomain dstdomain url_pattern 
#  urlpath_pattern time port proto method browser user 
# 
# By default, regular expressions are CASE-SENSITIVE.  To make 
# them case-insensitive, use the -i option. 
# 
# acl aclname src      ip-address/netmask ... (clients IP address) 
# acl aclname src      addr1-addr2/netmask ... (range of addresses) 
# acl aclname dst      ip-address/netmask ... (URL host's IP address) 
# acl aclname myip     ip-address/netmask ... (local socket IP address) 
# 
# acl aclname srcdomain   foo.com ...     # reverse lookup, client IP 
# acl aclname dstdomain   foo.com ...     # Destination server from URL 
# acl aclname srcdom_regex [-i] xxx ...   # regex matching client name 
# acl aclname dstdom_regex [-i] xxx ...   # regex matching server 
#   # For dstdomain and dstdom_regex  a reverse lookup is tried if a IP 
#   # based URL is used. The name "none" is used if the reverse lookup 
#   # fails. 
# 
# acl aclname time     [day-abbrevs]  [h1:m1-h2:m2] 
#     day-abbrevs: 
#  S - Sunday 
#  M - Monday 
#  T - Tuesday 
#  W - Wednesday 
#  H - Thursday 
#  F - Friday 
#  A - Saturday 
#     h1:m1 must be less than h2:m2 
# acl aclname url_regex [-i] ^http:// ... # regex matching on whole URL 
# acl aclname urlpath_regex [-i] \.gif$ ... # regex matching on URL path 
# acl aclname port     80 70 21 ... 
# acl aclname port     0-1024 ...  # ranges allowed 
# acl aclname proto    HTTP FTP ... 
# acl aclname method   GET POST ... 
# acl aclname browser  [-i] regexp 
#   # pattern match on User-Agent header 
# acl aclname ident    username ... 
#   # string match on ident output. 
#   # use REQUIRED to accept any non-null ident. 
# acl aclname src_as   number ... 
# acl aclname dst_as   number ... 
#   # Except for access control, AS numbers can be used for 
#   # routing of requests to specific caches. Here's an 
#   # example for routing all requests for AS#1241 and only 
#   # those to mycache.mydomain.net: 
#   # acl asexample dst_as 1241 
#   # cache_peer_access mycache.mydomain.net allow asexample 
#   # cache_peer_access mycache_mydomain.net deny all 
# 
# acl aclname proxy_auth username ... 
#   # list of valid usernames 
#   # use REQUIRED to accept any valid username. 
#   # 
#   # NOTE: when a Proxy-Authentication header is sent but it is not 
#   # needed during ACL checking the username is NOT logged 
#   # in access.log. 
#   # 
#   # NOTE: proxy_auth requires a EXTERNAL authentication program 
#   # to check username/password combinations (see 
#   # authenticate_program). 
#   # 
#   # WARNING: proxy_auth can't be used in a transparent proxy. It 
#   # collides with any authentication done by origin servers. It may 
#   # seem like it works at first, but it doesn't. 
# 
# acl aclname snmp_community string ... 
#   # A community string to limit access to your SNMP Agent 
#   # Example: 
#   # 
#   # acl snmppublic snmp_community public 
#  замените domain на имя вашего домена 
# все клиенты 
acl all src 0.0.0.0/0.0.0.0 
#все сервера в интернете 
acl inet dst 0.0.0.0/0.0.0.0 
acl manager proto cache_object 
acl localhost src 127.0.0.1/255.255.255.255 
acl SSL_ports port 443 563 
acl Safe_ports port 80 21 443 563 70 210 1025-65535 
acl CONNECT method CONNECT 
acl domain dstdom_regex domain.ru 
#Пусть у вас есть пара подсеток 
acl yournet1 src 194.126.3.65-194.126.3.94/255.255.255.224 
acl yournet2 src 194.126.3.97-194.126.3.126/255.255.255.224 
#Это ваши постоянные пользователи  - друзья, преподаватели итп. 
acl users proxy_auth user1 user2 admin 
#А это студенты, которые заходят в браузер под именем student, а в /usr/local/squid/passwd прописано 
#stud:<хэш пароля, такого же типа, как в /etc/passwd> 
acl student proxy_auth stud 
#список серверов, куда могут ходить суденты 
acl studentserv dstdomain "/usr/local/squid/studentservers.txt" 
#список подстрок, которых не должно быть в запросе, например sex,xxx 
acl pornopart url_regex "/usr/local/squid/porno.part" 
#список порнушных серверов, кроме тех, которые имеют в названии вышеперечисленные подстроки 
acl pornolist dstdomain "/usr/local/squid/porno.list" 
#Хотите прикрутить мониторинг через SNMP? Я прикрутил. 
acl snmppublic snmp_community public 

#  TAG: http_access 
# Allowing or Denying access based on defined access lists 
# 
# Access to the HTTP port: 
# http_access allow|deny [!]aclname ... 
# 
# Access to the ICP port: 
# icp_access  allow|deny [!]aclname ... 
# 
# NOTE on default values: 
# 
# If there are no "access" lines present, the default is to allow 
# the request. 
# 
# If none of the "access" lines cause a match, the default is the 
# opposite of the last line in the list.  If the last line was 
# deny, then the default is allow.  Conversely, if the last line 
# is allow, the default will be deny.  For these reasons, it is a 
# good idea to have an "deny all" or "allow all" entry at the end 
# of your access lists to avoid potential confusion. 
# 
#Default configuration: 
http_access allow manager localhost 
http_access deny manager 
http_access deny !Safe_ports 
http_access deny CONNECT !SSL_ports 
#Вы ведь не хотите, чтобы вашим кэшем пользовались посторонние? 
http_access deny !yournet1 !yournet2 
#Вы ведь не хотите, чтобы ваши пользователи забивали канал порнухой? 
http_access deny pornopart 
http_access deny pornolist 
http_access allow studentserv 
#Вы ведь не хотите, чтобы студенты на лабе шлялись где попало? 
http_access deny student !studentserv 
#А вы сами конечно хотите "шляться где попало"  
http_access allow users inet 
#Когда вы 5-6 раз прочтете, как работает acl list, вы поймете, что без этого никуда 
http_access deny inet 
http_access deny all 
http_access allow all 
icp_access allow all 

Ответить