| 1 | = Squid en NTLM authenticatie = |
| 2 | |
| 3 | == Algemene info == |
| 4 | |
| 5 | De volgende url's hebben mij veel geleerd: |
| 6 | http://www.opensourcehowto.org/how-to/squid/squid-with-ntlm-authentication.html |
| 7 | |
| 8 | http://www.cyberciti.biz/faq/squid-ntlm-authentication-configuration-howto/ |
| 9 | |
| 10 | http://mkeadle.org/index.php?p=13 |
| 11 | |
| 12 | De volgende howto heb ik gevolgt: |
| 13 | http://mkeadle.org/index.php?p=13 |
| 14 | |
| 15 | = Windows config = |
| 16 | |
| 17 | == Windows 2003 server configuratie == |
| 18 | |
| 19 | Heb AD wizard gevolgt. Volgende instellingen op server |
| 20 | * Domein: ADTEST.PSY.DATUX.NL |
| 21 | * IP: 192.168.13.13 |
| 22 | * Server hostnaam: w2k3-edwin.adtest.psy.datux.nl |
| 23 | * Server als DNS laten configureren door de AD wizard. |
| 24 | * Gewone standaard gebruiker: edwin, pass test |
| 25 | |
| 26 | == Windows XP prof. client == |
| 27 | |
| 28 | * Als DNS 192.168.13.13 instellen. |
| 29 | * Aanmelden op het domein en testen |
| 30 | |
| 31 | Als je zover bent heb je dus een werkende windows Active directory met 1 aangemelde computer. W00t! |
| 32 | |
| 33 | = Syn-3 config = |
| 34 | |
| 35 | Installeer minimaal de volgende pakketten, inclusief dependencies. Laatste versies in svn tree. |
| 36 | * Syn-3 pakket samba |
| 37 | * Syn-3 pakket mit_kerberos |
| 38 | * Syn-3 pakket squid |
| 39 | |
| 40 | |
| 41 | = Kerberos config = |
| 42 | |
| 43 | Eerst moeten we zorgen dat kerberos goed werkt. De config staat nog in /etc, maar deze komt later misschien in /home/system: |
| 44 | {{{ |
| 45 | [Syn-3] root@proxy.psy.datux.nl /var/log/samba# cat /etc/krb5.conf |
| 46 | [libdefaults] |
| 47 | default_realm = ADTEST.PSY.DATUX.NL |
| 48 | |
| 49 | [realms] |
| 50 | ADTEST.PSY.DATUX.NL = { |
| 51 | kdc = 192.168.13.13 |
| 52 | } |
| 53 | }}} |
| 54 | |
| 55 | Let op de hoofdletters en op het feit dat je de LANGE naam gebruikt voor het AD-domain. Gebruik voor kdc het ip van de AD-server. |
| 56 | |
| 57 | Testen of het werkt doe je zo: |
| 58 | {{{ |
| 59 | [Syn-3] root@proxy.psy.datux.nl /var/log/samba# kinit administrator@ADTEST.PSY.DATUX.NL |
| 60 | Password for administrator@ADTEST.PSY.DATUX.NL: |
| 61 | |
| 62 | [Syn-3] root@proxy.psy.datux.nl /var/log/samba# klist -e |
| 63 | Ticket cache: FILE:/tmp/krb5cc_0 |
| 64 | Default principal: administrator@ADTEST.PSY.DATUX.NL |
| 65 | |
| 66 | Valid starting Expires Service principal |
| 67 | 04/21/08 17:03:32 04/22/08 03:03:33 krbtgt/ADTEST.PSY.DATUX.NL@ADTEST.PSY.DATUX.NL |
| 68 | renew until 04/22/08 17:03:32, Etype (skey, tkt): ArcFour with HMAC/md5, ArcFour with HMAC/md5 |
| 69 | |
| 70 | |
| 71 | Kerberos 4 ticket cache: /tmp/tkt0 |
| 72 | klist: You have no tickets cached |
| 73 | |
| 74 | }}} |
| 75 | |
| 76 | Let op de hoofdletters en zo. |
| 77 | |
| 78 | Je hebt nu een werkende kerberos omgeving die authenticeert naar de AD server. |
| 79 | |
| 80 | = Samba config = |
| 81 | |
| 82 | 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: |
| 83 | {{{ |
| 84 | [Syn-3] root@proxy.psy.datux.nl /home/system/samba# ls -la |
| 85 | total 12 |
| 86 | drwxr-xr-x 4 root root 86 Apr 21 16:03 ./ |
| 87 | drwxr-xr-x 19 root root 4096 Jul 3 2007 ../ |
| 88 | drwx------ 2 root root 40 Apr 21 16:03 private/ |
| 89 | drwxr-xr-x 2 root root 107 Apr 21 15:58 shares/ |
| 90 | lrwxrwxrwx 1 root root 12 Apr 21 16:02 smb.conf -> smb_ads.conf |
| 91 | -rw-r--r-- 1 root root 719 Apr 21 16:30 smb_ads.conf |
| 92 | -rw-r--r-- 1 root root 2051 Apr 10 14:51 smb_pdc.conf |
| 93 | }}} |
| 94 | |
| 95 | Inhoud van mn config: |
| 96 | {{{ |
| 97 | [Syn-3] root@proxy.psy.datux.nl /home/system/samba# cat smb_ads.conf |
| 98 | [global] |
| 99 | workgroup = ADTEST |
| 100 | netbios name = proxy |
| 101 | realm = ADTEST.PSY.DATUX.NL |
| 102 | server string = Linux Samba Server |
| 103 | security = ads |
| 104 | encrypt passwords = Yes |
| 105 | password server = w2k3-edwin |
| 106 | log file = /var/log/samba/%m.log |
| 107 | max log size = 0 |
| 108 | socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 |
| 109 | preferred master = False |
| 110 | local master = No |
| 111 | domain master = False |
| 112 | dns proxy = No |
| 113 | wins server = 192.168.13.13 |
| 114 | winbind separator = / |
| 115 | winbind enum users = yes |
| 116 | winbind enum groups = yes |
| 117 | winbind use default domain = yes |
| 118 | idmap uid = 10000-20000 |
| 119 | idmap gid = 10000-20000 |
| 120 | }}} |
| 121 | |
| 122 | Letop dat de netbios naam overeenkomt met de Syn-3 hostnaam! |
| 123 | |
| 124 | De samba services mogen op dit moment nog down zijn. (werken toch nog niet op dit moment) |
| 125 | |
| 126 | Pas /etc/resolv.conf aan zodat de dns server van de 2003 bak gebruikt word: |
| 127 | {{{ |
| 128 | [Syn-3] root@proxy.psy.datux.nl /home/system/samba# cat /etc/resolv.conf |
| 129 | nameserver 192.168.13.13 |
| 130 | }}} |
| 131 | |
| 132 | Join het domein |
| 133 | |
| 134 | {{{ |
| 135 | [Syn-3] root@proxy.psy.datux.nl /home/system/samba# net ads join -U administrator |
| 136 | administrator's password: |
| 137 | Using short domain name -- ADTEST |
| 138 | Joined 'PROXY' to realm 'ADTEST.PSY.DATUX.NL' |
| 139 | }}} |
| 140 | |
| 141 | (Re)start samba en test of alles werkt: |
| 142 | {{{ |
| 143 | [Syn-3] root@proxy.psy.datux.nl /home/system/samba# svc -du /service/smbd/ /service/nmbd/ /service/winbindd/ |
| 144 | |
| 145 | [Syn-3] root@proxy.psy.datux.nl /home/system/samba# wbinfo -t |
| 146 | checking the trust secret via RPC calls succeeded |
| 147 | |
| 148 | [Syn-3] root@proxy.psy.datux.nl /home/system/samba# wbinfo -u |
| 149 | administrator |
| 150 | gast |
| 151 | support_388945a0 |
| 152 | krbtgt |
| 153 | edwin |
| 154 | |
| 155 | [Syn-3] root@proxy.psy.datux.nl /home/system/samba# wbinfo -g |
| 156 | BUILTIN/administrators |
| 157 | BUILTIN/users |
| 158 | domeincomputers |
| 159 | domeincontrollers |
| 160 | schema-administrators |
| 161 | ondernemingsadministrators |
| 162 | domeinadministrators |
| 163 | domeingebruikers |
| 164 | domeingasten |
| 165 | maker eigenaars groepsbeleid |
| 166 | dnsupdateproxy |
| 167 | }}} |
| 168 | |
| 169 | '''Als wbinfo -t niet werkt, komt waarschijnlijk de hostname/domain van de server niet overeen met de rest!''' |
| 170 | |
| 171 | Als je zover bent heb je je samba server succesvol gejoined aan de AD server. double-w00t. |
| 172 | |
| 173 | |
| 174 | = nss config = |
| 175 | |
| 176 | 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: |
| 177 | |
| 178 | Wijzig nsswitch.conf: |
| 179 | {{{ |
| 180 | [Syn-3] root@proxy.psy.datux.nl ~# cat /etc/nsswitch.conf |
| 181 | ... |
| 182 | passwd: files winbind ldap |
| 183 | group: files winbind ldap |
| 184 | ... |
| 185 | }}} |
| 186 | |
| 187 | Als alles goed gegaan is kun je nu de volgende dingen doen: |
| 188 | {{{ |
| 189 | [Syn-3] root@proxy.psy.datux.nl ~# id edwin |
| 190 | uid=10000(edwin) gid=10004(domeingebruikers) groups=10004(domeingebruikers) |
| 191 | |
| 192 | [Syn-3] root@proxy.psy.datux.nl ~# id administrator |
| 193 | uid=10001(administrator) gid=10004(domeingebruikers) groups=10004(domeingebruikers),10007(schema-administrators),10008(ondernemingsadministrators),10009(domeinadministrators),10011(maker eigenaars groepsbeleid),10002(BUILTIN/administrators) |
| 194 | |
| 195 | [Syn-3] root@proxy.psy.datux.nl ~# getent passwd |
| 196 | ... |
| 197 | administrator:*:10001:10004:Administrator:/home/ADTEST/administrator:/bin/false |
| 198 | gast:*:10002:10010:Gast:/home/ADTEST/gast:/bin/false |
| 199 | support_388945a0:*:10003:10004:SUPPORT_388945a0:/home/ADTEST/support_388945a0:/bin/false |
| 200 | krbtgt:*:10004:10004:krbtgt:/home/ADTEST/krbtgt:/bin/false |
| 201 | edwin:*:10000:10004:edwin eefting:/home/ADTEST/edwin:/bin/false |
| 202 | ... |
| 203 | |
| 204 | [Syn-3] root@proxy.psy.datux.nl ~# getent group |
| 205 | ... |
| 206 | domeincomputers:x:10005: |
| 207 | domeincontrollers:x:10006: |
| 208 | schema-administrators:x:10007:administrator |
| 209 | ondernemingsadministrators:x:10008:administrator |
| 210 | domeinadministrators:x:10009:administrator |
| 211 | domeingebruikers:x:10004: |
| 212 | domeingasten:x:10010: |
| 213 | maker eigenaars groepsbeleid:x:10011:administrator |
| 214 | dnsupdateproxy:x:10012: |
| 215 | BUILTIN/administrators:x:10002:administrator |
| 216 | BUILTIN/users:x:10003: |
| 217 | ... |
| 218 | }}} |
| 219 | |
| 220 | Als je zover bent maakt linux al actief gebruik van AD. |
| 221 | |
| 222 | Als de windows server nu crashed, zal het resolven van usernames en groups dus niet goed lukken. |
| 223 | |
| 224 | = Squid configuratie = |
| 225 | |
| 226 | == Windows instellingen == |
| 227 | |
| 228 | Nu is het simpel nog een kwestie van squid configureren. |
| 229 | |
| 230 | 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. |
| 231 | |
| 232 | We zien dat Windows de proxy nu anoniem gebruikt, zoals normaal is: |
| 233 | {{{ |
| 234 | [Syn-3] root@proxy.psy.datux.nl ~# tail -f /var/log/squid/access.log |
| 235 | 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 |
| 236 | 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 |
| 237 | 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 |
| 238 | ... |
| 239 | }}} |
| 240 | |
| 241 | == NTLM authenticatie instellen == |
| 242 | |
| 243 | 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: |
| 244 | {{{ |
| 245 | [Syn-3] root@proxy.psy.datux.nl /# ntlm_auth --username=edwin |
| 246 | password: |
| 247 | NT_STATUS_WRONG_PASSWORD: Wrong Password (0xc000006a) |
| 248 | [Syn-3] root@proxy.psy.datux.nl /# ntlm_auth --username=edwin |
| 249 | password: |
| 250 | NT_STATUS_OK: Success (0x0) |
| 251 | }}} |
| 252 | |
| 253 | Set daarna de permissies van de winbindd socket, zodat squid er bij kan: |
| 254 | {{{ |
| 255 | [Syn-3] root@proxy.psy.datux.nl ~# chgrp nogroup /var/cache/samba/winbindd_privileged/ |
| 256 | }}} |
| 257 | |
| 258 | |
| 259 | Nu is het tijd om /home/system/proxy/squid.conf te wijzigen. |
| 260 | |
| 261 | Voeg als extra authenticatie ntlm toe. Deze moet VOOR basic komen! |
| 262 | {{{ |
| 263 | auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp |
| 264 | auth_param ntlm children 50 |
| 265 | }}} |
| 266 | 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. |
| 267 | |
| 268 | |
| 269 | Verander auth_basic van ldap naar ntlm_auth: |
| 270 | {{{ |
| 271 | auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic |
| 272 | auth_param basic children 50 |
| 273 | auth_param basic realm Squid proxy-caching web server |
| 274 | auth_param basic credentialsttl 5 hour |
| 275 | }}} |
| 276 | Hierdoor kunnen niet-AD clients zich nog gewoon met de vervelende popup authentificeren. |
| 277 | |
| 278 | |
| 279 | Voeg een nieuwe acl toe aan de reeds bestaande acl lijst: |
| 280 | {{{ |
| 281 | acl NTLMUsers proxy_auth REQUIRED |
| 282 | }}} |
| 283 | |
| 284 | Activeer de authenticatie daadwerkelijk door een nieuwe regel toe te voegen aan de http_access lijst: |
| 285 | {{{ |
| 286 | http_access allow NTLMUsers |
| 287 | }}} |
| 288 | Deactiveren van authenticatie kan nu door hier weer een hekje voor te zetten. |
| 289 | |
| 290 | Restart squid en test of het werkt: |
| 291 | {{{ |
| 292 | [Syn-3] root@proxy.psy.datux.nl /home/system/proxy/filterlists# svcstart /service/squid/ |
| 293 | Starting /service/squid/ ...DONE |
| 294 | |
| 295 | [Syn-3] root@proxy.psy.datux.nl /home/system/proxy/filterlists# tail -f /var/log/squid/access.log |
| 296 | ... |
| 297 | 1208804648.362 1 192.168.13.14 TCP_DENIED/407 1752 GET http://nl.msn.com/ - NONE/- text/html |
| 298 | 1208804648.367 1 192.168.13.14 TCP_DENIED/407 1908 GET http://nl.msn.com/ - NONE/- text/html |
| 299 | 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 |
| 300 | 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 |
| 301 | 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 |
| 302 | 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 |
| 303 | 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 |
| 304 | 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 |
| 305 | 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 - |
| 306 | 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 - |
| 307 | }}} |
| 308 | |
| 309 | Score!! |