Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.05.03;
Скачать: CL | DM;

Вниз

аутефикация на прокси   Найти похожие ветки 

 
Kav   (2008-01-19 13:01) [0]

Перерыл исходники прокси-серверов, но ни в каком нет примера аутефикации пользователей
есть ли такие исходнки или описание как это сделать


 
DVM ©   (2008-01-19 15:11) [1]

В заголовке запроса должно быть "Proxy-Authorization: Basic " + EncodeBase64(ProxyUserName + ":" + ProxyPassword)


 
Kav   (2008-01-19 16:22) [2]

DVM , у меня есть прокси на него коннектятся пользователи и мне надо им либо дать интерет либо нет
и куда мне это нужно примостить "Proxy-Authorization: Basic " + EncodeBase64(ProxyUserName + ":" + ProxyPassword)


 
DVM ©   (2008-01-19 16:44) [3]


> Kav   (19.01.08 16:22) [2]

Ты делаешь сам прокси или клиентскую программу, которая должна работать через прокси?


 
Kav   (2008-01-19 17:32) [4]

DVM,
Делаю сам прокси :)


 
DVM ©   (2008-01-19 18:09) [5]

Если ты делаешь HTTP прокси, то должен знать принцип его работы. Клиент делает HTTP запрос к прокси, прокси разбирает запрос и делает почти такой же, но уже от своего имени запрос к HTTP серверу.

Если нужен прокси с HTTP Basic авторизацией, то необходимым условием для работы клиента через такой прокси будет особым образом построенный HTTP запрос. В нем будут следующие изменения:

1) Вот обычный запрос безо всяких прокси, направленный непосредственно HTTP серверу:


     FRequest := "GET " + Path + " HTTP/" + HTTPVersion + CRLF +
                 "Accept: */*" + CRLF +
                 "Pragma: no-cache" + CRLF +
                 "Cache-Control: no-cache" + CRLF +
                 "User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Win32)" + CRLF +
                 "Host: " + Host + ":" + inttostr(Port) + CRLF;
                 "Authorization: Basic " + EncodeBase64(UserName + ":" + Password) + CRLF +
                 "Connection: Keep-Alive" + CRLFCRLF;


2) А вот так запрос будет выглядеть если он направляется проки серверу.


     FRequest := "GET http://" + Host + ":" + inttostr(Port) + Path + " HTTP/" + HTTPVersion + CRLF +
                 "Accept: */*" + CRLF +
                 "Pragma: no-cache" + CRLF +
                 "Cache-Control: no-cache" + CRLF +
                 "User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Win32)" + CRLF +
                 "Host: " + Host + ":" + inttostr(Port) + CRLF +
                 "Authorization: Basic " + EncodeBase64(UserName + ":" + Password) + CRLF +
                 "Proxy-Authorization: Basic " + EncodeBase64(ProxyUserName + ":" + ProxyPassword) + CRLF +
                 "Connection: Keep-Alive" + CRLFCRLF;


 
DVM ©   (2008-01-19 18:10) [6]

Причем в первом случае надо устанавливать соединение с самим сервером, а во втором с прокси сервером.


 
Kav   (2008-01-22 10:09) [7]

DVM,
я не очень сильно понимаю работу прокси сервера, я взял
исходник http://www.delphisources.ru/pages/sources/internet/2005_year/alt_http_proxy.html
и хотел его переделать под себя, но не знаю даже с какой стороны к нему подбираться
P.S. сразу скажу в Delphi я хорошо разбираюсь просто не когда не работал с сетью.


 
DiamondShark ©   (2008-01-22 10:33) [8]


> я не очень сильно понимаю работу прокси сервера

так пойми. почитай RFC.

А то ты сейчас в ситуации вроде: "Мужики, я не очень умею ездить, куда тут ключ зажигания вставлять?"


 
Slym ©   (2008-01-22 10:42) [9]

код ужасный, писал наверно сиплюсоид
найди строку if Authenticate(MS) <> -1 и раскоментируй ее...


 
Slym ©   (2008-01-22 10:48) [10]

Slym ©   (22.01.08 10:42) [9]
код ужасный

не просто ужастный, а никчемный... месиво из 3х!!! сокетных компонент


 
Kav   (2008-01-22 10:51) [11]

DiamondShark,
RFC - что такое и где взять ? вв яндексе куда-то не туда послали :)
Slym,
Окей попробую


 
Kav   (2008-01-22 10:52) [12]

>> не просто ужастный, а никчемный... месиво из 3х!!! сокетных компонент
а есть исходники попроще ?


 
DiamondShark ©   (2008-01-22 12:10) [13]


> вв яндексе куда-то не туда послали


http://www.yandex.ru/yandsearch?text=RFC+http+proxy+authentication&rpt=rad


 
Slym ©   (2008-01-22 13:20) [14]

Дарю http://ifolder.ru/5054357


 
Kav   (2008-01-22 16:53) [15]

Slym
спасибо щас буду смотреть


 
Kav   (2008-01-24 10:01) [16]

А вот еще один вопрос:  можно ли  сделатьтак  что если юзер авторизировался,  его пароль держался бы пока он не завершит свой сеанс в Windows ?


 
Slym ©   (2008-01-24 10:12) [17]

Разобрался в моем коде?
Kav   (24.01.08 10:01) [16]
держался

держался где?
В рамках 1 сеанса браузера с сервером пароль хранится в памяти браузера... Можно поставить "галку" сохранить пароль тогда он сохраняется гдето в системе...


 
Kav   (2008-01-24 10:39) [18]

Slym, чуть-чуть разобрался (просто времени свободного не было),
У меня проблема такая компы у меня как бы общие т.е. любой сотрудник организацию за него может сеть и поработать ( и мне нужно всети статиску сколько они мегабайт затратили на интернет и на каких сайтах побывали),
И в них есть учетная запись - читатель каждый входит в компьютер под ней
если поставить галку сохранить пароль, то при следущем входе в систему
он уже будет как бы введен, так что это не подходит
P.S.  много уйдет времени если делать еще  поддержку HTTPS ?


 
Slym ©   (2008-01-24 11:15) [19]

готовое не проще взять? этих считалок проксей как китайцев на планете... к томуже с кэшированием... и "умным" рефрешем
Kav   (24.01.08 10:39) [18]
P.S.  много уйдет времени если делать еще  поддержку HTTPS ?

15 мин... она там практически реализована...


 
Slym ©   (2008-01-24 11:40) [20]

   try
     FRemoteSocket.Open(RemoteHost,"","",RemotePort);
     if AnsiStartsText("CONNECT", Query.Strings[0]) then
     begin
       ClientSocket.SendLn("HTTP/1.0 100 Continue");
       ClientSocket.SendLn("");
     end else
     begin
       for i:=0 to Query.Count-1 do
       begin
         if not FRemoteSocket.Connected then break;
         if Query.ValueFromIndex[i]="" then Continue;
         FRemoteSocket.SendLn(Query.Strings[i]);
       end;
       FRemoteSocket.SendLn("");
     end;
     DoTunneling(ClientSocket,FRemoteSocket);
   finally
     FRemoteSocket.Close;
   end;


 
Slym ©   (2008-01-24 13:20) [21]

Slym ©   (24.01.08 11:40) [20]
ClientSocket.SendLn("HTTP/1.0 100 Continue");

сори... ClientSocket.SendLn("HTTP/1.0 200 OK");


 
Kav   (2008-01-25 10:16) [22]

окей, попробую :)


 
Kav   (2008-01-25 11:03) [23]

Есть одна проблема, нельзя на yandex зайти в свой почтовый ящик через web интерфейс, с чем это может быть связано ?


 
Kav   (2008-01-26 09:02) [24]

имеется в виду через прокси


 
XakeP   (2008-01-27 00:36) [25]

О! Я вижу, что нашел интересующую меня тему. Мне тоже нужна программка, но немного по круче. Я хочу сделать со своего кома прокси-сервер. Пробовал использовать разные программы, но так и не нашел такой, которая обеспечила бы все, что мне нужно. Может, кто поможет написать такую.
Итак, что мне надо:
1)   аутентификация пользователей, включая их IP
2)   возможность ограничения для каждого пользователя скорости входящего и исходящего потоков отдельно, а также смена этих значений в зависимости от количества подключенных пользователей и их активности
3)   форма где можно будет увидеть кто с кокой скоростью в данный момент качает/отдает данные и сколько скачал/отдал за текущие сутки/месяц. + сохранить это в файл.


 
XakeP   (2008-01-27 00:36) [26]

Удалено модератором
Примечание: дубль


 
ketmar ©   (2008-01-27 13:02) [27]

2хацкер: почесать репу; потом купить старую железяку за смешное количество долларов; воткнуть туда, например, Linux; настроить iptables и squid; наслаждаццо. писать ничего не надо, честно.


 
XakeP   (2008-01-27 14:33) [28]

Не-е-е. Я в линуксе вообще ноль. Мне надо бы что-то под ХР.
Прогу которую подарил Slym © думаю можно немного усовершенствовать для этих целей. Я вчера пробовал немного разобраться с ней. Оказалось, что менеджер закачек не качает. Выдает ошибку:
HTTP/1.0 407 Proxy Authentication Required
Proxy-Authenticate: Basic realm="ALTERNATIVE PROXY"
Это можно исправить?


 
ketmar ©   (2008-01-27 14:46) [29]

натурально, авторизацию включить. ежели оная там верно реализована.

или всё-таки брать инструменты под задачу, а не пытаться придать задаче форму кактуса.


 
XakeP   (2008-01-27 15:08) [30]

Сори, не досмотрел :)
Выдает socket error=10053


 
ketmar ©   (2008-01-27 15:10) [31]

>[30] XakeP(27.01.08 15:08)
логично. ты не представился — тебя отстрелили в стратосферу.


 
XakeP   (2008-01-27 15:15) [32]

Неа. Что-то не так. Я в менеджере задал имя пользователя и пароль!


 
XakeP   (2008-01-27 15:31) [33]

и сам прокси в этом месте

raise ESocketError.CreateResFmt(@sWindowsSocketError,

выдает ошибку


 
ketmar ©   (2008-01-27 15:53) [34]

ты будешь смеяться, но raise — оно для того и сделано, чтобы исключение кидать.

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


 
XakeP   (2008-01-27 16:06) [35]

Ну, если кто-то удосужился прочитать код – плиз хелп!


 
XakeP ©   (2008-01-27 23:06) [36]

а что можете сказать об этом:
_http://www.delphisources.ru/pages/sources/internet/2005_year/alt_http_proxy.html ?


 
Slym ©   (2008-01-28 05:35) [37]

XakeP   (27.01.08 14:33) [28]
Прогу которую подарил Slym © думаю можно немного усовершенствовать для этих целей.

Совершенствуй :)... Этот пример был накидан за пару -тройку 15мин. пауз между работой... Это только пример! т.к. в нем замечен баг который позволяет работать только в рамках "быстрой" сети:
r:=Peer1.ReceiveBuf(Buf,Length(Buf));
if r=0 then exit;
s:=Peer2.SendBuf(Buf,r);
if r<>s then exit;

а должен терпеливо ждать для досыла и не истерично рвать соединение


 
ketmar ©   (2008-01-28 07:38) [38]

да там, наверняка, и работа с заголовками вовсе отсутствует. я не читал, но сильно это подозреваю. %-)


 
Kav   (2008-01-28 09:41) [39]

Сейчас скачал squid под Windows, посмотреля на него и она мне не понравилась.


 
ketmar ©   (2008-01-28 09:44) [40]

мне сквид и не под винду не нравится. он, как бы это помягче сказать… не для дома.


 
Anatoly Podgoretsky ©   (2008-01-28 15:24) [41]

> ketmar  (28.01.2008 09:44:40)  [40]

А аутефикация она как бы тоже не для дома.


 
Kav   (2008-01-29 08:46) [42]

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


 
Slym ©   (2008-01-29 09:04) [43]

Обычно разделяют отчеты и коммуникации: прокси + анализатор логов
http://www.redline-software.com/rus/products/iam/?r1=softportal&r2=opisanie


 
Kav   (2008-01-29 09:23) [44]

Вот, вот а бесплатного опять ничего нету ...


 
SpellCaster   (2008-02-04 19:33) [45]

3proxy поковыряй, он правда консольный, но довольно прост в освоении, по крайней мере, если у тебя нет специфических задач. И лог-анализатор имеется.


 
ketmar ©   (2008-02-04 19:46) [46]

>[44] Kav (29.01.08 09:23)
squid. бесплатнее некуда.


 
SpellCaster   (2008-02-05 11:17) [47]

3proxy попроще, хотя с кальмаром я дела не имел, но подозреваю, что, подобно большинству никсовых тулз, это тот еще изврат))


 
ketmar ©   (2008-02-05 12:46) [48]

>[47] SpellCaster (05.02.08 11:17)
да, 3ара3а проще. и в настройке, и в прожористости, и вообще. сквид — тот ещё монстр.

только я не уверен, что 3ара3а умеет http-авторизацию. по ip фильтровать точно умеет, а вот http auth — фиг помнит.


 
SpellCaster   (2008-02-05 14:16) [49]

Ммм... не знаю как насчет именно хттп, но авторизация там имеется по паролю, и в настройках ИЕ я это настраивал. А вот хттп или не хттп - это хрен хнает, но поскольку ИЕ умеет лазить только через хттп-прокси, логично предположить, что и авторизация такая же.
Плюс, сейчас через плугин можно делать виндовскую авторизацию, по учетной записи виндов.


 
kernel ©   (2008-02-08 18:34) [50]

Чтобы новую ветку не создавать, напишу тут :)

В общем, на основе TIdHTTPProxyServer сделал что-то вроде:

MyProxy:=TIdHTTPProxyServer.Create;
MyProxy.DefaultPort:=3128;
MyProxy.Bindings.DefaultPort:=3128;
MyProxy.OnConnect:=MyProxyServer.MOnQuery;
MyProxy.OnHTTPDocument:=MyProxyServer.MHTTPDocument;
MyProxy.Active:=true;


В надежде словить какие-нибудь входящие данные с AContext в  TMyProxyServer.MOnQuery прописал:

procedure TMyProxyServer.MOnQuery(AContext: TIdContext);
begin
  Writeln(AContext.Connection.IOHandler.ReadLn);
{  ^^^ в консольном  }
end;


И тут натыкаюсь на первые грабли - в консольку полученные от AContext данные вырисовываются нормально, НО после чего клиент (в данном случае браузер) в ожидании получения данных (т.е. страницы) "застывает".

Вопрос: что я делаю не так?


 
ketmar ©   (2008-02-08 18:58) [51]

>[50] kernel © (2008-02-08 18:34:00)
>что я делаю не так?

наверное, документ не отдаёшь?

---
Understanding is not required. Only obedience.


 
kernel ©   (2008-02-08 19:41) [52]


> ketmar ©   (08.02.08 18:58) [51]
> ...
> наверное, документ не отдаёшь?


Ну так IdHTTPProxyServer сам же должен выдавать нужный документ?! Без AContext.Connection.IOHandler.ReadLn все работает. Или если я забираю IOHandler, то дальше мне самому что-ли нужно управлять выдачей документа?


 
ketmar ©   (2008-02-08 20:27) [53]

а хрен его знает. я не зря вопрос поставил. жди, пока кто-то с опытом индейского секса придёт.

---
Understanding is not required. Only obedience.


 
Kav   (2008-02-09 12:21) [54]

установил 3proxy
а он не хочет запускаться пишет что-то про лицензию
3proxy tiny proxy server 3proxy-0.6b-devel (080207011317)
(c)2000-2007 3APA3A, Vladimir Dubrovin & 3proxy.ru
Documentation and sources: http://3proxy.ru/
Please read license agreement in "copying" file.
You may not use this program without accepting license agreement
Как мне с этой лицензией согласиться ?!


 
ketmar ©   (2008-02-09 12:28) [55]

>[54] Kav (2008-02-09 12:21:00)
а ты подумай немного. доки почитай. оно полезно.

хинт: конфиги, батенька, конфиги. написать и скормить. а то плохо работает.

---
Understanding is not required. Only obedience.


 
kernel ©   (2008-02-09 17:15) [56]


> kernel ©   (08.02.08 18:34) [50]


Проблему решил использованием IOHandler.Capture.


 
Kav   (2008-02-11 09:08) [57]

ketmar
Там все почти на аглийском мне тяжело разобраться!
Ну кто-нибудь подскажите


 
SpellCaster   (2008-02-11 13:20) [58]

> [57] Kav   (11.02.08 09:08)

Семь слоев матрешки, или Настройка 3proxy для чайников
http://3proxy.ru/doc/html/fordummies.html

потом ступай в ФАК, а потом уже и до мануала доберешься.


 
Kav   (2008-02-11 13:46) [59]

http://3proxy.ru/doc/html/fordummies.html
это я читао ни слова там нету о лицензии


 
ketmar ©   (2008-02-11 15:46) [60]

>[59] Kav (2008-02-11 13:46:00)
найми админа, не занимайся с нами церебральным сексом. тебе буквами по форуму написали, что конфиг надо. какие буквы вызывают затруднение?

---
Understanding is not required. Only obedience.



Страницы: 1 2 вся ветка

Текущий архив: 2009.05.03;
Скачать: CL | DM;

Наверх




Память: 0.62 MB
Время: 0.016 c
2-1237732684
madmech
2009-03-22 17:38
2009.05.03
Как запретить добавлять записи в DBGrid?


2-1238002705
Alex_C
2009-03-25 20:38
2009.05.03
Ограничения ф-ции Pos?


2-1237842664
alexander-rsh
2009-03-24 00:11
2009.05.03
Удаление папки


2-1237377953
T2k
2009-03-18 15:05
2009.05.03
Использование крит.секции


2-1237811538
Orion
2009-03-23 15:32
2009.05.03
Full Screen Mode