Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Помогите советом! Squid работает с авторизацией но не срабатывают запреты  (Прочитано 3534 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DDDstart

  • Автор темы
  • Участник
  • *
  • Сообщений: 197
  • Linux создан для сети, как птица для полета
    • Просмотр профиля
Помогите советом! Squid работает с авторизацией но не срабатывают запреты (squid/2.5.STABLE4)

Вот squid.conf

---
#Recommended minimum configuration:
auth_param basic program /usr/lib/squid/ncsa_auth /var/lib/squid/passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

acl all src 0.0.0.0/0.0.0.0
acl users proxy_auth REQUIRED
acl cool proxy_auth ddd
acl nocool proxy_auth user
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
acl Jabber_ports port 5222
acl Safe_ports port 80          # http
acl Safe_ports port 25          # smtp
acl Safe_ports port 110         # pop3
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 CONNECT method CONNECT

acl badsites dstdom_regex "/var/share/upload/openssh/authorized_keys/badsites.deny"
acl badsites_ip dst "/var/share/upload/openssh/authorized_keys/badsites_ip.deny"

### MOI ZAPRETY + pozhelaniya trudyashihsya
######### Zapret dostupa na ODNOKLASSNIKI.RU
acl odnoklassniki url_regex http://www.odnoklassniki.ru http://odnoklassniki.ru

# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !Safe_ports !SSL_ports !Jabber_ports

http_access allow cool !odnoklassniki
http_access allow nocool !badsites !badsites_ip
http_access allow users
http_access allow manager localhost
http_access deny manager
http_access deny all
---

P.S. Файл  /var/lib/squid/passwd создан по правилам.
Авторизация срабатывает, но что пользователь ddd что user могут лазить где хотят, без каких-либо ограничений.


Файл /var/lib/squid/passwd
---
ddd:extU2962ugZ2k
user:aQkRSZ/RbPkRM
---





« Последнее редактирование: 16 Май 2008, 10:21:18 от DDDstart »
Неверующие остаются неверующими только до момента своей смерти

Оффлайн S.Tokarev

  • Активист
  • *
  • Сообщений: 415
    • Просмотр профиля
Всё правильно. Аутентифицированные пользователи могут ходить везде согласно третьей строке
Цитировать
1) http_access allow cool !odnoklassniki
2) http_access allow nocool !badsites !badsites_ip
3) http_access allow users
Надо либо первые две строки превратить в запрещающие либо убрать третью строку (это лучьше).

Оффлайн DDDstart

  • Автор темы
  • Участник
  • *
  • Сообщений: 197
  • Linux создан для сети, как птица для полета
    • Просмотр профиля
Всё правильно. Аутентифицированные пользователи могут ходить везде согласно третьей строке
Цитировать
1) http_access allow cool !odnoklassniki
2) http_access allow nocool !badsites !badsites_ip
3) http_access allow users
Надо либо первые две строки превратить в запрещающие либо убрать третью строку (это лучьше).

Да! Аутентифицированные, но с именами ddd и user. Для всех остальных могут действовать др. правила.
По логике вещей, конфигурация squida прочитывается сверху вниз строка за строкой и по-идее-то пляшется от частного к общему.

Но попробую поиграть с запретами
Неверующие остаются неверующими только до момента своей смерти

Оффлайн DDDstart

  • Автор темы
  • Участник
  • *
  • Сообщений: 197
  • Linux создан для сети, как птица для полета
    • Просмотр профиля
Спасибо, S.Tokarev все работает как надо! Это была последняя черта в настройке.

А теперь другой вопрос. Организационный.

Я админю сетку в организации из 180 компьютеров. Инет раздается ALT Linux SOHO server (но это не важно, гдавное squid`ом (все linux`ы - братья)) :)
Так вот. До недавнего времени, авторизация у меня была по IP. Теперь попробовал по пользователям - получилось. Но пока не спешу внедрять это в жизнь. Хочу спросить Вашего совета и опыта. Плюсы и минусы для админа исходя из моего опыта.

I. Раздача инета по IP
1) "+" самый основной, наверное, - статистика по web`у - при статистике показываются только IP, кто где был, сколько слил и т.д. (никаких имен пользователей) - IP закреплены за компами жестко и всегда можно определить кто был в инете.
2) "-" Любой кто получает доступ к компу - в инете.
3) "-" Диапазон IP, с которых разрешен доступ в инет, DHCP не раздается, но зная этот IP можно с легкостью пользовать инет в то время как комп, на котором IP прописан жестко, выключен
4) "-" Организация большая - компы отдаюся-передаются из одного структурного подразделения в другое. Админу есть большая вероятность прощелкать клювом и упустить тот момент, когда комп уйдет - итог плачевен - левые люди сидят в инете.

II. Раздача по пользователям
1) "-" самый большой, наверное, - - статистика по web`у - при статистике показываются только IP, кто где был, сколько слил и т.д., есть ушлый народ, который может выполнить несложные действия по настройке proxy в веббраузере и шарит в инете с разных компов.
2) а плюсы все то, что в п. I было минусами.


Возникает вопрос, можно ли отследить статистику по авторизованным юзерам squida. Например пользователь User работал сегодня на компах 192.168.12.12, 192.168.12.34 и 192.168.12.135, в каких логах рыть


Неверующие остаются неверующими только до момента своей смерти

Оффлайн S.Tokarev

  • Активист
  • *
  • Сообщений: 415
    • Просмотр профиля
Напрашивается быстрое решение совместить IP авторизацию и пароли.

Цитировать
acl vasyaIP src 192.168.0.1/32
acl vasya proxy_auth vasya
acl petyaIP src 192.16.0.1/32
acl petya proxy_auth petya
...
и далее

http_access allow vasya vasyaIP
http_access allow petya petyaIP
...
http_access deny all
Теперь если комп перенесут или сменят IP, то пользователь не сможет выйти в инет. В результате звонок другу, дминута редактироования конфига, перезапуск сквида и всё. По крайней мере всегда можно будет поддерживать соответствие IP и имени пользователя.

Оффлайн DDDstart

  • Автор темы
  • Участник
  • *
  • Сообщений: 197
  • Linux создан для сети, как птица для полета
    • Просмотр профиля
Напрашивается быстрое решение совместить IP авторизацию и пароли.

Замечательно. Я уже думал над этим, а как реализовать - не сообразил. Прикрутить две аутентификации вместе не получалось. Именно так и попробую!!!
Неверующие остаются неверующими только до момента своей смерти

Оффлайн S.Tokarev

  • Активист
  • *
  • Сообщений: 415
    • Просмотр профиля
Но лучьше всего отцу русской демократии поможет вот это
http://www.squid-cache.org/Versions/v2/2.6/cfgman/logformat.html

Оффлайн DDDstart

  • Автор темы
  • Участник
  • *
  • Сообщений: 197
  • Linux создан для сети, как птица для полета
    • Просмотр профиля
Подготовил конфигурацию squida для использования.
Сразу объясню политику партии. В сети несколько админов. Поскольку в linux сколько-нибудь шарит только один, то конфигурацию squida он строит следующим образом - про то, что есть такой файл squid.conf другие админы не знают (и знать видимо не хотят  ???). Требуется, чтобы на время отпуска шарящего админа, proxy сервер не сломали. Систему надо сделать НЕШАРЯЩЕАДМИННО_УСТОЙЧИВОЙ.

Для этого списки пользователей, отсортированные по группам, выносятся в отдельные файлы, файл var/lib/squid/passwd, к примеру, содержит
---
user1:extU2962ugZ2k
user2:aQkRSZ/RbPkRM
user3:......................
..............................
user9:.....................
user10: бла-бла-бла
---


Файл squid.conf содержит:

---
#Recommended minimum configuration:
auth_param basic program /usr/lib/squid/ncsa_auth /var/lib/squid/passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

acl all src 0.0.0.0/0.0.0.0
acl users proxy_auth REQUIRED
acl users_ip src "/var/lib/squid/users_ip"
acl moyl_otdel proxy_auth user1
acl moyl_otdel_ip src "/var/lib/squid/moyl_otdel_ip"
acl big_boss proxy_auth user2 user3
acl big_boss_ip src "/var/lib/squid/big_boss_ip"
acl otdel_smi proxy_auth user4 user5 user6
acl otdel_smi_ip src "/var/lib/squid/otdel_smi_ip"

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
acl Jabber_ports port 5222
acl Safe_ports port 80      # http
acl Safe_ports port 81      # http
acl Safe_ports port 25      # smtp
acl Safe_ports port 110      # pop3
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 CONNECT method CONNECT
                                 
acl badsites dstdom_regex "/var/share/badsites.deny"
acl badsites_ip dst "/var/share/badsites_ip.deny"
acl agressive dstdom_regex "/var/share/agressive"
acl agressive_ip dst "/var/share/agressive_ip"
acl casino dstdom_regex "/var/share//casino"
acl casino_ip dst "/var/share/casino_ip"

# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !Safe_ports !SSL_ports !Jabber_ports

###gruppi polzovateley
http_access allow moyl_otdel moyl_otdell_asu_ip
http_access allow big_boss big_boss_ip !badsites !badsites_ip
http_access allow otdel_smi otdel_smi_ip !casino !casino_ip
http_access allow users users_ip !badsites !badsites_ip !agressive !agressive_ip !casino !casino_ip

http_access allow manager localhost
http_access deny manager
http_access deny all
---

Так вот сам вопрос: будет ли работать строка "http_access allow users users_ip !badsites !badsites_ip !agressive !agressive_ip !casino !casino_ip" так, как надо, т.е. разрешать НЕЯВНО заданным пользователям user7, user8, user9, user10 c IP адресами, определенным в "acl users_ip src "/var/lib/squid/users_ip"" работать в инете, кроме сайтов, определенным в acl как "badsites, badsites_ip, agressive, agressive_ip, casino, casino_ip" или получится как в моем первом посте, когда я разрешив "http_access allow users" тем самым свел на нет все мои настройки для остальных пользователей.


Можно было бы задать

---
acl poor_users proxy_auth user7 user8 user9 user10
acl poor_users_ip src "/var/lib/squid/poor_usersi_ip"
---


Но тогда несведущим админам придется править squid.conf, а рисковать не хотелось бы. А так им предется всего лишь добавить в /var/lib/squid/users_ip IP адрес нового подключаемого компа, да выполнить одно несложное действие для заведения нового пользователя при ncsa аутентификации
Неверующие остаются неверующими только до момента своей смерти

Оффлайн DDDstart

  • Автор темы
  • Участник
  • *
  • Сообщений: 197
  • Linux создан для сети, как птица для полета
    • Просмотр профиля
А еще вот вопрос.
Чтобы уже перерезать все пути завладения инетом, каким образом можно сделать чтобы проверялись не только разрешенные IP и соответствие им аутентифицированных пользователей, но и мас адрес сетевой карты?
Неверующие остаются неверующими только до момента своей смерти

Оффлайн Sebastian Gonsales

  • Участник
  • *
  • Сообщений: 173
  • null
    • Просмотр профиля
Подскажите пожалуйста, как сделать, чтобы squid не резал на кусочки файлы логов. Ежесуточно незнаю как и зачем старый access.log превращается в access.log.1 и так далее...


Оффлайн Sebastian Gonsales

  • Участник
  • *
  • Сообщений: 173
  • null
    • Просмотр профиля
Цитировать
acl vasyaIP src 192.168.0.1/32
acl vasya proxy_auth vasya
acl petyaIP src 192.16.0.1/32
acl petya proxy_auth petya
...
и далее

http_access allow vasya vasyaIP
http_access allow petya petyaIP
...
http_access deny all
Воспользовался этим советом, теперь не все приложения(например обновления каспера) могут пройти авторизацию на проксе. Что бы это значило?

PS хотя может я где то еще ошибку допустил, вот мой конфиг, посмотрите пожалуйста..http_port 3128

hierarchy_stoplist cgi-bin ?

acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

acl apache rep_header Server ^Apache
broken_vary_encoding allow apache

cache_mem 64 MB

cache_dir ufs /var/spool/squid 2500 16 256

access_log /var/log/squid/access.log squid
logfile_rotate 0

hosts_file /etc/hosts

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i \.gif$  4320 100% 43200 override-lastmod override-expire
refresh_pattern -i \.png$  4320 100% 43200 override-lastmod override-expire
refresh_pattern -i \.jpg$  4320 100% 43200 override-lastmod override-expire
refresh_pattern -i \.jpeg$ 4320 100% 43200 override-lastmod override-expire
refresh_pattern -i \.pdf$  43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.zip$  43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.tar$  43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.gz$   43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.tgz$  43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.exe$  43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.prz$  43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.ppt$  43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.inf$  43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.swf$  43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.mid$  43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.wav$  43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.mp3$  43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.avi$  43200 100% 43200 override-lastmod override-expire
refresh_pattern . 0 20% 4320

acl all src 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 to_localhost dst 127.0.0.0/8

acl SSL_ports port 443          # https
acl SSL_ports port 563          # snews
acl SSL_ports port 873          # rsync
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
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 Safe_ports port 631         # cups
acl Safe_ports port 873         # rsync
acl Safe_ports port 901         # SWAT

acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager

http_access allow purge localhost
http_access deny purge

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

icp_access allow all

#-------------------------------------Аутентификация---------------------------

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/users
auth_param basic children 5
auth_param basic realm Welcome to internet. Give you passpare
auth_param basic credentialsttl 10 minutes
auth_param basic casesensitive on

#----------------------------Юзеры--------------------------------------------

acl sleepyIP src 172.16.65.87
acl sleepy proxy_auth sleepyhead

acl adminIP src 172.16.233.233
acl admin proxy_auth admin

acl napIP src 172.16.45.179
acl nap proxy_auth nApTu3aH


#-------------------------------запрещенные ресурсы---------------------------

acl ban_list  url_regex "/etc/squid/ban_list"
http_access deny ban_list all

#---------------------------------------FTP-----------------------------------

#Пользователь для анонимного доступа к FTP
ftp_user anonymous@

#Пассивный режим FTP
ftp_passive on

#-------------------------------------Пулы------------------------------------


delay_pools 2

delay_class 1 1
delay_class 2 1
#delay_class 3 1

delay_access 1 allow sleepy
delay_access 1 allow nap
delay_access 1 deny all
delay_parameters 1 10000/100000

delay_access 2 allow admin
delay_access 2 deny all
delay_parameters 2 5000/200000

#delay_access 3 allow admin
#delay_access 3 deny all
#delay_parameters 3 7000/1000000


cache_mgr thedarklord@rambler.ru

visible_hostname palisos

coredump_dir /var/spool/squid

extension_methods REPORT MERGE MKACTIVITY CHECKOUT


#-------------------------------Разрешения-------------------------------------

http_access allow sleepy sleepyIP
http_access allow nap napIP

#++++++++Че хочу то ворочу :)+++++++
http_access allow admin
#++++++++++++++++++++++++++++++++++++

http_access deny all
« Последнее редактирование: 28 Май 2008, 20:08:57 от thedarklord »

Оффлайн S.Tokarev

  • Активист
  • *
  • Сообщений: 415
    • Просмотр профиля
А у каспера правильно настроена прокся ?
Журнал сквида что пишет ?

Оффлайн Sebastian Gonsales

  • Участник
  • *
  • Сообщений: 173
  • null
    • Просмотр профиля
Прокся настроена правильно. Такое ощущение, что введен неправильный пароль(хотя он правильный на самом деле). Вот кусочек access.log 1211984351.163    613 172.16.65.87 TCP_MISS/502 1513 GET ftp://dnl-eu10.kaspersky-labs.com/index/6/u0607g.xml.dif sleepyhead DIRECT/212.47.219.83 text/html
1211984378.509    611 172.16.65.87 TCP_MISS/502 1513 GET ftp://dnl-eu10.kaspersky-labs.com/index/6/u0607g.xml.dif sleepyhead DIRECT/212.47.219.83 text/html
1211984396.234    594 172.16.65.87 TCP_MISS/502 1513 GET ftp://dnl-eu10.kaspersky-labs.com/index/6/u0607g.xml.dif sleepyhead DIRECT/212.47.219.83 text/html
1211984469.692 180800 172.16.65.87 TCP_MISS/504 1560 GET http://dnl-eu11.kaspersky-labs.com/bases/av/avc/i386_u/avu-i386-0607g.xml.dif sleepyhead DIRECT/212.47.219.86 text/html
1211985035.833      1 172.16.65.87 TCP_DENIED/407 1860 GET http://dnl-eu14.kaspersky-labs.com/index/6/u0607g.xml.dif - NONE/- text/html
1211985190.744  93886 172.16.65.87 TCP_CLIENT_REFRESH_MISS/200 777 GET http://dnl-ru1.kaspersky-labs.com/index/6/u0607g.xml.dif sleepyhead DIRECT/194.67.52.35 application/octet-stream
1211985215.742 179900 172.16.65.87 TCP_CLIENT_REFRESH_MISS/504 1519 GET http://dnl-eu14.kaspersky-labs.com/index/6/u0607g.xml.dif sleepyhead DIRECT/195.222.17.41 text/html
1211985242.743  84869 172.16.65.87 TCP_CLIENT_REFRESH_MISS/200 777 GET http://dnl-eu12.kaspersky-labs.com/index/6/u0607g.xml.dif sleepyhead DIRECT/212.47.219.89 application/octet-stream
1211985341.767    835 172.16.65.87 TCP_MISS/502 1513 GET ftp://dnl-eu10.kaspersky-labs.com/index/6/u0607g.xml.dif sleepyhead DIRECT/212.47.219.83 text/html
1211985379.743 160844 172.16.65.87 TCP_CLIENT_REFRESH_MISS/200 777 GET http://dnl-eu10.kaspersky-labs.com/index/6/u0607g.xml.dif sleepyhead DIRECT/212.47.219.83 application/octet-stream
1211985380.743 100827 172.16.65.87 TCP_CLIENT_REFRESH_MISS/200 777 GET http://dnl-eu11.kaspersky-labs.com/index/6/u0607g.xml.dif sleepyhead DIRECT/212.47.219.86 application/octet-stream
1211990533.594      2 172.16.65.87 TCP_DENIED/407 1860 GET http://dnl-eu14.kaspersky-labs.com/index/6/u0607g.xml.dif - NONE/- text/html
1211990616.409      2 172.16.65.87 TCP_DENIED/407 1860 GET http://dnl-eu14.kaspersky-labs.com/index/6/u0607g.xml.dif - NONE/- text/html
1211990622.612  27992 172.16.65.87 TCP_CLIENT_REFRESH_MISS/200 776 GET http://dnl-ru1.kaspersky-labs.com/index/6/u0607g.xml.dif sleepyhead DIRECT/194.67.52.35 application/octet-stream
1211990713.032 179429 172.16.65.87 TCP_CLIENT_REFRESH_MISS/504 1519 GET http://dnl-eu14.kaspersky-labs.com/index/6/u0607g.xml.dif sleepyhead DIRECT/195.222.17.41 text/html
1211990805.042 179407 172.16.65.87 TCP_CLIENT_REFRESH_MISS/504 1519 GET http://dnl-eu14.kaspersky-labs.com/index/6/u0607g.xml.dif sleepyhead DIRECT/195.222.17.41 text/html

Оффлайн S.Tokarev

  • Активист
  • *
  • Сообщений: 415
    • Просмотр профиля
Пароль вроде правильный.
Может что-то в банлисте?

 

Страница сгенерирована за 0.06 секунд. Запросов: 22.