কার্বেরোস এবং উইন্ডোজ 2008/2003/7 / এক্সপি সহ অনুমোদনের জন্য স্কুইড পাচ্ছেন


15

এটি আমি সম্প্রতি সেটআপ করেছি এবং এটি বেশ বড় ব্যথা ছিল। আমার পরিবেশটি অদৃশ্যভাবে একটি উইন্ডোজ 2008 সার্ভারের বিরুদ্ধে একটি উইন্ডোজ 7 ক্লায়েন্টকে প্রমাণীকরণের জন্য স্কুইড পাচ্ছিল। এনটিএলএম আসলে কোনও বিকল্প নয়, কারণ এটি ব্যবহারের জন্য প্রতিটি ক্লায়েন্টের জন্য একটি রেজিস্ট্রি পরিবর্তন প্রয়োজন।

এমএস উইন্ডোজ 2000 সাল থেকে কার্বেরোসকে প্রস্তাব দিচ্ছে, তাই শেষ পর্যন্ত এই প্রোগ্রামটি নিয়ে আসার সময় এসেছে।

এই কাজটি পেতে সহায়তা করার জন্য স্কুইড মেলিং তালিকাগুলির মার্কাস মোলারকে অনেক অনেক ধন্যবাদ।

উত্তর:


15

এটি স্কুইড ৩.০ এর সাথে সেটআপ, স্কুইড ৩.১ এর সাথেও পরীক্ষা করা হয়েছে এবং স্কুইড ২. 2. এর সাথে কাজ করা উচিত। আপনার উইন্ডোজ ব্যবহারকারীকে অবশ্যই অ্যাক্টিভ ডিরেক্টরিতে (এসকিউর ক্ষেত্রে) এসকিউইউডি_উইএসআরএস গ্রুপের সদস্য হতে হবে।

উইন্ডোজের পক্ষ থেকে, উইন্ডোজ এক্সপি এবং উইন্ডোজ 2007 এর উইন্ডোজ 2008 এর বিরুদ্ধে এবং উইন্ডোজ এক্সপি উইন্ডোজ 2003 এর বিপরীতে পরীক্ষা করা হয়েছিল।

নোট করুন যে প্রায় প্রতিটি পদক্ষেপে এগিয়ে যাওয়ার আগে এটির একটি প্রয়োজন।

আপনার যদি সমস্যা হয় তবে ডিএনএস হ'ল সর্বদা প্রথম স্থান। উভয় উইন্ডোজ মেশিনই লিনাক্স সার্ভারকে নাম (এবং বিপরীতে) দিয়ে পিং করতে সক্ষম হওয়া উচিত এবং আপনার ipconfig /flushdnsসময়ে সময়ে চালনার প্রয়োজন হতে পারে । একটি রিবুট খুব সহায়তা করতে পারে, আপনি যদি সত্যই নিশ্চিত হতে চান যে চারপাশে কোনও ক্রাফ্ট নেই।

ডোমেন তথ্য

  • উইন্ডোজ ডোমেন: dom.local
  • ডোমেন সার্ভার: server.dom.local,172.17.3.11
  • সেন্টওএস স্কুইড সার্ভার: centos.dom.local,172.17.3.10

ডোমেন সার্ভার সেটআপ

  1. dom.localডিএনএস কনফিগারেশনে বিপরীত অঞ্চল তৈরি করুন ।
  2. centos.dom.localনির্দেশ করার জন্য স্ট্যাটিক ('এ') রেকর্ড তৈরি করুন 172.17.3.10, আপনি যদি বিপরীত পিটিআর সেটআপ করতে চান তবে জিজ্ঞাসা করা হলে হ্যাঁ নির্বাচন করুন ।

উইন্ডোজ 2008

উইন্ডোজ 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ডোমেইন কন্ট্রোলার ডিএনএস বিন্দু কনফিগার করতে, এর হোস্টনাম সেট centos.dom.local

রিবুট

চেক বিপরীতে ডিএনএস কাজ করছে: $ dig -x 172.17.3.10

centos.dom.localআপনার উত্তর বিভাগে পাওয়া উচিত । আপনি যদি না থাকেন তবে চালিয়ে যাওয়ার কোনও মানে নেই । কার্বেরোস প্রমাণীকরণ ডিএনএস সঠিকভাবে কনফিগার করা ছাড়া কাজ করবে না

কার্বারোস

আপনার 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

স্কুইড.কম এ উপযুক্ত পরামিতি সেটআপ করুন:

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। আপনি সম্পূর্ণরূপে যোগ্যতাসম্পন্ন ডোমেন নাম এবং আইপি ঠিকানা নয় এটি গুরুত্বপূর্ণ।


মিস্কিটিলকে fuhm.net/software/msktutil
গুরুবার্ট

1

KRB5_KTNAME এনভায়রনমেন্ট ভেরিয়েবল সেট করতে /etc/init.d/squid সম্পাদনা করার পরিবর্তে আপনার কেবল লাইনগুলি / etc / sysconfig / স্কুইডে রেখে দেওয়া উচিত। যেহেতু প্রতিটি স্ক্রিপ্টে init স্ক্রিপ্ট উত্স / ইত্যাদি / সিসকনফিগ / স্কুইড এটি 2 দুটি লাইন বেছে নেবে।

অতিরিক্তভাবে, আপনাকে কেডিসি এবং কাদমিন সার্ভার হিসাবে পরিষ্কারভাবে হোস্টগুলির নামকরণ করার দরকার নেই, এটি আপনার সক্রিয় ডিরেক্টরি ডোমেনের জন্য কেবল ডিএনএস ডোমেন প্রবেশ করাই যথেষ্ট। এর দুটি কারণ রয়েছে:

  1. কেডিসি এবং ক্যাডমিন সার্ভার সনাক্ত করতে উইন্ডোজ ক্লায়েন্টগুলি একই এসআরভি রেকর্ড ব্যবহার করতে এমআইটি কার্বেরোস এবং হিমডাল কার্বেরোস উভয়ই যথেষ্ট স্মার্ট
  2. DNS ডোমেন (আপনার উদাহরণে dom.local) আপনার ডোমেন নিয়ন্ত্রকদের দিকে ইঙ্গিত করে একটি রেকর্ড ফিরিয়ে দেবে

ভাল পয়েন্ট। যদিও এটি সেন্টোজে সেটআপ করা হয়েছিল, আমি ডেবিয়ান থেকে এসেছি, যার সিস্কনফিগ নেই। সেখানে লাইনগুলি রেখে কোনও বিশেষ সুবিধা আছে? আপনি কোন ভাগে ডিসি নির্দিষ্ট করতে হবে না বলে মনে করেন? আমি জানি এটি সম্ভবত প্রতিটি অংশই হওয়া উচিত, তবে ডিএনএস এই প্রক্রিয়া চলাকালীন সেটআপ করার জন্য এমন ব্যথা ছিল যে আমি কম তথ্য না দিয়ে আরও তথ্য দেওয়া আরও সহজ বলেছি।
হারলে

/Etc/init.d/squid সম্পাদনা না করার কারণ হ'ল: ক) এটি রেড হ্যাট (এবং সেহেতু CentOS) কাজ করার পদ্ধতি। বেশিরভাগ আরএইচ / সেন্টোস অ্যাডমিনিস্ট্রেটররা init স্ক্রিপ্টগুলির পরিবর্তে / etc / sysconfig ফাইলগুলিতে এ জাতীয় পছন্দসই সন্ধান করবেন খ) আপনি নিজে নিজে init স্ক্রিপ্ট সম্পাদনা করেন তবে প্যাকেজ আপগ্রেডগুলিতে আপনার পরিবর্তনগুলি স্ক্রুড হয়ে যাওয়ার ঝুঁকি রয়েছে (হয় কোনও বাগ আরএইচ বা স্কুইডের নতুন সংস্করণ থেকে ঠিক করুন) (ডিসি প্রশ্নের পৃথক মন্তব্যে উত্তর দেওয়া দরকার)

ডিসি প্রশ্নের হিসাবে, প্রশ্নগুলির লাইনগুলি হ'ল "কেডিসি = 172.17.3.11:88" এবং "অ্যাডমিন_সভার = 172.17.3.11:7491"। আপনি "kdc = dom.local" এবং "প্রশাসক = dom.local" এর সাথে তাদের প্রতিস্থাপন করতে পারেন। আপনার লিনাক্স মেশিনের একটি "হোস্ট-টো ডম.লোকাল" আমাদের ডোমেন নিয়ন্ত্রকদের আইপি ঠিকানাগুলি ফেরত পাঠানো উচিত; যেহেতু আপনার সমস্ত ডোমেন নিয়ন্ত্রকগুলি কেডিসি এমনকি এমনকি কার্বেরোস লাইব্রেরির এমন একটি সংস্করণ যা এসআরভি আরআর সমর্থন করে না কেডিসিগুলি খুঁজতে কোনও সমস্যা হওয়া উচিত নয়, যদিও কেউ কেন সেই পুরানো কার্বেরোস লাইব্রেরি ব্যবহার করবেন না তা আমার বাইরে।

0

এই টুটো অনুসরণ করে আমি ফেডোরা 12 সার্ভারে কাজ করতে স্কুইড পেতে পারি। আপনার লিনাক্স সার্ভারে ফায়ারওয়ালটি পরীক্ষা করুন (পোর্ট 3128 সক্ষম করুন) এবং এসইএলিনাক্সকে অনুমতি মোডে সেট করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.