การติดตั้งและกำหนดค่า TACACS+ ด้วย Cisco Router บน Debian 8 Jessie
เทคโนโลยีในปัจจุบันอาศัยอุปกรณ์เครือข่ายเป็นอย่างมากและการกำหนดค่าที่เหมาะสมของอุปกรณ์เครือข่ายนั้น ผู้ดูแลระบบได้รับมอบหมายให้ทำให้แน่ใจว่าการเปลี่ยนแปลงการกำหนดค่าไม่เพียงแต่ได้รับการทดสอบอย่างละเอียดก่อนการใช้งาน แต่ยังรวมถึงการเปลี่ยนแปลงการกำหนดค่าใดๆ ที่ดำเนินการโดยบุคคลที่ได้รับอนุญาตให้ทำการเปลี่ยนแปลง ตลอดจนตรวจสอบให้แน่ใจว่าการเปลี่ยนแปลงได้รับการบันทึกไว้
หลักการรักษาความปลอดภัยนี้เรียกว่า AAA (Triple-A) หรือ การตรวจสอบสิทธิ์ การอนุญาต และ การบัญชี มีระบบที่โดดเด่นมากสองระบบที่นำเสนอฟังก์ชันการทำงานระดับ AAA สำหรับผู้ดูแลระบบเพื่อรักษาความปลอดภัยในการเข้าถึงอุปกรณ์และเครือข่ายที่อุปกรณ์เหล่านั้นให้บริการ
RADIUS (บริการผู้ใช้โทรเข้าการเข้าถึงระยะไกล) และ TACACS+ (ระบบควบคุมการเข้าถึงตัวควบคุมการเข้าถึงเทอร์มินัล Plus)
รัศมี เดิมใช้เพื่อตรวจสอบสิทธิ์ผู้ใช้ในการเข้าถึงเครือข่าย ซึ่งตรงกันข้ามกับ TACACS โดยที่ TACACS มักใช้สำหรับการดูแลระบบอุปกรณ์ ความแตกต่างที่สำคัญประการหนึ่งระหว่างโปรโตคอลทั้งสองนี้คือความสามารถของ TACACS ในการแยกฟังก์ชัน AAA ออกเป็นฟังก์ชันอิสระ
ประโยชน์ของการแยก TACACS ของฟังก์ชัน AAA ก็คือสามารถควบคุมความสามารถของผู้ใช้ในการรันคำสั่งบางอย่างได้ นี่เป็นข้อได้เปรียบอย่างมากสำหรับองค์กรที่ต้องการให้เจ้าหน้าที่เครือข่ายหรือผู้ดูแลระบบไอทีคนอื่นๆ ได้รับสิทธิพิเศษในการสั่งการที่แตกต่างกันในระดับที่ละเอียดมาก
บทความนี้จะอธิบายการตั้งค่าระบบ Debian เพื่อทำหน้าที่เป็นระบบ TACACS+
การตั้งค่าสภาพแวดล้อม
- Debian 8 ติดตั้งและกำหนดค่าด้วยการเชื่อมต่อเครือข่าย โปรดอ่านบทความนี้เกี่ยวกับวิธีการติดตั้ง Debian 8
- สวิตช์เครือข่าย 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
}
}
- ชื่อกลุ่มถูกกำหนดโดยบรรทัด “กลุ่ม=ผู้ดูแลระบบ ” โดยมีผู้ดูแลระบบเป็นชื่อกลุ่ม
- บรรทัด “บริการเริ่มต้น=อนุญาต ” ระบุว่าหากคำสั่งไม่ได้ถูกปฏิเสธอย่างชัดเจน ให้อนุญาตโดยปริยาย
- “บริการ=exec { priv-lvl=15 } ” อนุญาตระดับสิทธิ์ 15 ในโหมด exec บนอุปกรณ์ Cisco (ระดับสิทธิ์ 15 เป็นระดับสูงสุดใน อุปกรณ์ของซิสโก้)
ตอนนี้จำเป็นต้องกำหนดผู้ใช้ให้กับกลุ่มผู้ดูแลระบบ
user = rob {
member = admins
login = des mjth124WPZapY
}
- “user=rob ” stanza อนุญาตให้ชื่อผู้ใช้ rob เข้าถึงทรัพยากรบางอย่าง
- “สมาชิก=ผู้ดูแลระบบ ” บอกให้ TACACS+ อ้างถึงกลุ่มก่อนหน้านี้ที่เรียกว่าผู้ดูแลระบบเพื่อดูรายการสิ่งที่ผู้ใช้นี้ได้รับอนุญาตให้ทำ
- บรรทัดสุดท้าย “login=des mjth124WPZapY ” เป็นรหัสผ่านที่เข้ารหัสสำหรับผู้ใช้รายนี้ในการตรวจสอบสิทธิ์ (อย่าลังเลที่จะใช้แครกเกอร์เพื่อหาตัวอย่างรหัสผ่านที่ “ซับซ้อน” ขั้นสุดยอดนี้)!
ข้อสำคัญ: โดยทั่วไปแนวทางปฏิบัติที่ดีที่สุดในการวางรหัสผ่านที่เข้ารหัสไว้ในไฟล์นี้แทนที่จะเป็นข้อความธรรมดา เนื่องจากจะเพิ่มความปลอดภัยเล็กน้อยในกรณีที่มีคนควรอ่านข้อความนี้ ไฟล์และไม่จำเป็นต้องมีสิทธิ์เข้าถึง
มาตรการป้องกันที่ดีสำหรับสิ่งนี้คืออย่างน้อยก็ลบการเข้าถึงการอ่านทั่วโลกในไฟล์การกำหนดค่าด้วย สามารถทำได้โดยใช้คำสั่งต่อไปนี้:
chmod o-r /etc/tacacs+/tac_plus.conf
service tacacs_plus reload
ณ จุดนี้ฝั่งเซิร์ฟเวอร์พร้อมสำหรับการเชื่อมต่อจากอุปกรณ์เครือข่าย ไปที่สวิตช์ Cisco ทันทีและกำหนดค่าให้สื่อสารกับเซิร์ฟเวอร์ Debian TACACS+ นี้