Setup working directory > mkdir /root/squid > cd /root/squid Download squid and samba > wget http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE3.tar.gz > wget http://us2.samba.org/samba/ftp/samba-latest.tar.gz Unpack squid and samba > tar -xvzf squid-2.5.STABLE3.tar.gz > tar -xvzf samba-latest.tar.gz Build samba > cd samba-2.2.8a/source > ./configure –with-winbind –with-winbind-auth-challenge > make > make install Configure samba > cd /root/samba-2.2.8.a/examples/simple > cp smb.conf /usr/local/samba/lib/ > [...]
Setup working directory
> mkdir /root/squid
> cd /root/squid
Download squid and samba
> wget http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE3.tar.gz
> wget http://us2.samba.org/samba/ftp/samba-latest.tar.gz
Unpack squid and samba
> tar -xvzf squid-2.5.STABLE3.tar.gz
> tar -xvzf samba-latest.tar.gz
Build samba
> cd samba-2.2.8a/source
> ./configure --with-winbind --with-winbind-auth-challenge
> make
> make install
Configure samba
> cd /root/samba-2.2.8.a/examples/simple
> cp smb.conf /usr/local/samba/lib/
> emacs /usr/local/samba/lib/smb.conf
Add the following lines to the [global] section of the smb.conf file:
encrypt passwords = true
workgroup = RELIABLEPENGUIN
password server = ADTEST
security = domain
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind use default domain = yes
Replace RELIABLEPENGUIN and ADTEST with the name of the domain and pdc to
be used for this install. Press Ctrl-X Ctrl-C to save and exit emacs.
Comment out entirely the [homes] and [printers] sections.
Join the server to the windows domain.
> ./smbpasswd -j RELIABLEPENGUIN -r ADTEST -U Administrator
Start the samba services:
> /usr/local/samba/bin/nmbd
> /usr/local/samba/bin/winbindd
Test and verify proper operation:
> /usr/local/samba/bin/wbinfo -t
Secret is good
If wbinfo returns "Secret is bad" then run the above command to join the domain
again.
> /usr/local/samba/bin/wbinfo -a RELIABLEPENGUIN\\Administrator%testing
plaintext password authentication succeeded
challenge/response password authentication succeeded
If you get and error then there is something wrong with the domain membership.
Now build squid:
> cd /root/squid/squid-2.5.STABLE3
> ./configure --enable-auth="ntlm,basic" \
--enable-basic-auth-helpers="winbind" \
--enable-ntlm-auth-helpers="winbind" \
--sysconfdir=/etc/squid \
--sbindir=/usr/sbin \
--bindir=/usr/sbin \
--libexecdir=/usr/lib/squid \
--datadir=/usr/share/squid \
--localstatedir=/var/run \
--mandir=/usr/share/man
> make
> make install
Test the winbind helper:
> /usr/lib/squid/wb_auth -d
/wb_auth[16936](wb_basic_auth.c:168): basic winbindd auth helper build Jun 3 2003, 12:03:17 starting up...
RELIABLEPENGUIN\Administrator testing
/wb_auth[16936](wb_basic_auth.c:129): Got 'RELIABLEPENGUIN\Administrator testing' from squid (length: 37).
/wb_auth[16936](wb_basic_auth.c:55): winbindd result: 1
/wb_auth[16936](wb_basic_auth.c:58): sending 'OK' to squid
OK
Now configure squid to use the helper.
Edit /etc/squid/squid.conf and add the following lines:
pid_filename /var/run/squid.pid
....
cache_dir ufs /var/cache/squid 5000 16 256
....
cache_access_log /var/log/squid/access.log
....
cache_log /var/log/squid/cache.log
....
cache_store_log /var/log/squid/store.log
....
auth_param ntlm program /usr/lib/squid/wb_ntlmauth
auth_param ntlm children 5
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 2 minutes
auth_param basic program /usr/lib/squid/wb_auth
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
....
acl localnetwork src 10.0.0.0/255.0.0.0
acl password proxy_auth REQUIRED
....
http_access allow password
http_access allow localnetwork
Do squid cache setup:
> cd /var/cache
> mkdir squid
> chgrp squid squid
> chmod g+w squid
> squid -z
Do squid logs setup:
> cd /var/log
> mkdir squid
> chgrp squid squid
> chmod g+w squid
Setup squid and samba to start on boot:
The stock startup file distributed by redhat with squid is sufficient
for starting squid. This file is located at /etc/init.d/squid. If the file
does not exists on the target system then copy from another system or extract
from the redhat squid rpm.
A custom startup script is required for samba since we're not acting as a file
server - just nmbd and winbind. A suitable file is located at /etc/init.d/samba.
Copy this file to the target system.
Now symlink the startup scripts into the rc dirctories:
ln -s ../init.d/squid /etc/rc3.d/S25squid
ln -s ../init.d/samba /etc/rc3.d/S24samba
ln -s ../init.d/squid /etc/rc3.d/K25squid
ln -s ../init.d/samba /etc/rc3.d/K24samba
And that does it.