Ntlm_auth No such file or directory-Squid mit Squidguard und SSO an Windows-AD
-
Hallo,
mein Ziel ist die Installation von Squid mit Squidguard auf einer pfsense 2.2. Ich bin hauptsächlich nach diesem Thread vorgegangen:https://forum.pfsense.org/index.php?topic=58700.0.
Aber eben gleich auf einer pfsense 2.2 da die verwendeten Pakete von FreeBSD nicht mehr gepflegt werden. Ausserdem scheint mir auch Dansguardian kein aktives Projekt mehr zu sein.Ich find ich bin schon weit gekommen, stecke jetzt aber jetzt dabei fest das Zeilen in der squid.conf wie:
auth_param ntlm program /usr/local/bin/ntlm_auth –helper-protocol=squid-2.5-ntlmssp
Zu dem Fehler "No such file or directory" führen. Obwohl ein Aufruf von:
/usr/local/bin/ntlm_auth
Auf der shell funktioniert. Ich hab das ganze auch im squid-Forum gepostet: http://squid-web-proxy-cache.1019090.n4.nabble.com/ntlm-No-such-file-or-directory-td4669085.html.
Gute Hinweise bekommen, aber alle Lösungswege dort scheinen bei mir nicht zum Ziel zu führen. Vielleicht doch pfSense-spezifisch?
Auch wenns noch nicht funktioniert, hier schonmal mein Howto bis zu diesem Punkt:
Voraussetzung-
pfsense 2.2 Grundinstallation inkl. Updates. Squid und Squidguard installiert und funktionsfähig.
-
Die Uhrzeit zwischen pfsense und Windowsserver sollte gleich sein, am besten synchronisiert
-
Die pfsense muss den Windowsserver als DNS-Server verwenden.
-
Die Namensauflösung für “windowsserver” muss passen
Installation Samba und Heimdal:
#pkg install samba4 heimdal
Wenn erfolgreich dann die /etc/krb5.conf erstellen. Die Kerberos Realm werden groß geschrieben! Punkt hinter den realm beachten![logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/ksadmind.log [libdefaults] default_realm = MYDOMAIN.LOCAL. dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h forwardable = yes default_tgs_enctypes = DES-CBC-CRC DES-CBC-MD5 RC4-HMAC default_tkt_enctypes = DES-CBC-CRC DES-CBC-MD5 RC4-HMAC preferred_enctypes = DES-CBC-CRC DES-CBC-MD5 RC4-HMAC [realms] MYDOMAIN.LOCAL = { kdc = windowsserver.mydomain.local.:88 #Hier weitere domaincontroller möglich #kdc = windowsserver2.mydomain.local.:88 admin_server = windowsserver.mydomain.local.:749 default_domain = mydomain. } [domain_realm] .mydomain. = MYDOMAIN.LOCAL. mydomain. = MYDOMAIN.LOCAL. [kdc] profile = /var/heimdal/kdc.conf [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false }
Ebenso die Datei /var/heimdal/kdc.conf erstellen:
[kdcdefaults] acl_file = /var/heimdal/kadm5.acl dict_file = /usr/share/dict/words admin_keytab = /var/heimdal/kadm5.keytab v4_mode = noreauth [libdefaults] default_realm = MYDOMAIN. [realms] MYDOMAIN. = { master_key_type = des-cbc-crc supported_enctypes = des3-hmac-sha1:normal arcfourhmac: normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal des-cbc-crc:v4 des-cbc-crc:afs3 }
Und die /var/heimdal/kadm5.acl anlegen:
*/*Administrator@MYDOMAIN.LOCAL *
Die Samba-Konfigurationsdatei /usr/local/etc/smb4.conf erstellen. Bei Interfaces das LAN-Interface (sieht man z.B. per ifconfig) und den Netbiosnamen der pfsense:
[global] interfaces = e1000g0 bind interfaces only = yes netbios name = PFSENSE workgroup = MYDOMAIN realm = MYDOMAIN.LOCAL server string = Domain Proxy Server encrypt passwords = yes security = ADS password server = * log level = 3 log file = /var/log/samba/%m.log max log size = 50 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 printcap name = /etc/printcap preferred master = No dns proxy = No ldap ssl = no ; idmap uid = 10000-20000 ; idmap gid = 10000-20000 winbind use default domain = yes winbind enum users = yes winbind enum groups = yes winbind nested groups = yes ; winbind separator = \ client use spnego = yes client ntlmv2 auth = yes cups options = raw
Datei /etc/rc.conf:
samba_server_enable="YES" winbindd_enable="YES"
Scheinbar muss man hier noch ein Verzeichnis anlegen:
mkdir /var/run/samba4 /usr/local/etc/rc.d/samba_server/restart
Und dann mit folgendem Befehl Domainenmitglied werden:
/usr/local/bin/kinit myadmin@MYDOMAIN.LOCAL /usr/local/bin/net ads join -U administrator@DOMAIN.LOCAL Enter administrator@DOMAIN.LOCAL`s password: Using short domain name -- MYDOMAIN Joined 'pfsense' to dns domain 'MYDOMAIN.LOCAL'
Samba neu starten, Gruppe ändern und man sollte schon die user und Gruppen des ADs sehen:
/usr/local/etc/rc.d/samba_server restart chgrp proxy /var/db/samba4/winbindd_privileged /usr/local/bin/wbinfo -t /usr/local/bin/wbinfo -u /usr/local/bin/wbinfo -g
Und jetzt käme das Einfügen der Konfiguration in Squid was eben dann zum Fehler führt:
acl_uses_indirect_client on;follow_x_forwarded_for allow localhost; auth_param ntlm program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp; auth_param ntlm children 10; auth_param ntlm keep_alive on; acl password proxy_auth REQUIRED;
-
-
So weit, so gut! :)
Bei mir funktionierte alles, bis ich pfSense neugestartet habe. Danach kam ebenfalls "ntlm_auth No such file or directory".
Warum ging es anfangs und nach einem Neustart nicht mehr?lg Philipp
-
Ja Philipp, kann sein das ich das auch schon so erlebt habe, siehe hier:https://forum.pfsense.org/index.php?topic=58700.msg482763#msg482763
Da steht auch drin wie man diesen Fehler abstellt und weitermacht. Gelöst ist es aber nicht, hierzu ist der Beitrag von marcelloc hier recht aussagekräftig:
https://forum.pfsense.org/index.php?topic=87782.msg483244#msg483244Also mein Fazit ist das es mit Proxy und sso bei pfsense momentan ganz schlecht aussieht. Würd mich aber sehr freuen wenn jemand meinem Fazit widerspricht!
Gruß Alex