airpwn / sams2

Automatically exported from code.google.com/p/sams2
GNU General Public License v2.0
0 stars 0 forks source link

SAMS2 Ubuntu и squid 3.1.19 Kerberos не пускает по DOMAIN@Username:TCP_DENIED/403 4568 GET http://ya.ru/ TestUs.ER@DOMAIN.LOCAL #598

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
1.Ubuntu Server 12.04 LTS
2.SAMS 2.0.0-b1
3.Squid Cache: Version 3.1.19
Active Directory Windows 2008 Server R2

Использую метод авторизации Active Directory 
(ADLD)через хэлпер squid_kerb_auth (см. 
http://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberos).

В SAMS2 завведен прокси с авторизацией ADLD.Из AD 
импортирован  пользователь TestUs.ER через

При формировании ACL sams2daemon создает 
пользователя в формате DOMAIN.LOCAL@TestUs.ER, а в 
access.log регистрируется TestUs.ER@DOMAIN.LOCAL

Соответственно прокси сервер не пускает 
данного пользователя.
Параметр logformat не менялся стандартный squid.
Через NTLM(хэлпер ntlm_auth) работает только сняв 
галку в SAMS использовать "Включить 
использование домена пользователя".

Если поменять руками исправить 
пользователя в acl на TestUs.ER@DOMAIN.LOCAL, то 
пускает. 

Достаточно ли будет мне изменить исходник 
файла samsuser.cpp в этом блоке:
string SAMSUser::asString () const
{
  string res = "";
  Template *tpl = TemplateList::getTemplate (this->getCurrentTemplateId());
  if (!tpl)
    {
      WARNING ("User with id " << _id << " lost template");
      return res;
    }

  if (tpl->getAuth() == Proxy::AUTH_IP)
    {
      res = _ip.asString ();
    }
  else
    {
      if (!_domain.empty () && Proxy::useDomain ())
        {
          res = _domain + Proxy::getSeparator ();
        }
/* Хочу добавить     
      if (tpl->getAuth()==Proxy::AUTH_ADLD)
      {
         res = (Proxy::getSeparator ()) + _domain;
      }
*/
        res += _nick;
    }

  return res;
} или где-то еще прописывать надо? Хочу 
просто прописать дополнительное условие 
(см. комментарий в блоке)

Original issue reported on code.google.com by Denyak...@gmail.com on 20 May 2013 at 1:45

GoogleCodeExporter commented 9 years ago
Извините, поспешил:
/* Хочу добавить     
      if (tpl->getAuth()==Proxy::AUTH_ADLD)
      {
         res = (Proxy::getSeparator ()) + _domain;
         res = _nick + res;

         return res;

      }
*/

Original comment by Denyak...@gmail.com on 20 May 2013 at 1:50

GoogleCodeExporter commented 9 years ago
В названии темы ошибка: SAMS2 Ubuntu и squid 3.1.19 
Kerberos не пускает по DOMAIN.LOCAL@TestUs.ER:TCP_DENIED/403 4568 
GET http://ya.ru/ TestUs.ER@DOMAIN.LOCAL, надо SAMS2 Ubuntu и squid 3.1.19 
Kerberos не пускает по DOMAIN.LOCAL@TestUs.ER:TCP_DENIED/403 4568 
GET http://ya.ru/ TestUs.ER@DOMAIN.LOCAL

Original comment by Denyak...@gmail.com on 21 May 2013 at 4:26

GoogleCodeExporter commented 9 years ago
В общем надо еще в нескольких местах 
менять. 

Original comment by Denyak...@gmail.com on 21 May 2013 at 9:34

GoogleCodeExporter commented 9 years ago
Удалось добиться результата?
какие еще исходники правили ?

Original comment by m.prihod...@gmail.com on 27 May 2013 at 7:36

GoogleCodeExporter commented 9 years ago
Да удалось, правил вот эти dbcleaner.cpp, dbexporter.cpp, 
proxy.cpp, samsuser.cpp, userfilter.cpp. Вот diff.

Original comment by Denyak...@gmail.com on 27 May 2013 at 12:54

Attachments:

GoogleCodeExporter commented 9 years ago
Круто! Работает! Спасибо огромное!

Original comment by KOCTE...@gmail.com on 30 Aug 2013 at 9:39

GoogleCodeExporter commented 9 years ago
Хочу тоже всё настроить через керберос, 
применил патч, но почему-то так в конфиг 
сквида и пишет в последовательности 
домен@имя пользователя. 

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

Original comment by bukl...@gmail.com on 24 Jan 2014 at 7:09