ПРивет ВСЕМ!
Ребят, юзеры SQUID'а, такой вопрос: есть банковский сайтик, где используются всякие java-штуки (кнопочки по отправке файлов, загрузке всяких ключей и т.п.) - вот и не работает через сквид, точно не работает - java выкидывает окно на авторизацию доступа к прокси, при вводе логина/пароля снова несколько раз окно запроса и в итоге аплеты и т.п. не загружаются.
использую доменную авторизацию доступа к нету. в конфиге конечно прописано несколько acl по доступу к разным ресурсам (HTTP, FTP, porno ...)
вот кусочек логов Java Consol:
java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.0 407 Proxy Authentication Required"
at sun.net.www.protocol.http.HttpURLConnection.doTunneling(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.setProxiedClient(DashoA6275)
at sun.net.www.protocol.https.PluginDelegateHttpsURLConnection.superConnect(Unknown Source)
...
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.https.PluginDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(DashoA6275)
at sun.plugin.net.protocol.http.HttpUtils.followRedirects(Unknown Source)
......................
at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(Unknown Source)
at sun.misc.URLClassPath$JarLoader.getJarFile(Unknown Source)
...
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
...
at java.lang.Thread.run(Unknown Source)
load: class SignApplet.class not found.
java.lang.ClassNotFoundException: SignApplet.class
at sun.applet.AppletClassLoader.findClass(Unknown Source)
...
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed.
at sun.applet.AppletClassLoader.getBytes(Unknown Source)
at sun.applet.AppletClassLoader.access$100(Unknown Source)
at sun.applet.AppletClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 11 moreв чём проблема? догадки - squid не пускает java-ресурсы по умолчанию, тогда каким образом это разрешить?
>в чём проблема? догадки - squid не пускает java-ресурсы по умолчанию, тогда
>каким образом это разрешить?
джаву сквид пускает ! или автроизация кривая либо аксели у тебя кривые
java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.0 407 Proxy Authentication Required" - что за туннель требуется ?
>джаву сквид пускает !
ну ладна-ладна... не кипятись только =)
я ж сказал, что это догадки, а не утверждение
возникло потому, что пробовал ставить разрешение на всё без всяких запретов доступа к урлам и т.д.
> или автроизация кривая либо аксели у тебя кривые
всё может быть - от ошибок никто не застрахован
вот для этого привожу свои аксели и аутентификацию (через самбу в вин домене):auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 5
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 2 minutesacl 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/8acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny to_localhost# Access to HTTP or HTTPS Sources
acl HTTP_dest port 443 80 8080 8108
# Access to FTP Sources
acl FTP_dest url_regex -i ^ftp://# Name of Logon Users
acl LogonUser proxy_auth REQUIRED# List of Users for Access to HTTP(S)
acl inet_users proxy_auth -i "/etc/squid/access/inetusers.lst"# List of Users for Access to FTP
acl ftp_users proxy_auth -i "/etc/squid/access/ftpusers.lst"acl SSL_ports port 443
http_access allow CONNECT LogonUser inet_users SSL_ports
http_access deny CONNECT !SSL_ports
http_access deny CONNECT !inet_users# Allow TO FTP
http_access allow LogonUser ftp_users FTP_dest
deny_info ERR_FTP_DENIED FTP_dest
http_access deny LogonUser !ftp_users FTP_dest# Allow TO HTTP
http_access allow LogonUser inet_users HTTP_dest
deny_info ERR_HTTP_DENIED HTTP_dest
http_access deny LogonUser !inet_users HTTP_desthttp_access deny all
>java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.0 407 Proxy Authentication
>Required" - что за туннель требуется ?
а если б я знал... =/
возможно трабла с SSL ! пробуй изменить правила для SSL
acl SSL_ports port 443
acl CONNECT method CONNECT
acl SSL_ports port 443
http_access allow CONNECT LogonUser SSL_ports
http_access allow CONNECT inet_users SSL_ports
http_access deny CONNECT !SSL_ports
остальные deny убери здесьhttp_access allow CONNECT LogonUser inet_users SSL_ports - применяет логическое "И" для всех трех ! разницу думаю понял ?
если не поможет - выпусти нужные станции напрямую через NAT/МАСКАРАД, без прокси
>возможно трабла с SSL ! пробуй изменить правила для SSL
>acl SSL_ports port 443
>acl CONNECT method CONNECT
>acl SSL_ports port 443
>http_access allow CONNECT LogonUser SSL_ports
>http_access allow CONNECT inet_users SSL_ports
>http_access deny CONNECT !SSL_ports
>остальные deny убери здесь
>
>http_access allow CONNECT LogonUser inet_users SSL_ports - применяет логическое "И"
>для всех трех ! разницу думаю понял ?
ну про разницу, точнее логическое "И", мне рассказывать не надо, с этим я уже сталкивался =) , поэтому и стал заморачиваться с более точными правилами доступа в Инет, вплоть до портов и урлов
почему использую именно такую конструкцию - http_access allow CONNECT LogonUser inet_users SSL_ports ? - чтобы пускать на SSL аутентифицированных юзерей из acl inet_users
можно здесь выкинуть LogonUser, но по-моему (раньше делал так) в таком случае будет запрос на ввод логина/пароля. При обращении на банковский сайт java типа сама (окошко запроса имеет символику jav'ы) сначала выводит мне окно с запросом логина/пароля - я ввожу и нифига не пускает, повторяется неск раз. в логах сквида вот что:
TCP_DENIED/407 454 HEAD http://sait.banka.ru:443/SignApplet.jar - NONE/- text/html
ну и далее с разными вещами джавы (.class и т.д.)>если не поможет - выпусти нужные станции напрямую через NAT/МАСКАРАД,
>без прокси
так наверно и придётся, т.к. сайтик пока слава ... один в наличии =)
Вопросик в таком случае - джава будет грузить всякие свои апплеты и т.д. с хоста банка, или обращаться на какие хосты разработчиков джавы? думаю вопрос понятен?
>>возможно трабла с SSL ! пробуй изменить правила для SSL
>>acl SSL_ports port 443
>>acl CONNECT method CONNECT
>>acl SSL_ports port 443
>>http_access allow CONNECT LogonUser SSL_ports
>>http_access allow CONNECT inet_users SSL_ports
>>http_access deny CONNECT !SSL_ports
>>остальные deny убери здесь
>>
>>http_access allow CONNECT LogonUser inet_users SSL_ports - применяет логическое "И"
>>для всех трех ! разницу думаю понял ?
>ну про разницу, точнее логическое "И", мне рассказывать не надо, с этим
>я уже сталкивался =) , поэтому и стал заморачиваться с более
>точными правилами доступа в Инет, вплоть до портов и урлов
>почему использую именно такую конструкцию - http_access allow CONNECT LogonUser inet_users SSL_ports
>? - чтобы пускать на SSL аутентифицированных юзерей из acl inet_users
>
>можно здесь выкинуть LogonUser, но по-моему (раньше делал так) в таком случае
>будет запрос на ввод логина/пароля. При обращении на банковский сайт java
>типа сама (окошко запроса имеет символику jav'ы) сначала выводит мне окно
>с запросом логина/пароля - я ввожу и нифига не пускает, повторяется
>неск раз. в логах сквида вот что:
>TCP_DENIED/407 454 HEAD http://sait.banka.ru:443/SignApplet.jar - NONE/- text/html
>ну и далее с разными вещами джавы (.class и т.д.)
>
>>если не поможет - выпусти нужные станции напрямую через NAT/МАСКАРАД,
>>без прокси
>так наверно и придётся, т.к. сайтик пока слава ... один в наличии
>=)
>Вопросик в таком случае - джава будет грузить всякие свои апплеты и
>т.д. с хоста банка, или обращаться на какие хосты разработчиков джавы?
>думаю вопрос понятен?
Для обеспечения работы Java-апплетов с Сервером «iBank» через прокси-сервер Squid необходимо соблюдение следующих правил:1. Не должна использоваться аутентификация клиентов - Squid не должен запрашивать у пользователя его имя и пароль. Соответственно не следует использовать директиву
acl <acl_name> proxy_auth REQUIRED
в файле настроек squid.conf.
Если же существует необходимость в использовании этого механизма защиты, то необходимо отключить аутентификацию клиентов при обращении к серверу iBank. Для этого нужно добавить в squid.conf следующие строчки:
acl ibank_dst dst 195.239.34.170/255.255.255.255 (ip адрес сервера iBank)
acl ibank_ports port 443 9091
http_access allow ibank_dst
http_access allow CONNECT ibank_ports
Примечание. Последние две строчки должны быть записаны до строки, в которой запрашивается аутентификация, т.е. если существует access-лист, допустим, users в виде
acl users proxy_auth REQUIRED
то наши две строки должны располагаться до строки
http_access allow users
2. Разрешить соединения на TCP-порты 443, 9091 Сервера «iBank». Возможный вариант:
acl ibank_ports port 443 9091
http_access allow CONNECT ibank_ports
Причем последняя строчка должна располагаться до строки, в которой вводится запрет на порты выше 1023. В стандартной поставке Squid разрешены порты: 80, 21, 443, 563, 70, 210, 1025-65535. Многие оставляют только 80, 443, поэтому здесь нужно быть внимательным.
3. При запуске апплетов системы iBank пользователю нужно указывать ip адрес и порт (3128 по умолчанию) proxy-сервера Squid.
>Для обеспечения работы Java-апплетов с Сервером «iBank» через прокси-сервер Squid необходимо соблюдение
>следующих правил:
>
... ... ...
> 3. При запуске апплетов системы iBank пользователю нужно указывать
>ip адрес и порт (3128 по умолчанию) proxy-сервера Squid.
>
>Ок, биг сенкс
Пороюсь по настройкам как буду свободен более менее
Вопрос конечно уже давно был, но сенкс за подробности =)
Я уже сам потом понял, что авторизация не проходит, даж ацка не могёт
работать с авторизацией, пришлось выпускать коннект на ацку по апишникам
но эт не страшно =)
Если хотите NTLM авторизацию для Java Applets - используйте родную, microsoft'овскую (а не sun'овскую) JVM. по крайней мере распространенный ibank с ней работает корректно
> Если хотите NTLM авторизацию для Java Applets - используйте родную, microsoft'овскую (а
> не sun'овскую) JVM. по крайней мере распространенный ibank с ней работает
> корректноМы решили этот вопрос так
acl allowed_sites url_regex "/etc/squid/allowed_sites.txt"ну и разрешили этот урл без авторизации.