URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID12
Нить номер: 7059
[ Назад ]

Исходное сообщение
"squid не пускает перенаправленный трафик"

Отправлено admin_nrj , 28-Ноя-13 14:24 
есть ЦентОс есть сквид 3.1.10 в iptables создал правило заворачиваещее трафик 80 порта на сквид
$IPT -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

в конфиге сквида
http_port 192.168.0.7:3128 transparent

аутентификация  нтлм
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp

так вот если в браузере прокси и порт прописаны то всё ходит как надо, а если нет трафик заворачивается и сквид никого не пускает. пишет что
he requested URL could not be retrieved
При получении URL http://www.yandex.ru/? произошла следующая ошибка
Доступ запрещён.
Система контроля доступа не позволяет выполнить ваш запрос сейчас. Обратитесь к вашему администратору.

Что ж ему надо????


Содержание

Сообщения в этом обсуждении
"squid не пускает перенаправленный трафик"
Отправлено reader , 28-Ноя-13 15:20 
>[оверквотинг удален]
> auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
> так вот если в браузере прокси и порт прописаны то всё ходит
> как надо, а если нет трафик заворачивается и сквид никого не
> пускает. пишет что
> he requested URL could not be retrieved
> При получении URL http://www.yandex.ru/? произошла следующая ошибка
> Доступ запрещён.
> Система контроля доступа не позволяет выполнить ваш запрос сейчас. Обратитесь к вашему
> администратору.
> Что ж ему надо????

http://www.squid-cache.org/Doc/config/auth_param/
http://break-people.ru/cmsmade/index.php?page=translate_squi...

WARNING: authentication can't be used in a transparently intercepting
proxy as the client then thinks it is talking to an origin server and
not the proxy. This is a limitation of bending the TCP/IP protocol to
transparently intercepting port 80, not a limitation in Squid.
Ports flagged 'transparent', 'intercept', or 'tproxy' have
authentication disabled.


"squid не пускает перенаправленный трафик"
Отправлено admin_nrj , 28-Ноя-13 15:38 
>[оверквотинг удален]
> http://www.squid-cache.org/Doc/config/auth_param/
> http://break-people.ru/cmsmade/index.php?page=translate_squi...
> WARNING: authentication can't be used in a transparently intercepting
> proxy as the client then thinks it is talking to an origin
> server and
> not the proxy. This is a limitation of bending the TCP/IP protocol
> to
> transparently intercepting port 80, not a limitation in Squid.
> Ports flagged 'transparent', 'intercept', or 'tproxy' have
> authentication disabled.

ай-яй-яй-яй как неожиданно...
и как быть в такой ситуации? всем насильно прокси прописывать? а есть шибко умные пользователи свой браузер на флешке носят фаерфокс  выключенным прокси....


"squid не пускает перенаправленный трафик"
Отправлено михалыч , 28-Ноя-13 16:12 
> ай-яй-яй-яй как неожиданно...
> и как быть в такой ситуации? всем насильно прокси прописывать? а есть
> шибко умные пользователи свой браузер на флешке носят фаерфокс  выключенным
> прокси....

так а что вы хотите получить? прозрачный прокси или аутентификацию?
в сквиде 3.1 и выше transparent заменили на intercept

http_port 192.168.0.7:3128 intercept


"squid не пускает перенаправленный трафик"
Отправлено admin_nrj , 28-Ноя-13 16:27 
>> ай-яй-яй-яй как неожиданно...
>> и как быть в такой ситуации? всем насильно прокси прописывать? а есть
>> шибко умные пользователи свой браузер на флешке носят фаерфокс  выключенным
>> прокси....
> так а что вы хотите получить? прозрачный прокси или аутентификацию?
> в сквиде 3.1 и выше transparent заменили на intercept
> http_port 192.168.0.7:3128 intercept

intercept писал ситуация не меняется

хочется чтобы все ходили в тырнет через проксю, авторизовались на ней, и затем получали доступ к тем или иным ресурсам интернета. а сейчас получается если прокси не прописана и я насильно заворачиваю трафик, то никуда не пускает. а если трафик не заворачивать то вообще у кого прокси не прописана ходят куда хотят.

в идеале хочу прозрачный прокси с авторизацией )))

всем прописать проксю можно и средствами групповых политик, но они действуют только на эксплорер да системные настройки, но есть и другие браузеры, например мозила где можно проксю смело выключить... или тогда насильно волевым решением объяснять всем шибко умным что если хочешь в тырнет ходи через проксю и авторизуйся.


"squid не пускает перенаправленный трафик"
Отправлено михалыч , 28-Ноя-13 16:35 
> в идеале хочу прозрачный прокси с авторизацией )))

На всякий случай переведу: ))

ПРЕДУПРЕЖДЕНИЕ: аутентификация не может быть использован в прозрачном перехвате прокси,
так как клиент думает, что он говорит с исходным сервером, а не через прокси.
Это ограничение кривизны TCP/IP-протокола для прозрачного перехвата порта 80, а не ограничение в Squid.
У портов, помеченных 'transparent', 'intercept' или 'tproxy' проверка подлинности отключена.

Или то, или другое, но не оба вместе. ))

"squid не пускает перенаправленный трафик"
Отправлено admin_nrj , 28-Ноя-13 16:43 
>[оверквотинг удален]
>> проксю и авторизуйся.
> На всякий случай переведу: ))
>
ПРЕДУПРЕЖДЕНИЕ: аутентификация не может быть использован в прозрачном перехвате 
> прокси,
> так как клиент думает, что он говорит с исходным сервером, а не
> через прокси.
> Это ограничение кривизны TCP/IP-протокола для прозрачного перехвата порта 80, а не ограничение
> в Squid.
> У портов, помеченных 'transparent', 'intercept' или 'tproxy' проверка подлинности отключена.

> Или то, или другое, но не оба вместе. ))

Да понятно....

жаль, как жаль...

ну к примеру пускай будет авторизация основным для меня, а как тогда разруливать гостей офиса которые вообще не в домене?
выделить для них спец диапазон на DHCP и дальше
acl not_autorized src "/etc/squid/db/not_autorized.txt"
http_access allow not_autorized

# те кто ходят неавторизованными
# _guests
192.168.0.200-192.168.0.254

а если точка доступа без DHCP, то DHCP сервер и не поймёт кто есть кто..


"squid не пускает перенаправленный трафик"
Отправлено medisa , 28-Ноя-13 18:56 
на squide настроить
http_port 3128 #(для доступа по аторизации)
http_port 3127 intercept  #(для прозрачного)
через ACL перенаправить пользователей по портам

"squid не пускает перенаправленный трафик"
Отправлено admin_nrj , 29-Ноя-13 09:33 
> на squide настроить
> http_port 3128 #(для доступа по аторизации)
> http_port 3127 intercept  #(для прозрачного)
> через ACL перенаправить пользователей по портам

хорошая идея, подскажите как, я не силён в этом....


"squid не пускает перенаправленный трафик"
Отправлено medisa , 29-Ноя-13 12:05 
>> на squide настроить
>> http_port 3128 #(для доступа по аторизации)
>> http_port 3127 intercept  #(для прозрачного)
>> через ACL перенаправить пользователей по портам
> хорошая идея, подскажите как, я не силён в этом....

в конфиге squid

auth_param basic program /etc/squid/my-auth1.pl
auth_param basic children 2
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl p3128 localport 3128
http_access allow p3128 password localnet
http_access allow localnet
http_port 3128
http_port 3127 intercept


файл my-auth1.pl (положить в /etc/squid/)

#!/usr/bin/perl

%users = (
'login' => 'password',
'user1' => '12324',
'user2' => '111',

);

$|=1;
while (<>) {

  ($user,$pass) = split();
  #print $user,'-',$pass,'-',$users[$user];
  if ($users{lc $user} == $pass){
    print "OK\n";
  }else{
    print "ERR\n";
  }
}


в iptables настроить перенаправление для прзрачного проксирования

-A PREROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3127
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3127 -j ACCEPT



"squid не пускает перенаправленный трафик"
Отправлено admin_nrj , 29-Ноя-13 15:18 
Вроде сочинил вроде работает, выкладываю рабочий конфиг, iptables как в первом посте
конфиг взят отсюда http://www.lissyara.su/articles/freebsd/programms/squid+ad/


# порт где слушаем
http_port 192.168.0.7:3128
http_port 192.168.0.7:3129 # себе любимому чтоб всё ходило
http_port 192.168.0.7:3127 intercept

acl adminport myport 3129 # себе любимому чтоб всё ходило
http_access allow adminport # себе любимому чтоб всё ходило

acl mp myport 3128
acl mptr myport 3127


# список слов, которые будучи обнаруженными в URL
# вызывают обработку без кэширования
hierarchy_stoplist cgi-bin ?

# список ACL которые вызывают несовпадение с кэшем,
# и, запрос с ответом кэшироваться не будут
acl QUERY urlpath_regex cgi-bin \?

# собственно - правило что не кэшируем
no_cache deny QUERY

# сколько отдаём ему памяти (реально пожрёт втрое больше)
  cache_mem 1024 MB

# Директория для кэша, числа - размер кэша в Mb,
# число директорий первого уровня, число директорий второго
# уровня в каждой директории первого.
# cache_dir ufs /var/spool/squid 50000 64 512
# cache_dir ufs /var/spool/squid 2048 16 256

# лог доступа - первый параметр путь, второй - формат
# форматы описаны в дефолтовом файле.
# access_log /var/log/squid/access.log squid

# лог активности менеджера хранилища. Показывает, какие
# объекты были сохранениы/удалены из кэша и как долго.
# мне он не нужен, а места занимает прилично.
cache_store_log none

# файл hosts, проверяемый при запуске. Из него берётся
# доменное имя и добавляется к неполным адресам (которые
# не содержат ни одной точки в имени)
hosts_file /etc/hosts

# домен добавляемый к неполным именам
append_domain .contozo

# директория где хранятся HTML c текстами ошибок
# error_directory /etc/squid/errors/Russian-1251

# программа редиректор (у меня сквидгард) для более простой
# и тонкой настройки правил использования инета
#redirect_program /usr/local/bin/squidGuard -c \
#       /usr/local/etc/squid/squidguard.conf
# число процессов редиректора
#redirect_children 20

#cache_log /usr/local/squid/logs/cache.log
#debug_options ALL,5

# авторизация
# нативная авторизация ослика
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp

# число детишек для авторизации - сколько процессов запускать
auth_param ntlm children 50

# базовая авторизация для тех, кто не может нативную (я, например,
# т.к. сижу из под FreeBSD, да и многие программы - например,
# родной ICQ клиент от AOL)
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic

# Число процессов для базовой аворизации - значительно меньше
# чем для основной, т.к. таких юзеров/программ немного
auth_param basic children 50

# Заголовок окна выводимяй при запросе авторизации
auth_param basic realm Squid proxy-caching web server

# время жизни авторизации - сколько кэшировать данные
# (для базовой авторизации)
auth_param basic credentialsttl 2 hours

#refresh_pattern ^ftp:         &n... 1440    20%     10080
#refresh_pattern ^gopher:        1440    0%      1440
#refresh_pattern .               0       20%     4320

# внешняя ACL для разруливания по группам
external_acl_type nt_group %LOGIN /usr/lib/squid/wbinfo_group.pl

# пользователи у которых просто интернет - с ограничениями
acl inet_users external nt_group DZS\inet_users

# пользователи у которых есть тока аська
# acl inet_icq external nt_group inet_icq

# пользователи с полными парвами на доступ в инет
acl inet_full external nt_group DZS\fullInet

# люди с доступом к серверу аналитики
# acl inet_analit external nt_group inet_analit

# пользователи с ограниченным доступом в инет - тока
# определённый набор ресурсов и всё.
# acl inet_restrict external nt_group inet_restrict

# Пользователи которым разрешён метод CONNECT
# acl inet_connect external nt_group inet_connect

# ACL авторизации на проксе
acl MYDOMAIN proxy_auth REQUIRED


# Описываем порты на которые разрешено лазить
acl SSL_ports port 443 563
acl SSL_for_client_banks port    910 8443 4500

# порты на которе можно ходить юзерам
acl safe_ports port 80 # http
acl safe_ports port 21    # ftp
acl safe_ports port 443     # ssl
acl ICQ_ports  port 5190    # ICQ

# надо ли? 1025-65535
acl CONNECT method  CONNECT

# для /usr/ports/www/sqstat/
# копируете конфиг, ставите вместо 'host' - 'user'
# и начальство не оторвать от экрана :))
acl manager proto cache_object


# Описываем все сети все IP
acl all src all

# описываем локалхост
acl localhost src 127.0.0.1/255.255.255.255

# acl до сайтов которые разрешены всем]
acl mydomain_site dstdomain "/etc/squid/db/allow_all.txt"

# запрещённые в URL выражения (для всего УРЛа)
acl bad_url url_regex "/etc/squid/db/deny_url.txt"

# запрещённые в URL выражения (для самого урла, без домена)
#acl   bad_url_2       urlpath_regex   \
#       "/etc/squid/db/deny_url_2.txt"
# запрещённые доменные имена
acl deny_domains dstdomain "/etc/squid/db/deny_domains.txt"

# acl для клиент-банков и прочих кому надо напрямую ходить
acl client_banks dst "/etc/squid/db/clinet_banks.txt"

# сети в которые ходить не надо (ICQ и прочия)
acl bad_networks dst "/etc/squid/db/bad_networks.txt"

# те кто ходят без авторизации
acl not_autorized src "/etc/squid/db/not_autorized.txt"

# список сайтов для тех у кого их определённый набор
acl domains_for_restrict dstdomain "/etc/squid/db/domains_for_restrict.txt"


acl localnet src 192.168.0.0/24
# http_access allow localhost
# http_access allow localnet localhost
# http_access allow localnet
# http_access allow mptr localnet


### настройки доступа ####

# вводим свои определения для сообщений о
# отказе по ACL - пригодиться когда кто-то
# воет что не может попасть на определённый сайт
# deny_info ERR_BAD_URL bad_url
# deny_info ERR_BAD_NETWORKS bad_networks
# deny_info ERR_DENY_DOMAINS deny_domains
# deny_info ERR_SAFE_PORTS safe_ports
# deny_info ERR_SSL_PORTS SSL_ports

# пропускаем sqstat
http_access allow manager localhost
http_access deny manager

# http_access allow all

# выпускаем на неавторизуемые сайты
http_access allow client_banks

# выпускаем тех кто не авторизуется в принципе
# т.к. они не в домене и т.п.
http_access allow not_autorized

# Разрешаем всем доступ на сайт конторы
# Этим же правилом срубаются все неавторизованные
http_access allow MYDOMAIN mydomain_site
http_access allow mydomain_site

# Разрешаем доступ ко всему группе 'inet_full'
http_access allow inet_full all

# Зарубаем запрещённые куски url
http_access deny bad_url

# Разрешаем асечный порт тем у кого есть аська
# http_access allow inet_icq ICQ_ports

# зарубаем запрещённые сети
http_access deny bad_networks

# зарубаем запрещённые домены
http_access deny deny_domains

# Зарубаем коннект кроме как к SSL (надо ли группе отдельной?)
http_access deny CONNECT !SSL_ports

# зарубаем все порты проме safe_ports
http_access deny !safe_ports

# разрешаем инет обычным пользователям
http_access allow inet_users


# разрешаем инет ограниченным пользователям на разрешённые сайты
# http_access     allow   inet_restrict   domains_for_restrict


acl stop_files url_regex -i ftp (\.com\.exe|\.mpa|\.mp3|\.wma|\.swf|\.m3u|\.avi|\.mpg|\.mpeg|\.wmv|\.wav|\.asf)
acl audio_t rep_mime_type content-type audio
acl video_t rep_mime_type content-type video
acl video_t rep_mime_type content-type application/x-shockwave-flash
acl video_t rep_mime_type content-type application/octet-stream

http_reply_access deny audio_t !inet_full
http_reply_access deny video_t !inet_full
http_reply_access deny stop_files !inet_full

acl nobanners src all
acl banners url_regex "/usr/local/squid/etc/banners.acl"
http_access deny nobanners banners
deny_info http://your.site/empty.gif banners


#-------------------------------------------------------------------------------+

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


# Конец управляемых настроек
# зарубаем всё нах :)
# Для начала кустомизируем сообщение о ошибке.
# ERR_INET_NO_ALLOW - это имя файла в
# /usr/local/etc/squid/errors/Russian-1251
# синтаксис описан
# http://wiki.squid-cache.org/SquidFaq/MiscFeatures
# deny_info       ERR_INET_NO_ALLOW       all
http_access allow localnet
http_access deny all