Changes between Version 14 and Version 15 of howto/SquidKerberosAuthentication


Ignore:
Timestamp:
01/06/11 17:41:47 (14 years ago)
Author:
Edwin Eefting
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • howto/SquidKerberosAuthentication

    v14 v15  
    126126Voor een Windows 2008  server voegt u --enctypes 28 toe aan het commando.
    127127
    128 = Samba config =
     128== Windows clients instellen. ==
    129129
    130 Ik heb de oude samba config gemoved, en een symlink gemaakt naar de smb_ads.conf. Zo kan ik hier straks een los pakketje of losse SCC optie van maken:
    131 {{{
    132 [Syn-3] root@proxy.psy.datux.nl /home/system/samba# ls -la
    133 total 12
    134 drwxr-xr-x   4 root root   86 Apr 21 16:03 ./
    135 drwxr-xr-x  19 root root 4096 Jul  3  2007 ../
    136 drwx------   2 root root   40 Apr 21 16:03 private/
    137 drwxr-xr-x   2 root root  107 Apr 21 15:58 shares/
    138 lrwxrwxrwx   1 root root   12 Apr 21 16:02 smb.conf -> smb_ads.conf
    139 -rw-r--r--   1 root root  719 Apr 21 16:30 smb_ads.conf
    140 -rw-r--r--   1 root root 2051 Apr 10 14:51 smb_pdc.conf
    141 }}}
     130 * Zorg in Internet Explorer dat u de SYN-3 server opgeeft als proxy.
     131 * Gebruik de volledige HOSTNAME en niet het IP. Dus in dit geval: proxy.adtest.psy.datux.nl
    142132
    143 Inhoud van mn config:
    144 {{{
    145 [Syn-3] root@proxy.psy.datux.nl /home/system/samba# cat smb_ads.conf
    146 [global]
    147         workgroup = PSY
    148         netbios name = proxy
    149         realm = PSY.DATUX.NL
    150         server string = Linux Samba Server
    151         security = ads
    152         encrypt passwords = Yes
    153         password server = 192.168.13.13
    154         log file = /var/log/samba/%m.log
    155         max log size = 0
    156         socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    157         preferred master = False
    158         local master = No
    159         domain master = False
    160         dns proxy = No
    161         wins server = 192.168.13.13
    162         winbind separator = /
    163         winbind enum users = yes
    164         winbind enum groups = yes
    165         winbind use default domain = yes
    166         idmap uid = 10000-20000
    167         idmap gid = 10000-20000
    168 }}}
    169 
    170 Letop dat de netbios naam overeenkomt met de Syn-3 hostnaam!
    171 
    172 De samba services mogen op dit moment nog down zijn. (werken toch nog niet op dit moment)
    173 
    174 Pas /etc/resolv.conf aan zodat de dns server van de 2003 bak gebruikt word:
    175 {{{
    176 [Syn-3] root@proxy.psy.datux.nl /home/system/samba# cat /etc/resolv.conf
    177 nameserver 192.168.13.13
    178 }}}
    179 
    180 Join het domein
    181 
    182 {{{
    183 [Syn-3] root@proxy.psy.datux.nl /home/system/samba# net ads join -U administrator
    184 administrator's password:
    185 Using short domain name -- PSY
    186 Joined 'PROXY' to realm 'PSY.DATUX.NL'
    187 }}}
    188 
    189 (Re)start samba en test of alles werkt:
    190 {{{
    191 [Syn-3] root@proxy.psy.datux.nl /home/system/samba# svc -du /service/smbd/ /service/nmbd/ /service/winbindd/
    192 
    193 [Syn-3] root@proxy.psy.datux.nl /home/system/samba# wbinfo -t
    194 checking the trust secret via RPC calls succeeded
    195 
    196 [Syn-3] root@proxy.psy.datux.nl /home/system/samba# wbinfo -u
    197 administrator
    198 gast
    199 support_388945a0
    200 krbtgt
    201 edwin
    202 
    203 [Syn-3] root@proxy.psy.datux.nl /home/system/samba# wbinfo -g
    204 BUILTIN/administrators
    205 BUILTIN/users
    206 domeincomputers
    207 domeincontrollers
    208 schema-administrators
    209 ondernemingsadministrators
    210 domeinadministrators
    211 domeingebruikers
    212 domeingasten
    213 maker eigenaars groepsbeleid
    214 dnsupdateproxy
    215 }}}
    216 
    217 '''Als wbinfo -t niet werkt, komt waarschijnlijk de hostname/domain van de server niet overeen met de rest!'''
    218 
    219 Als je zover bent heb je je samba server succesvol gejoined aan de AD server. double-w00t.
    220 
    221 
    222 = nss config =
    223 
    224 Nu moet linux ook usernames en groepen kunnen 'resolven' via de AD server. Nu gaan we het systeem dus echt gebruik laten maken van AD:
    225 
    226 Wijzig nsswitch.conf:
    227 {{{
    228 [Syn-3] root@proxy.psy.datux.nl ~# cat /etc/nsswitch.conf
    229 ...
    230 passwd:         files winbind ldap
    231 group:          files winbind ldap
    232 ...
    233 }}}
    234 
    235 Als alles goed gegaan is kun je nu de volgende dingen doen:
    236 {{{
    237 [Syn-3] root@proxy.psy.datux.nl ~# id edwin
    238 uid=10000(edwin) gid=10004(domeingebruikers) groups=10004(domeingebruikers)
    239 
    240 [Syn-3] root@proxy.psy.datux.nl ~# id administrator
    241 uid=10001(administrator) gid=10004(domeingebruikers) groups=10004(domeingebruikers),10007(schema-administrators),10008(ondernemingsadministrators),10009(domeinadministrators),10011(maker eigenaars groepsbeleid),10002(BUILTIN/administrators)
    242 
    243 [Syn-3] root@proxy.psy.datux.nl ~# getent passwd
    244 ...
    245 administrator:*:10001:10004:Administrator:/home/ADTEST/administrator:/bin/false
    246 gast:*:10002:10010:Gast:/home/ADTEST/gast:/bin/false
    247 support_388945a0:*:10003:10004:SUPPORT_388945a0:/home/ADTEST/support_388945a0:/bin/false
    248 krbtgt:*:10004:10004:krbtgt:/home/ADTEST/krbtgt:/bin/false
    249 edwin:*:10000:10004:edwin eefting:/home/ADTEST/edwin:/bin/false
    250 ...
    251 
    252 [Syn-3] root@proxy.psy.datux.nl ~# getent group
    253 ...
    254 domeincomputers:x:10005:
    255 domeincontrollers:x:10006:
    256 schema-administrators:x:10007:administrator
    257 ondernemingsadministrators:x:10008:administrator
    258 domeinadministrators:x:10009:administrator
    259 domeingebruikers:x:10004:
    260 domeingasten:x:10010:
    261 maker eigenaars groepsbeleid:x:10011:administrator
    262 dnsupdateproxy:x:10012:
    263 BUILTIN/administrators:x:10002:administrator
    264 BUILTIN/users:x:10003:
    265 ...
    266 }}}
    267 
    268 Als je zover bent maakt linux al actief gebruik van AD.
    269 
    270 Als de windows server nu crashed, zal het resolven van usernames en groups dus niet goed lukken.
    271 
    272 = Squid configuratie =
    273 
    274 == Windows instellingen ==
    275 
    276 Nu is het simpel nog een kwestie van squid configureren.
    277 
    278 Zorg eerst dat squid met zn standaard Syn-3 config reeds goed werkt, en stel in de windows xp client de Proxy in. Test dit alles.
    279 
    280 We zien dat Windows de proxy nu anoniem gebruikt, zoals normaal is:
    281 {{{
    282 [Syn-3] root@proxy.psy.datux.nl ~# tail -f /var/log/squid/access.log
    283 1208791882.340     33 192.168.13.14 TCP_MISS/200 899 GET http://ilse.nl/images/tabjes/bt-internet.gif - DIRECT/62.69.179.217 image/gif
    284 1208791882.352     28 192.168.13.14 TCP_MISS/200 917 GET http://ilse.nl/images/tabjes/bt-achterklap.gif - DIRECT/62.69.179.217 image/gif
    285 1208791882.362     34 192.168.13.14 TCP_MISS/200 886 GET http://ilse.nl/images/tabjes/bt-zakelijk.gif - DIRECT/62.69.179.217 image/gif
    286 ...
    287 }}}
    288 
    289 == NTLM authenticatie instellen ==
    290 
    291 Zorg eerst dat je de ntlm_auth van de samba package hebt! Die van squid is de verkeerde. (deze zou er niet meer in moeten zitten vanaf nu) Deze kan je zo testen:
    292 {{{
    293 [Syn-3] root@proxy.psy.datux.nl /# ntlm_auth --username=edwin
    294 password:
    295 NT_STATUS_WRONG_PASSWORD: Wrong Password (0xc000006a)
    296 [Syn-3] root@proxy.psy.datux.nl /# ntlm_auth --username=edwin
    297 password:
    298 NT_STATUS_OK: Success (0x0)
    299 }}}
    300 
    301 Set daarna de permissies van de winbindd socket, zodat squid er bij kan:
    302 {{{
    303 [Syn-3] root@proxy.psy.datux.nl ~# chgrp nogroup /var/cache/samba/winbindd_privileged/
    304 }}}
    305 
    306 
    307 '''squid.conf hoeft niet meer aangepast te worden: tegenwoordig kan men in de SCC bij squid->Instellingen voor NTLM authenticatie kiezen. Daarna kan er via advanced filtering een group-filter regel worden gemaakt en zal alles werken.'''
    308 
    309 Nu is het tijd om /home/system/proxy/squid.conf te wijzigen.
    310 
    311 Voeg als extra authenticatie ntlm toe. Deze moet VOOR basic komen!
    312 {{{
    313 auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
    314 auth_param ntlm children 50
    315 }}}
    316 Hierdoor kunnen AD clients zich authentificeren op 'magische' wijs, via het NTLM systeem. Appart inloggen op de proxy via de vervelende popup is dan niet meer nodig.
    317 
    318 
    319 Verander auth_basic van ldap naar ntlm_auth:
    320 {{{
    321 auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
    322 auth_param basic children 50
    323 auth_param basic realm Squid proxy-caching web server
    324 auth_param basic credentialsttl 5 hour
    325 }}}
    326 Hierdoor kunnen niet-AD clients zich nog gewoon met de vervelende popup authentificeren.
    327 
    328 
    329 Voeg een nieuwe acl toe aan de reeds bestaande acl lijst:
    330 {{{
    331 acl NTLMUsers proxy_auth REQUIRED
    332 }}}
    333 
    334 Activeer de authenticatie daadwerkelijk door een nieuwe regel toe te voegen aan de http_access lijst:
    335 {{{
    336 http_access allow NTLMUsers
    337 }}}
    338 Deactiveren van authenticatie kan nu door hier weer een hekje voor te zetten.
    339 
    340 Restart squid en test of het werkt:
    341 {{{
    342 [Syn-3] root@proxy.psy.datux.nl /home/system/proxy/filterlists# svcstart /service/squid/
    343 Starting /service/squid/ ...DONE
    344 
    345 [Syn-3] root@proxy.psy.datux.nl /home/system/proxy/filterlists# tail -f  /var/log/squid/access.log
    346 ...
    347 1208804648.362      1 192.168.13.14 TCP_DENIED/407 1752 GET http://nl.msn.com/ - NONE/- text/html
    348 1208804648.367      1 192.168.13.14 TCP_DENIED/407 1908 GET http://nl.msn.com/ - NONE/- text/html
    349 1208804648.486      0 192.168.13.14 TCP_DENIED/407 1854 GET http://estc.msn.com/br/hp/v11/nl-nl/css/ushp_v11.css - NONE/- text/html
    350 1208804648.487      0 192.168.13.14 TCP_DENIED/407 1842 GET http://estc.msn.com/br/hp/v11/nl-nl/css/ovr2.css - NONE/- text/html
    351 1208804648.497      1 192.168.13.14 TCP_DENIED/407 2010 GET http://estc.msn.com/br/hp/v11/nl-nl/css/ushp_v11.css - NONE/- text/html
    352 1208804648.497      0 192.168.13.14 TCP_DENIED/407 1848 GET http://estc.msn.com/br/hp/v11/nl-nl/css/ie_v11.css - NONE/- text/html
    353 1208804648.500      3 192.168.13.14 TCP_DENIED/407 1998 GET http://estc.msn.com/br/hp/v11/nl-nl/css/ovr2.css - NONE/- text/html
    354 1208804648.503      2 192.168.13.14 TCP_DENIED/407 2004 GET http://estc.msn.com/br/hp/v11/nl-nl/css/ie_v11.css - NONE/- text/html
    355 1208804648.700    202 192.168.13.14 TCP_MISS/304 308 GET http://estc.msn.com/br/hp/v11/nl-nl/css/ushp_v11.css edwin DIRECT/8.12.211.124 -
    356 1208804648.713    209 192.168.13.14 TCP_MISS/304 337 GET http://estc.msn.com/br/hp/v11/nl-nl/css/ie_v11.css edwin DIRECT/8.12.211.124 -
    357 }}}
    358 
    359 Score!!
    360 
    361 == GROUP filtering ==
    362 
    363 
    364 Op dit moment zit er alleen nog maar voor LDAP group filtering in de Advanced proxy filtering module. Omdit nu toch al te kunnen moet u het volgende checken.
    365 
    366  * is het bestand /usr/bin/wbinfo_group.pl aanwezig?  Zo niet, zorg ervoor dat u deze uit een source .tar.gz van squid haalt. In versie 4.3(stable), zit het reeds bij in.
    367  * plaats het volgende '''external_acl_type wbinfo_group %LOGIN /usr/bin/wbinfo_group.pl''' in de squid config, bij de andere external_acl_type.
    368 
    369 U moet nu in staat zijn om met deze ACL te filteren, zie het LDAP voorbeeld in de config file voor voorbeeld.
    370 
    371 '''Groupen worden gecached door winbind. De  winbind cache time staat standaard op 300 seconden, dus het kan even duren voordat nieuwe groupen zichtbaar worden'''