यह स्क्वीड 3.0 के साथ सेटअप है, स्क्वीड 3.1 के साथ भी परीक्षण किया गया है और स्क्वीड 2.7 के साथ काम करना चाहिए। आपका विंडोज उपयोगकर्ता सक्रिय निर्देशिका में SQUID_USERS समूह का सदस्य होना चाहिए (वैसे भी इस मामले के लिए)।
Windows ओर, Windows XP और Windows 2007 को Windows 2008 के विरुद्ध और Windows XP के विरुद्ध Windows 2003 में परीक्षण किया गया है।
ध्यान दें कि आगे बढ़ने से पहले लगभग हर कदम पर एक की आवश्यकता होती है।
यदि आपको कोई समस्या है, तो DNS हमेशा देखने में पहला स्थान होता है। दोनों विंडोज मशीनों को लिनक्स सर्वर को नाम (और इसके विपरीत) से पिंग करने में सक्षम होना चाहिए, और आपको ipconfig /flushdns
कई बार चलाने की आवश्यकता हो सकती है । एक रिबूट भी मदद कर सकता है, अगर आप वास्तव में सुनिश्चित होना चाहते हैं कि चारों ओर कोई cruft लटका हुआ नहीं है।
डोमेन जानकारी
- विंडोज डोमेन:
dom.local
- डोमेन सर्वर:
server.dom.local
,172.17.3.11
- CentOS व्यंग्य सर्वर:
centos.dom.local
,172.17.3.10
डोमेन सर्वर सेटअप
dom.local
DNS कॉन्फिगर में रिवर्स ज़ोन बनाएं ।
centos.dom.local
इंगित करने के लिए स्टैटिक ('ए') रिकॉर्ड बनाएं 172.17.3.10
, हां यह पूछे जाने पर कि क्या आप रिवर्स पीटीआर को भी सेटअप करना चाहते हैं।
विंडोज 2008
Windows 2008 सर्वर के लिए आपको हॉटफ़िक्स 951191 स्थापित करने की आवश्यकता है ।
लिनक्स सेटअप
मामूली पैकेज
पैकेज स्थापित करें
$ yum install -y cyrus-sasl-gssapi cvs autoconf automake openldap openldap-devel krb5-workstation krb5-devel gcc-c++
स्थापित करें msktutil
। इसे बनाने से पहले आपको इसे पैच करना होगा।
$ wget http://download.systemimager.org/~finley/msktutil/msktutil_0.3.16.orig.tar.gz
$ wget http://download.systemimager.org/~finley/msktutil/msktutil_0.3.16-7.diff.gz
$ gunzip msktutil_0.3.16-7.diff.gz
$ tar zxf msktutil_0.3.16.orig.tar.gz
$ cd msktutil-0.3.16
$ patch < ../msktutil_0.3.16-7.diff
$ ./configure && make && make install
नवीनतम स्क्वीड _
अंकुश _
ldap संकलित करें ।
$ cvs -z3 -d:pserver:anonymous@squidkerbauth.cvs.sourceforge.net:/cvsroot/squidkerbauth co -P squid_kerb_ldap
$ cd squid_kerb_ldap
$ ./configure && make
डीएनएस
system-config-network
डोमेन नियंत्रक के लिए DNS बिंदु को कॉन्फ़िगर करने के लिए उपयोग करें , होस्टनाम को सेट करें centos.dom.local
।
रीबूट
रिवर्स रिवर्स DNS काम कर रहा है: $ dig -x 172.17.3.10
आपको centos.dom.local
उत्तर अनुभाग में मिलना चाहिए । यदि आप नहीं करते तो कोई बात नहीं है । Kerberos प्रमाणीकरण DNS ठीक से कॉन्फ़िगर किए बिना काम नहीं करेगा ।
करबरोस
आपका krb.conf
कुछ इस तरह दिखना चाहिए:
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = DOM.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
# For Windows XP:
default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
permitted_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
# For Windows 2007:
# default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
# default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
# permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
forwardable = yes
[realms]
DOM.LOCAL = {
kdc = 172.17.3.11:88
admin_server = 172.17.3.11:7491
default_domain = dom.local
}
[domain_realm]
.dom.local = DOM.LOCAL
dom.local = DOM.LOCAL
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
कीटाब बनाएँ:
$ kinit administrator
$ msktutil -c -b "CN=COMPUTERS" -s HTTP/centos.dom.local -h centos.dom.local -k /etc/HTTP.keytab --computer-name centos-http --upn HTTP/centos.dom.local --server server.dom.local --verbose
विंडोज 2008 के लिए आप जोड़ने की जरूरत --enctypes 28
करने के लिए msktutil
आदेश।
स्क्वीड
स्क्वीड स्थापित करें:
$ wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE18.tar.gz
$ tar zxvf squid-3.0.STABLE18.tar.gz
$ cd squid-3.0.STABLE18
$ ./configure --enable-negotiate-auth-helpers=squid_kerb_auth --enable-stacktraces --prefix=/opt/squid-3.0
$ make
$ make install
$ cp helpers/negotiate_auth/squid_kerb_auth/squid_kerb_auth /opt/squid-3.0/sbin/
$ cp ~/squid_kerb_ldap/squid_kerb_ldap /opt/squid-3.0/sbin/
$ cd /opt/squid-3.0/
$ mv etc/squid.conf etc/squid.conf.ORIG
Squid.conf में उपयुक्त पैरामीटर सेट करें:
auth_param negotiate program /opt/squid-3.0/sbin/squid_kerb_auth -d -s HTTP/centos.dom.local
auth_param negotiate children 10
auth_param negotiate keep_alive o
external_acl_type SQUID_KERB_LDAP ttl=3600 negative_ttl=3600 %LOGIN /opt/squid-3.0/sbin/squid_kerb_ldap -d -g SQUID_USERS
acl AUTHENTICATED proxy_auth REQUIRED
acl LDAP_GROUP_CHECK external SQUID_KERB_LDAP
acl localnet src 172.17.3.0/24 # RFC1918 possible internal network
#http_access allow localnet
#http_access allow AUTHENTICATED
http_access allow LDAP_GROUP_CHECK
cache_dir ufs /var/cache/squid-3.0 100 16 256
access_log /var/log/squid-3.0/access.log squid
cache_log /var/log/squid-3.0/cache.log
cache_store_log /var/log/squid-3.0/store.log
pid_filename /var/run/squid-3.0.pid
cache_effective_user squid
cache_effective_group squid
coredump_dir /var/cache/squid-3.0
उपयोगकर्ता और निर्देशिकाओं को सेट करें:
$ chown -R squid:squid /opt/squid-3.0/
$ mkdir /var/cache/squid-3.0
$ chown -R squid:squid /var/cache/
$ mkdir /var/log/squid-3.0
$ chown -R squid:squid /var/log/squid-3.0/
$ chown squid:squid /etc/HTTP.keytab
कैश बनाएँ:
$ /opt/squid-3.0/sbin/squid -z
इित पट
अब यह महत्वपूर्ण है: स्क्वीड को ठीक से चलाने के लिए कुछ पर्यावरण चर सेटअप की आवश्यकता है। ऐसा करने का सबसे अच्छा तरीका एक init स्क्रिप्ट का उपयोग करना है। यहाँ थोड़ा संपादित CentOS एक है:
#!/bin/bash
# squid This shell script takes care of starting and stopping
# Squid Internet Object Cache
#
# chkconfig: - 90 25
# description: Squid - Internet Object Cache. Internet object caching is \
# a way to store requested Internet objects (i.e., data available \
# via the HTTP, FTP, and gopher protocols) on a system closer to the \
# requesting site than to the source. Web browsers can then use the \
# local Squid cache as a proxy HTTP server, reducing access time as \
# well as bandwidth consumption.
# pidfile: /var/run/squid-3.0.pid
# config: /opt/squid-3.0/etc/squid.conf
PATH=/usr/bin:/sbin:/bin:/usr/sbin
export PATH
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# don't raise an error if the config file is incomplete
# set defaults instead:
SQUID_OPTS=${SQUID_OPTS:-"-D"}
SQUID_PIDFILE_TIMEOUT=${SQUID_PIDFILE_TIMEOUT:-20}
SQUID_SHUTDOWN_TIMEOUT=${SQUID_SHUTDOWN_TIMEOUT:-100}
KRB5_KTNAME=/etc/HTTP.keytab
export KRB5_KTNAME
# determine the name of the squid binary
[ -f /opt/squid-3.0/sbin/squid ] && SQUID=/opt/squid-3.0/sbin/squid
prog="$SQUID"
# determine which one is the cache_swap directory
CACHE_SWAP=`sed -e 's/#.*//g' /opt/squid-3.0/etc/squid.conf | \
grep cache_dir | awk '{ print $3 }'`
[ -z "$CACHE_SWAP" ] && CACHE_SWAP=/var/spool/squid-3.0
RETVAL=0
start() {
#check if the squid conf file is present
if [ ! -f /opt/squid-3.0/etc/squid.conf ]; then
echo "Configuration file /opt/squid-3.0/etc/squid.conf missing" 1>&2
exit 6
fi
. /etc/sysconfig/squid
# don't raise an error if the config file is incomplete.
# set defaults instead:
SQUID_OPTS=${SQUID_OPTS:-"-D"}
SQUID_PIDFILE_TIMEOUT=${SQUID_PIDFILE_TIMEOUT:-20}
SQUID_SHUTDOWN_TIMEOUT=${SQUID_SHUTDOWN_TIMEOUT:-100}
if [ -z "$SQUID" ]; then
echo "Insufficient privilege" 1>&2
exit 4
fi
for adir in $CACHE_SWAP; do
if [ ! -d $adir/00 ]; then
echo -n "init_cache_dir $adir... "
$SQUID -z -F -D >> /var/log/squid-3.0/squid.out 2>&1
fi
done
echo -n $"Starting $prog: "
$SQUID $SQUID_OPTS >> /var/log/squid-3.0/squid.out 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
timeout=0;
while : ; do
[ ! -f /var/run/squid-3.0.pid ] || break
if [ $timeout -ge $SQUID_PIDFILE_TIMEOUT ]; then
RETVAL=1
break
fi
sleep 1 && echo -n "."
timeout=$((timeout+1))
done
fi
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/squid-3.0
[ $RETVAL -eq 0 ] && echo_success
[ $RETVAL -ne 0 ] && echo_failure
echo
return $RETVAL
}
stop() {
. /etc/sysconfig/squid
# don't raise an error if the config file is incomplete.
# set defaults instead:
SQUID_SHUTDOWN_TIMEOUT=${SQUID_SHUTDOWN_TIMEOUT:-100}
echo -n $"Stopping $prog: "
$SQUID -k check >> /var/log/squid-3.0/squid.out 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ] ; then
$SQUID -k shutdown &
rm -f /var/lock/subsys/squid-3.0
timeout=0
while : ; do
[ -f /var/run/squid-3.0.pid ] || break
if [ $timeout -ge $SQUID_SHUTDOWN_TIMEOUT ]; then
echo
return 1
fi
sleep 2 && echo -n "."
timeout=$((timeout+2))
done
echo_success
echo
else
echo_failure
echo
fi
return $RETVAL
}
reload() {
. /etc/sysconfig/squid
# don't raise an error if the config file is incomplete.
# set defaults instead:
SQUID_OPTS=${SQUID_OPTS:-"-D"}
$SQUID $SQUID_OPTS -k reconfigure
}
restart() {
stop
start
}
condrestart() {
[ -e /var/lock/subsys/squid-3.0 ] && restart || :
}
rhstatus() {
status $SQUID && $SQUID -k check
}
probe() {
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
condrestart)
condrestart
;;
status)
rhstatus
;;
probe)
exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|reload|restart|condrestart}"
exit 2
esac
exit $?
ये महत्वपूर्ण लाइनें हैं:
KRB5_KTNAME=/etc/HTTP.keytab
export KRB5_KTNAME
ग्राहक मशीन
centos.dom.local
पोर्ट का उपयोग करके अपने प्रॉक्सी को सर्वर पर सेट करें 3128
। यह महत्वपूर्ण है कि आप पूरी तरह से योग्य डोमेन नाम का उपयोग करें और आईपी पते का नहीं।