ค้นหาเว็บไซต์

การติดตั้งและกำหนดค่า TACACS+ ด้วย Cisco Router บน Debian 8 Jessie


เทคโนโลยีในปัจจุบันอาศัยอุปกรณ์เครือข่ายเป็นอย่างมากและการกำหนดค่าที่เหมาะสมของอุปกรณ์เครือข่ายนั้น ผู้ดูแลระบบได้รับมอบหมายให้ทำให้แน่ใจว่าการเปลี่ยนแปลงการกำหนดค่าไม่เพียงแต่ได้รับการทดสอบอย่างละเอียดก่อนการใช้งาน แต่ยังรวมถึงการเปลี่ยนแปลงการกำหนดค่าใดๆ ที่ดำเนินการโดยบุคคลที่ได้รับอนุญาตให้ทำการเปลี่ยนแปลง ตลอดจนตรวจสอบให้แน่ใจว่าการเปลี่ยนแปลงได้รับการบันทึกไว้

หลักการรักษาความปลอดภัยนี้เรียกว่า AAA (Triple-A) หรือ การตรวจสอบสิทธิ์ การอนุญาต และ การบัญชี มีระบบที่โดดเด่นมากสองระบบที่นำเสนอฟังก์ชันการทำงานระดับ AAA สำหรับผู้ดูแลระบบเพื่อรักษาความปลอดภัยในการเข้าถึงอุปกรณ์และเครือข่ายที่อุปกรณ์เหล่านั้นให้บริการ

RADIUS (บริการผู้ใช้โทรเข้าการเข้าถึงระยะไกล) และ TACACS+ (ระบบควบคุมการเข้าถึงตัวควบคุมการเข้าถึงเทอร์มินัล Plus)

รัศมี เดิมใช้เพื่อตรวจสอบสิทธิ์ผู้ใช้ในการเข้าถึงเครือข่าย ซึ่งตรงกันข้ามกับ TACACS โดยที่ TACACS มักใช้สำหรับการดูแลระบบอุปกรณ์ ความแตกต่างที่สำคัญประการหนึ่งระหว่างโปรโตคอลทั้งสองนี้คือความสามารถของ TACACS ในการแยกฟังก์ชัน AAA ออกเป็นฟังก์ชันอิสระ

ประโยชน์ของการแยก TACACS ของฟังก์ชัน AAA ก็คือสามารถควบคุมความสามารถของผู้ใช้ในการรันคำสั่งบางอย่างได้ นี่เป็นข้อได้เปรียบอย่างมากสำหรับองค์กรที่ต้องการให้เจ้าหน้าที่เครือข่ายหรือผู้ดูแลระบบไอทีคนอื่นๆ ได้รับสิทธิพิเศษในการสั่งการที่แตกต่างกันในระดับที่ละเอียดมาก

บทความนี้จะอธิบายการตั้งค่าระบบ Debian เพื่อทำหน้าที่เป็นระบบ TACACS+

การตั้งค่าสภาพแวดล้อม

  1. Debian 8 ติดตั้งและกำหนดค่าด้วยการเชื่อมต่อเครือข่าย โปรดอ่านบทความนี้เกี่ยวกับวิธีการติดตั้ง Debian 8
  2. สวิตช์เครือข่าย Cisco 2940 (อุปกรณ์ Cisco อื่นๆ ส่วนใหญ่จะใช้งานได้เช่นกัน แต่คำสั่งบนสวิตช์/เราเตอร์อาจแตกต่างกันไป)

การติดตั้งซอฟต์แวร์ TACACS+ บน Debian 8

ขั้นตอนแรกในการตั้งค่าเซิร์ฟเวอร์ TACACS ใหม่นี้คือการรับซอฟต์แวร์จากที่เก็บข้อมูล ทำได้อย่างง่ายดายด้วยการใช้คำสั่ง 'apt'


apt-get install tacacs+

คำสั่งดังกล่าวจะติดตั้งและเริ่มบริการเซิร์ฟเวอร์บนพอร์ต 49 สามารถยืนยันได้ด้วยยูทิลิตี้หลายอย่าง


lsof -i :49
netstat -ltp | grep tac

คำสั่งทั้งสองนี้ควรส่งคืนบรรทัดที่ระบุว่า TACACS กำลังฟังบนพอร์ต 49 บนระบบนี้

ณ จุดนี้ TACACS กำลังรับฟังการเชื่อมต่อบนเครื่องนี้ ถึงเวลากำหนดค่าบริการและผู้ใช้ TACACS แล้ว

การกำหนดค่าบริการ TACACS และผู้ใช้

โดยทั่วไปเป็นความคิดที่ดีที่จะผูกบริการกับที่อยู่ IP ที่เฉพาะเจาะจงหากเซิร์ฟเวอร์มีที่อยู่หลายแห่ง เพื่อให้งานนี้สำเร็จ คุณสามารถแก้ไขอ็อพชัน daemon ดีฟอลต์เพื่อระบุ IP แอดเดรสได้


nano /etc/default/tacacs+

ไฟล์นี้ระบุการตั้งค่า daemon ทั้งหมดที่ระบบ TACACS ควรเริ่มทำงาน การติดตั้งเริ่มต้นจะระบุเฉพาะไฟล์การกำหนดค่าเท่านั้น ด้วยการเพิ่มอาร์กิวเมนต์ '-B' ลงในไฟล์นี้ คุณจะสามารถใช้ที่อยู่ IP เฉพาะเพื่อให้ TACACS ฟังได้


DAEMON_OPTS="-C /etc/tacacs+/tac_plus.conf " - Original Line
DAEMON_OPTS="-C /etc/tacacs+/tac_plus.conf -B X.X.X.X " - New line, where X.X.X.X is the IP address to listen on

หมายเหตุพิเศษใน Debian: ด้วยเหตุผลบางประการที่พยายามรีสตาร์ทบริการ TACACS+ เพื่ออ่านตัวเลือก daemon ใหม่ไม่สำเร็จ (ผ่าน บริการ tacacs_plus รีสตาร์ท)

ดูเหมือนว่าปัญหาจะเกิดขึ้นเมื่อ TACACS เริ่มต้นผ่านสคริปต์ init PID จะถูกตั้งค่าแบบคงที่เป็น “PIDFILE=/var /run/tac_plus.pid ” อย่างไรก็ตาม เมื่อระบุ “-B X.X.X.X ” เป็นตัวเลือก daemon ชื่อของไฟล์ pid จะถูกเปลี่ยนเป็น “/var/run /tac_plus.pid.X.X.X.X ”.

ฉันไม่แน่ใจว่านี่เป็นข้อบกพร่องหรือไม่ แต่เพื่อต่อสู้กับสถานการณ์ชั่วคราว คุณสามารถตั้งค่า PIDFILE ด้วยตนเองในสคริปต์ init โดยเปลี่ยนบรรทัดเป็น “PIDFILE=/var/run/tac_plus.pid.X.X.X.X ” โดยที่ X.X.X.X คือที่อยู่ IP ที่ TACACS ควรรับฟัง จากนั้นเริ่มบริการด้วย:


service tacacs_plus start

เมื่อเริ่มบริการใหม่ คุณสามารถใช้คำสั่ง lsof อีกครั้งเพื่อยืนยันว่าบริการ TACACS กำลังรับฟังที่อยู่ IP ที่ถูกต้อง


lsof -i :49

ดังที่เห็นข้างต้น TACACS กำลังฟังที่อยู่ IP บนที่อยู่ IP ที่ระบุตามที่กำหนดไว้ในไฟล์ค่าเริ่มต้นของ TACACS ด้านบน ณ จุดนี้จำเป็นต้องสร้างผู้ใช้และชุดคำสั่งเฉพาะ

ข้อมูลนี้ได้รับการจัดการโดยไฟล์อื่น: '/etc/tacacs+/tac_plus.conf' เปิดไฟล์นี้ด้วยโปรแกรมแก้ไขข้อความเพื่อทำการแก้ไขที่เหมาะสม


nano /etc/tacacs+/tac_plus.conf

ไฟล์นี้เป็นที่ที่ข้อกำหนดเฉพาะของ TACACS ทั้งหมดควรอยู่ (สิทธิ์ของผู้ใช้ รายการควบคุมการเข้าถึง คีย์โฮสต์ ฯลฯ) สิ่งแรกที่ต้องสร้างคือ คีย์ สำหรับอุปกรณ์เครือข่าย

ขั้นตอนนี้มีความยืดหยุ่นมาก สามารถกำหนดค่าคีย์เดียวสำหรับอุปกรณ์เครือข่ายทั้งหมดหรือสามารถกำหนดค่าหลายคีย์ต่ออุปกรณ์ได้ ตัวเลือกนี้ขึ้นอยู่กับผู้ใช้ แต่คู่มือนี้จะใช้คีย์เดียวเพื่อความเรียบง่าย


key = "super_secret_TACACS+_key"

เมื่อกำหนดค่าคีย์แล้ว ควรสร้าง กลุ่ม เพื่อกำหนดสิทธิ์ที่ผู้ใช้จะได้รับมอบหมายในภายหลัง การสร้างกลุ่มทำให้การมอบหมายสิทธิ์ง่ายขึ้นมาก ด้านล่างนี้เป็นตัวอย่างของการกำหนดสิทธิ์ผู้ดูแลระบบแบบเต็ม


group = admins {
        default service = permit
        service = exec {
                priv-lvl = 15
        }
}

  1. ชื่อกลุ่มถูกกำหนดโดยบรรทัด “กลุ่ม=ผู้ดูแลระบบ ” โดยมีผู้ดูแลระบบเป็นชื่อกลุ่ม
  2. บรรทัด “บริการเริ่มต้น=อนุญาต ” ระบุว่าหากคำสั่งไม่ได้ถูกปฏิเสธอย่างชัดเจน ให้อนุญาตโดยปริยาย
  3. บริการ=exec { priv-lvl=15 } ” อนุญาตระดับสิทธิ์ 15 ในโหมด exec บนอุปกรณ์ Cisco (ระดับสิทธิ์ 15 เป็นระดับสูงสุดใน อุปกรณ์ของซิสโก้)

ตอนนี้จำเป็นต้องกำหนดผู้ใช้ให้กับกลุ่มผู้ดูแลระบบ


user = rob {
       member = admins
       login = des mjth124WPZapY
}

  1. “user=rob ” stanza อนุญาตให้ชื่อผู้ใช้ rob เข้าถึงทรัพยากรบางอย่าง
  2. “สมาชิก=ผู้ดูแลระบบ ” บอกให้ TACACS+ อ้างถึงกลุ่มก่อนหน้านี้ที่เรียกว่าผู้ดูแลระบบเพื่อดูรายการสิ่งที่ผู้ใช้นี้ได้รับอนุญาตให้ทำ
  3. บรรทัดสุดท้าย “login=des mjth124WPZapY ” เป็นรหัสผ่านที่เข้ารหัสสำหรับผู้ใช้รายนี้ในการตรวจสอบสิทธิ์ (อย่าลังเลที่จะใช้แครกเกอร์เพื่อหาตัวอย่างรหัสผ่านที่ “ซับซ้อน” ขั้นสุดยอดนี้)!

ข้อสำคัญ: โดยทั่วไปแนวทางปฏิบัติที่ดีที่สุดในการวางรหัสผ่านที่เข้ารหัสไว้ในไฟล์นี้แทนที่จะเป็นข้อความธรรมดา เนื่องจากจะเพิ่มความปลอดภัยเล็กน้อยในกรณีที่มีคนควรอ่านข้อความนี้ ไฟล์และไม่จำเป็นต้องมีสิทธิ์เข้าถึง

มาตรการป้องกันที่ดีสำหรับสิ่งนี้คืออย่างน้อยก็ลบการเข้าถึงการอ่านทั่วโลกในไฟล์การกำหนดค่าด้วย สามารถทำได้โดยใช้คำสั่งต่อไปนี้:


chmod o-r /etc/tacacs+/tac_plus.conf
service tacacs_plus reload

ณ จุดนี้ฝั่งเซิร์ฟเวอร์พร้อมสำหรับการเชื่อมต่อจากอุปกรณ์เครือข่าย ไปที่สวิตช์ Cisco ทันทีและกำหนดค่าให้สื่อสารกับเซิร์ฟเวอร์ Debian TACACS+ นี้