การติดตั้งและกำหนดค่าเซิร์ฟเวอร์ Radius บน Ubuntu ด้วยเว็บอินเตอร์เฟส Daloradius

ฉันมีปัญหาเล็กน้อย ฉันลืมรหัสผ่านเข้าสู่ระบบอยู่ตลอดเวลา มีทั้งหมดมากมาย, เมล, เข้าสู่ระบบในหลาย ๆ ฟอรัม, บนพีซีที่ทำงาน, บน แล็ปท็อปที่บ้านบนฮาร์ดแวร์ทุกประเภท PIN ซิมการ์ด ฯลฯ เพื่อทำให้ชีวิตง่ายขึ้นสำหรับจิตวิญญาณที่ยากจนเช่นฉัน คนดีจึงได้มีเซิร์ฟเวอร์ที่สามารถจัดเก็บข้อมูลล็อกอินและรหัสผ่านได้ ความหมายคือ: คุณป้อนรหัสผ่านเข้าสู่ระบบบนชิ้นส่วนของฮาร์ดแวร์ ชิ้นส่วนของฮาร์ดแวร์ได้รับอนุญาตในภาคเหนือ ตรวจสอบข้อมูลของคุณ หากตรงกัน ทุกอย่างก็ยอดเยี่ยม ดังนั้น เมื่อสร้างหนึ่งรายการบนเซิร์ฟเวอร์เดียว คุณสามารถใช้รายการดังกล่าวบนอุปกรณ์จำนวนหนึ่งได้ เซิร์ฟเวอร์ที่ใช้กันอย่างแพร่หลายที่สุดคือ RADUIS และ TACACS+ ผมเสนอให้ตั้งความสุขนี้ไว้ เดเบียน ลินุกซ์กำหนดค่าและเชื่อมต่อกับ Cisco เราจะใช้ RADIUS


1. การติดตั้งแพ็คเกจนี้เรียกว่า freeraduis

root@darkstar:~# apt-get ติดตั้ง freeradius

จะมีเอาต์พุตยาว การสร้างคีย์ Diffie-Hellman (อย่าถ่ายโอนรหัสผ่านในรูปแบบข้อความที่ชัดเจน)

2. ตั้งค่ามีการตั้งค่ามากมายและรวมอยู่ในโฟลเดอร์ /etc/freeradius อย่าลงลึกเกินไป แต่มาลงลึกเรื่องธุรกิจและแก้ไขไฟล์ /etc/freeradius/clients.conf กันดีกว่า ประกอบด้วยข้อมูลสำหรับการลงทะเบียนไคลเอนต์ที่จะเชื่อมต่อและตรวจสอบข้อมูลการอนุญาต การเพิ่มพารามิเตอร์สำหรับสวิตช์ของเรา

ลูกค้า 192.168.10.30 (


ความลับ=ซิสโก้


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

3. ตั้งค่าฐานผู้ใช้เราแก้ไขไฟล์ /etc/freeradius/users และเพิ่มบรรทัดที่นั่น

andrey Cleartext-รหัสผ่าน:= "$ecret"

ตอบกลับข้อความ = "สวัสดีอันเดรย์"

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

“John Smith” ข้อความที่ชัดเจน-รหัสผ่าน:= "callme"

ประเภทบริการ = โทรกลับ-เข้าสู่ระบบ-ผู้ใช้

เข้าสู่ระบบ-IP-Host = timeshare1,

เข้าสู่ระบบบริการ = PortMaster,

หมายเลขโทรกลับ = "9.1-800-555-1212"

ไฟล์นี้มีเอกสารค่อนข้างดี จึงแนะนำให้อ่านก่อนนอน

4. อย่าลืมรีสตาร์ทเซิร์ฟเวอร์เพื่อใช้การตั้งค่า

root@darkstar:~# /etc/init.d/freeradius รีสตาร์ท
[ ตกลง ] การหยุด FreeRADIUS daemon: freeradius
[ ตกลง ] การเริ่ม FreeRADIUS daemon: freeradius การตรวจสอบการเข้าถึงของผู้ใช้
root@darkstar:~#

5. ตอนนี้คุณต้องกำหนดค่าไคลเอนต์ลูกค้าของเราจะเป็นสวิตช์ของ Cisco

Catalyst(config)#aaa รุ่นใหม่

5.2. เรากำหนดที่อยู่เซิร์ฟเวอร์และรหัส (รหัสผ่านที่เราตั้งไว้ในไฟล์ /etc/freeradius/clients.conf)

Catalyst (config) #radius-server โฮสต์ 192.168.10.1 คีย์ซิสโก้

5.3. เพิ่มการตรวจสอบผู้ใช้ผ่านเซิร์ฟเวอร์รัศมี

Catalyst(config)#aaa รัศมีกลุ่มเริ่มต้นการเข้าสู่ระบบการรับรองความถูกต้อง

นี่เป็นการสิ้นสุดการตั้งค่า กำลังเชื่อมต่อกับสวิตช์ของเรา

ชื่อผู้ใช้: andrey


รหัสผ่าน:


สวัสดีอันเดรย์


ตัวเร่งปฏิกิริยา>

และนี่คือข้อความที่ระบุไว้ในการตั้งค่าผู้ใช้ของเรา

  • บทช่วยสอน

จากมุมมองเชิงปฏิบัติ การจัดการเครือข่าย Wi-Fi จะสะดวกโดยการออกรหัสผ่านให้กับผู้ใช้แต่ละคน ทำให้ง่ายต่อการเข้าถึงของคุณ เครือข่ายไร้สาย- การใช้สิ่งที่เรียกว่าการรับรองความถูกต้อง WPA2 PSK เพื่อป้องกันการเข้าถึง ให้กับผู้ใช้แบบสุ่มคุณต้องเปลี่ยนคีย์และเข้าสู่ขั้นตอนการอนุญาตอีกครั้งในแต่ละบุคคล อุปกรณ์ไวไฟ- นอกจากนี้ หากคุณมีจุดเข้าใช้งานหลายจุด จะต้องเปลี่ยนกุญแจในทุกจุด และหากคุณต้องการซ่อนรหัสผ่านจากใครบางคน คุณจะต้องให้รหัสผ่านใหม่แก่พนักงานทุกคน

ลองนึกภาพสถานการณ์ - มีคนอื่นเข้ามาในสำนักงานของคุณ (ลูกค้า, คู่สัญญา?) และคุณต้องให้เขาเข้าถึงอินเทอร์เน็ต แทนที่จะให้คีย์ WPA2 แก่เขา คุณสามารถทำได้แทนเขา บัญชีแยกต่างหากซึ่งหลังจากที่เขาออกไปแล้ว ก็สามารถลบและบล็อกได้ สิ่งนี้จะทำให้คุณมีความยืดหยุ่นในการจัดการบัญชี และผู้ใช้ของคุณจะมีความสุขมาก

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

ทฤษฎีเล็กน้อย

กาลครั้งหนึ่ง วิศวกร IEEE ได้คิดค้นมาตรฐาน 802.1xขึ้นมา มาตรฐานนี้มีหน้าที่รับผิดชอบในความสามารถในการอนุญาตผู้ใช้ทันทีเมื่อเชื่อมต่อกับสื่อการรับส่งข้อมูล กล่าวอีกนัยหนึ่ง หากสำหรับการเชื่อมต่อ เช่น PPPoE คุณเชื่อมต่อกับสื่อ (สวิตช์) และสามารถถ่ายโอนข้อมูลได้แล้ว จำเป็นต้องมีการอนุญาตในการเข้าถึงอินเทอร์เน็ต ด้วย 802.1x คุณจะไม่สามารถทำอะไรได้จนกว่าคุณจะเข้าสู่ระบบ อุปกรณ์ปลายทางจะไม่อนุญาตให้คุณ สถานการณ์จะคล้ายกับจุดเชื่อมต่อ Wi-Fi การตัดสินใจยอมรับคุณเกิดขึ้นที่ เซิร์ฟเวอร์ภายนอกการอนุญาต ซึ่งอาจเป็น RADIUS, TACACS, TACACS+ เป็นต้น

คำศัพท์เฉพาะทาง

โดยทั่วไป การอนุญาตผู้ใช้ ณ จุดหนึ่งอาจเป็นประเภทต่อไปนี้:
  • เปิด - ใช้ได้กับทุกคน
  • WEP คือการเข้ารหัสแบบเก่า ใครๆ ก็มั่นใจแล้วว่าไม่ควรใช้เลย
  • WPA - ใช้ TKIP เป็นโปรโตคอลการเข้ารหัส
  • WPA2 - ใช้การเข้ารหัส AES

ตอนนี้เรามาดูตัวเลือกต่างๆ ว่าจุดเข้าใช้งานจะค้นหาได้อย่างไรว่าสามารถให้ผู้ใช้เข้าถึงเครือข่ายได้หรือไม่:

  • WPA-PSK, WPA2-PSK - กุญแจในการเข้าถึงอยู่ที่จุดนั้นเอง
  • WPA-EAP, WPA2-EAP - รหัสการเข้าถึงจะถูกตรวจสอบกับฐานข้อมูลระยะไกลบางฐานข้อมูลบนเซิร์ฟเวอร์บุคคลที่สาม

ยังมีอยู่ค่อนข้างมาก จำนวนมากวิธีการเชื่อมต่ออุปกรณ์ปลายทางเข้ากับเซิร์ฟเวอร์การอนุญาต (PEAP, TLS, TTLS...) ฉันจะไม่อธิบายพวกเขาที่นี่

แผนภาพเครือข่ายทั่วไป

เพื่อความเข้าใจที่ชัดเจนยิ่งขึ้นเราขอนำเสนอ โครงการทั่วไปของโครงการในอนาคตของเรา:

กล่าวอีกนัยหนึ่งเมื่อเชื่อมต่อกับจุด Wi-Fi ลูกค้าจะถูกขอให้ป้อนข้อมูลเข้าสู่ระบบและรหัสผ่าน ได้รับการเข้าสู่ระบบของคุณและ รหัสผ่าน Wi-Fiจุดจะส่งข้อมูลนี้ไปยังเซิร์ฟเวอร์ RADIUS ซึ่งเซิร์ฟเวอร์ตอบสนองด้วยสิ่งที่สามารถทำได้กับไคลเอนต์นี้ ประเด็นจะตัดสินใจว่าจะให้สิทธิ์เข้าถึง ลดความเร็ว หรืออย่างอื่น ขึ้นอยู่กับคำตอบ
เซิร์ฟเวอร์ของเราที่ติดตั้ง Freeradius จะต้องรับผิดชอบในการอนุญาตผู้ใช้ Freeradius เป็นการดำเนินการตามโปรโตคอล RADIUS ซึ่งในทางกลับกันเป็นการดำเนินการของ โปรโตคอลทั่วไป AAA. AAA เป็นชุดเครื่องมือสำหรับดำเนินการต่อไปนี้:
การรับรองความถูกต้อง - ตรวจสอบความถูกต้องของการเข้าสู่ระบบและรหัสผ่าน
การอนุญาต - ตรวจสอบการอนุญาตเพื่อดำเนินการบางอย่าง
การบัญชี - คำนึงถึงการกระทำของคุณในระบบ
โปรโตคอลเองส่งชื่อผู้ใช้รายการคุณลักษณะและค่าของมันให้เขา ตัวอย่างเช่น นั่นคือแอตทริบิวต์ Auth-Type:= Reject - ปฏิเสธไคลเอ็นต์นี้ และ Client-Password == “password” - เปรียบเทียบแอตทริบิวต์ในคำขอกับค่ารหัสผ่าน
โดยทั่วไปแล้วฐานข้อมูลของบัญชีและสิทธิ์สำหรับพวกเขาไม่จำเป็นต้องถูกจัดเก็บไว้ในเซิร์ฟเวอร์ RADIUS และฐานข้อมูลสามารถเป็นอะไรก็ได้ - ผู้ใช้ niks ผู้ใช้ โดเมนวินโดวส์... ใช่ อย่างน้อยก็ไฟล์ข้อความ แต่ในกรณีของเราทุกอย่างจะอยู่ในที่เดียว

การตั้งค่าพื้นฐาน

ในบทความนี้ เราจะสนใจวิธีการตรวจสอบสิทธิ์ WPA2-EAP/TLS เป็นหลัก
ประเด็นสมัยใหม่เกือบทั้งหมด การเข้าถึงอินเทอร์เน็ตไร้สายราคามากกว่า 3 พันรูเบิลรองรับเทคโนโลยีที่เราต้องการ อุปกรณ์ไคลเอนต์รองรับสิ่งนี้มากยิ่งขึ้น
ในบทความนี้ ฉันจะใช้ฮาร์ดแวร์และซอฟต์แวร์ต่อไปนี้:
  • จุดเข้าใช้งาน Ubiquiti NanoStation M2
  • เซิร์ฟเวอร์ Gentoo และ Freeradius
  • อุปกรณ์ไคลเอนต์พร้อมซอฟต์แวร์ที่ติดตั้ง ซอฟต์แวร์วินโดวส์ 7, แอนดรอยด์, ไอโอเอส

การตั้งค่าจุดเข้าใช้งาน

สิ่งสำคัญคือจุดรองรับ วิธีที่ถูกต้องการรับรองความถูกต้อง อาจจะเรียกต่างกันออกไปค่ะ อุปกรณ์ที่แตกต่างกัน: WPA-EAP, WPA2 Enterprise ฯลฯ ไม่ว่าในกรณีใด ให้เลือกการรับรองความถูกต้อง ตั้งค่าที่อยู่ IP และพอร์ตของเซิร์ฟเวอร์ RADIUS และคีย์ที่เราป้อนใน client.conf เมื่อตั้งค่า Freeradius
ฉันจะให้ภาพการกำหนดค่าแก่คุณ จุดยูบิควิติ- รายการที่ต้องเปลี่ยนแปลงจะมีเครื่องหมายถูกกำกับไว้

เซิร์ฟเวอร์ RADIUS

ไปที่คอมพิวเตอร์ Linux ของเราและติดตั้งเซิร์ฟเวอร์ RADIUS ฉันเอา freeradius มาติดตั้งบน gentoo ฉันประหลาดใจที่ไม่มีเนื้อหาบน RuNet ที่เกี่ยวข้องกับการตั้งค่า Freeradius 2 สำหรับวัตถุประสงค์ของเรา บทความทั้งหมดค่อนข้างเก่าและอ้างอิงถึงซอฟต์แวร์เวอร์ชันเก่านี้
root@localhost ~ # โผล่ออกมา -v freeradius
แค่นั้นแหละ :) เซิร์ฟเวอร์ RADIUS อาจทำงานอยู่แล้ว :) คุณสามารถตรวจสอบได้ดังนี้:
นี่คือโหมดแก้ไขข้อบกพร่อง ข้อมูลทั้งหมดจะถูกเทลงบนคอนโซล มาเริ่มตั้งค่ากันเลย
ตามปกติใน Linux การกำหนดค่าทำได้ผ่านไฟล์การกำหนดค่า ไฟล์การกำหนดค่าถูกเก็บไว้ใน /etc/raddb มาทำตามขั้นตอนการเตรียมการ - คัดลอกการกำหนดค่าต้นทาง ล้างการกำหนดค่าขยะ
root@localhost ~ # cp -r /etc/raddb /etc/raddb.olg root@localhost ~ # find /etc/raddb -type f -exec ไฟล์ () \; - grep "ข้อความ" | ตัด -d:: -f1 | xargs sed -i "/^ *\t* *#/d;/^$/d"
ต่อไปมาเพิ่มไคลเอนต์ - จุดเข้าใช้งาน เพิ่มลงในไฟล์ /etc/raddb/clients บรรทัดต่อไปนี้:
root@localhost ~ # cat /etc/raddb/clients.conf | sed "/client test-wifi/,/)/!d" client test-wifi ( ipaddr = 192.168.0.1 #IP address ของจุดที่จะเข้าถึง radius Secret = secret_key #Secret key จะต้องติดตั้งเหมือนกัน บนจุด Wi-Fi Fi need_message_authenticator = ไม่ #วิธีนี้ดีกว่า ฉันทำอย่างอื่นไม่ได้กับ D-Link บางตัว)
จากนั้น ให้เพิ่มโดเมนสำหรับผู้ใช้ มาทำให้มันเป็นค่าเริ่มต้นกันเถอะ
root@localhost ~ # cat /etc/raddb/proxy.conf | sed "/realm DEFAULT/, /^)/!d" realm DEFAULT ( type = รัศมี authhost = LOCAL acchost = LOCAL )

โดเมนใน RADIUS

ควรสังเกตว่าคุณสามารถแบ่งผู้ใช้ตามโดเมนได้ กล่าวคือ โดเมนสามารถระบุได้ในรูปแบบชื่อผู้ใช้ (เช่น user@radius) DEFAULT หมายถึงโดเมนที่ไม่ได้กำหนดไว้ NULL - ไม่มีโดเมน ขึ้นอยู่กับโดเมน (คุณสามารถพูดคำนำหน้าในชื่อผู้ใช้) คุณสามารถทำได้ การกระทำต่างๆ, วิธีการให้สิทธิ์ในการตรวจสอบความถูกต้องกับโฮสต์อื่น, ไม่ว่าจะแยกชื่อออกจากโดเมนในระหว่างการยืนยันการเข้าสู่ระบบ ฯลฯ


และสุดท้าย เพิ่มผู้ใช้ในไฟล์ /etc/raddb/users:
root@localhost ~ # cat /etc/raddb/users | sed "10,$!d" user1 Cleartext-รหัสผ่าน:= "รหัสผ่าน1" user2 Cleartext-รหัสผ่าน:= "รหัสผ่าน2" user3 Cleartext-รหัสผ่าน:= "รหัสผ่าน3"
ว้าว เราสามารถเริ่มได้!
root@localhost ~ # รัศมี -fX
เซิร์ฟเวอร์ของเรากำลังทำงานและกำลังรอการเชื่อมต่อ!

การตั้งค่าลูกค้า

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

สิ่งต่างๆ จะง่ายขึ้นสำหรับทุกคนบนอุปกรณ์ iOS ป้อนชื่อผู้ใช้และรหัสผ่านของคุณ คลิก "ยอมรับใบรับรอง" และดำเนินการต่อ

ภาพหน้าจอจาก IOS


แม้จะดูซับซ้อนกว่าเล็กน้อย แต่ในทางปฏิบัติแล้ว ทุกอย่างก็เรียบง่ายบน Android เช่นกัน มีช่องป้อนข้อมูลเพิ่มเติมอีกสองสามช่อง

ภาพหน้าจอจาก Android


ใน Windows 7 คุณจะต้องกำหนดค่าเล็กน้อย ทำตามขั้นตอนต่อไปนี้:
ไปที่ศูนย์การเชื่อมต่อไร้สายกัน

  1. ตั้งค่าพารามิเตอร์ที่จำเป็นในคุณสมบัติของการเชื่อมต่อไร้สายของคุณ
  2. ตั้งค่าพารามิเตอร์ที่จำเป็นในการตั้งค่า EAP ขั้นสูง
  3. ตั้งค่าพารามิเตอร์ที่จำเป็นในการตั้งค่าขั้นสูง พารามิเตอร์เพิ่มเติม
  4. เชื่อมต่อกับแถบงาน เครือข่าย Wi-Fiและป้อนรหัสผ่านเข้าสู่ระบบของคุณและเพลิดเพลินกับการเข้าถึง Wi-Fi

ภาพหน้าจอของ Windows

ขั้นตอนที่ 1


ขั้นตอนที่ 2

ขั้นตอนที่ 3


ขั้นตอนที่ 4

ขั้นตอนที่ 5


มินิบิลของตัวเอง

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

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

ขั้นแรก เรามาสร้างฐานข้อมูลกันก่อน:

Root@localhost ~ # psql -U postgres radius_wifi=> สร้างผู้ใช้ radius_wifi ด้วยรหัสผ่าน 1111; radius_wifi=> สร้างฐานข้อมูล radius_wifi ด้วย Owner=radius_wifi; radius_wifi=>\q

ต่อไปคุณจะต้องสร้าง ตารางที่จำเป็น- โดยทั่วไป Freeradius จะมาพร้อมกับเอกสารประกอบเกี่ยวกับตารางสคีมา ฐานต่างๆข้อมูลแม้ว่าจะอยู่ใน การแจกแจงต่างๆพวกเขาอยู่ใน สถานที่ที่แตกต่างกัน- ฉันมีสิ่งนี้เป็นการส่วนตัวใน /etc/raddb/sql/postgresql/schema.sql เพียงวางบรรทัดเหล่านี้ลงใน psql หรือเพียงแค่เรียกใช้

Root@localhost ~ # cat /etc/raddb/sql/postgresql/schema.sql | psql -U รัศมี_wifi รัศมี_wifi

ในกรณีนี้ ฉันจะเพิ่มไดอะแกรมสำหรับ Postgres ที่นี่:

สคีมาสำหรับ Postgres

root@localhost ~ # cat /etc/raddb/sql/postgresql/schema.sql | sed "/^--/d;/\/\*/d;/\*/d;/^$/d;" สร้างตาราง radacct(RadAcctId BIGSERIAL คีย์หลัก , AcctSessionId VARCHAR(64) ไม่เป็น NULL, AcctUniqueId VARCHAR (32) ไม่เป็น NULL UNIQUE, ชื่อผู้ใช้ VARCHAR (253), ชื่อกลุ่ม VARCHAR (253), Realm VARCHAR (64), NASIPAddress INET ไม่เป็น NULL, NASPortId VARCHAR (15), NASPortType VARCHAR ( 32), AcctStartTime TIMESTAMP พร้อมโซนเวลา, AcctStopTime TIMESTAMP พร้อมโซนเวลา, AcctSessionTime BIGINT, AcctAuthentic VARCHAR (32), ConnectInfo_start VARCHAR (50), ConnectInfo_stop VARCHAR (50), AcctInputOctets BIGINT, AcctOutputOctets BIGINT, CalledStationId VARCHAR (50), CallingStationId VAR CHAR (50), AcctTerminateCause VARCHAR (32), ServiceType VARCHAR (32), XAscendSessionSvrKey VARCHAR (10), FramedProtocol VARCHAR (32), FramedIPAddress INET, AcctStartDelay INTEGER, AcctStopDelay INTEGER); สร้างดัชนี radacct_active_user_idx ON radacct (ชื่อผู้ใช้, NASIPAddress, AcctSessionId) โดยที่ AcctStopTime เป็น NULL; สร้างดัชนี radacct_start_user_idx บน radacct (AcctStartTime, ชื่อผู้ใช้); สร้างตาราง radcheck (id SERIAL PRIMARY KEY, ชื่อผู้ใช้ VARCHAR (64) ไม่เป็น NULL DEFAULT "", แอตทริบิวต์ VARCHAR (64) ไม่เป็น NULL DEFAULT "", op CHAR (2) ไม่เป็น NULL DEFAULT "= =", ค่า VARCHAR (253) ไม่ใช่ ค่าเริ่มต้นเป็นโมฆะ ""); สร้างดัชนี radcheck_UserName บน radcheck (ชื่อผู้ใช้, คุณสมบัติ); สร้างตาราง radgroupcheck (id SERIAL PRIMARY KEY, GroupName VARCHAR(64) NOT NULL DEFAULT "", Attribute VARCHAR(64) NOT NULL DEFAULT "", op CHAR(2) NOT NULL DEFAULT "==", Value VARCHAR(253) NOT ค่าเริ่มต้นเป็นโมฆะ ""); สร้างดัชนี radgroupcheck_GroupName บน radgroupcheck (GroupName, Attribute); สร้างตาราง radgroupreply (id SERIAL PRIMARY KEY, GroupName VARCHAR(64) NOT NULL DEFAULT "", Attribute VARCHAR(64) NOT NULL DEFAULT "", op CHAR(2) NOT NULL DEFAULT "=", Value VARCHAR(253) NOT NULL ค่าเริ่มต้น ""); สร้างดัชนี radgroupreply_GroupName บน radgroupreply (GroupName, Attribute); สร้างตาราง radreply (id SERIAL PRIMARY KEY, ชื่อผู้ใช้ VARCHAR (64) ไม่เป็นโมฆะ ค่าเริ่มต้น "", แอตทริบิวต์ VARCHAR (64) ไม่เป็น NULL ค่าเริ่มต้น "", op CHAR (2) ไม่เป็น NULL ค่าเริ่มต้น "=", ค่า VARCHAR (253) ไม่เป็น NULL ค่าเริ่มต้น ""); สร้างดัชนี radreply_UserName บน radreply (ชื่อผู้ใช้, คุณสมบัติ); สร้างตาราง radusergroup (ชื่อผู้ใช้ VARCHAR (64) ไม่ใช่ NULL DEFAULT "", GroupName VARCHAR (64) ไม่ใช่ NULL DEFAULT "", ลำดับความสำคัญ INTEGER ไม่ใช่ NULL DEFAULT 0); สร้างดัชนี radusergroup_UserName บน radusergroup (ชื่อผู้ใช้); สร้างตาราง radpostauth (id BIGSERIAL PRIMARY KEY, ชื่อผู้ใช้ VARCHAR (253) ไม่เป็นโมฆะ, ผ่าน VARCHAR (128), ตอบกลับ VARCHAR (32), CalledStationId VARCHAR (50), CallingStationId VARCHAR (50), ประทับเวลารับรองความถูกต้องพร้อมโซนเวลา ไม่เป็นค่าเริ่มต้น NULL " ตอนนี้()");

เยี่ยมเลย ฐานเตรียมไว้แล้ว ตอนนี้เรามากำหนดค่า Freeradius กันดีกว่า
หากไม่มี ให้เพิ่มบรรทัดใน /etc/raddb/radiusd.conf

$รวม sql.conf

ตอนนี้แก้ไข /etc/raddb/sql.conf เพื่อให้เหมาะกับความเป็นจริงของคุณ สำหรับฉันดูเหมือนว่านี้:

sql.conf ของฉัน

root@localhost ~ # cat /etc/raddb/sql.conf sql ( ฐานข้อมูล = ไดรเวอร์ "postgresql" = "rlm_sql_$(ฐานข้อมูล)" เซิร์ฟเวอร์ = "localhost" เข้าสู่ระบบ = รหัสผ่าน "radius_wifi" = "1111" radius_db = "radius_wifi" acct_table1 = "radacct" acct_table2 = "radacct" postauth_table = "radpostauth" authcheck_table = "radcheck" authreply_table = "radreply" groupcheck_table = "radgroupcheck" groupreply_table = "radgroupreply" usergroup_table = "radusergroup" Deletestalesessions = ใช่ sqltrace = ไม่มี sqltracefile = $( logdir)/sqltrace.sql num_sql_socks = 5 Connect_failure_retry_delay = 60 อายุการใช้งาน = 0 max_queries = 0 nas_table = "nas" $INCLUDE sql/$(ฐานข้อมูล)/dialup.conf )


มาเพิ่มผู้ใช้ใหม่หลายราย test1, test2, test3 และ... บล็อก test3

Root@localhost ~ # psql -U postgres radius_wifi=> แทรกลงใน radcheck (ชื่อผู้ใช้, คุณลักษณะ, op, ค่า) ค่า ("test1", "Cleartext-Password", ":=", "1111"); radius_wifi=> แทรกลงในค่า radcheck (ชื่อผู้ใช้, คุณลักษณะ, op, ค่า) ("test2", "Cleartext-Password", ":=", "1111"); radius_wifi=> แทรกลงในค่า radcheck (ชื่อผู้ใช้, คุณลักษณะ, op, ค่า) ("test3", "Cleartext-Password", ":=", "1111"); radius_wifi=> แทรกลงในค่า radcheck (ชื่อผู้ใช้, คุณลักษณะ, op, ค่า) ("test3", "Auth-Type", ":=", "ปฏิเสธ");

เรารีสตาร์ท freeradius แล้วลองเชื่อมต่อ ทุกอย่างควรจะได้ผล!

แน่นอนว่าการเรียกเก็บเงินมีข้อบกพร่อง - เราไม่จัดเก็บข้อมูลทางบัญชี (การบัญชีสำหรับการกระทำของผู้ใช้) ไว้ที่ใด แต่เราไม่ต้องการสิ่งนั้นที่นี่เช่นกัน คุณต้องมีบัญชีเพื่อรักษาบัญชีด้วย จุดเชื่อมต่อ Wi-Fiมีราคาแพงกว่า 3 พันรูเบิล แต่เราสามารถจัดการผู้ใช้ได้อย่างง่ายดายอยู่แล้ว
รัศมี เพิ่มแท็ก

ที่นี่เราจะดูวิธีการติดตั้งเซิร์ฟเวอร์ FreeRadius Radius ด้วยเว็บอินเตอร์เฟส ดาโลราเดียส

กำลังติดตั้งแพ็คเกจ

1. ก่อนการติดตั้งให้อัพเดตแพ็คเกจทั้งหมดในระบบ

ฉลาด-รับการอัพเดต ฉลาด-รับการอัปเกรด

2. ติดตั้ง อาปาเช่2และ PHP

Apt-get ติดตั้ง apache2 apt-get ติดตั้ง php5 libapache2-mod-php5 php5-mysql php5-gd php-pear php-db

จำเป็นต้องมีโมดูล php5-gd php-pear php-db เพื่อให้เว็บอินเตอร์เฟสทำงานได้ ดาโลราเดียส

3. ติดตั้ง mysqlเซิร์ฟเวอร์

Apt-get ติดตั้ง mysql-server

4. ติดตั้ง ฟรีเรเดียส

Apt-get ติดตั้ง freeradius

5. ติดตั้งแพ็คเกจ freeradius-mysql

ฉลาดรับการติดตั้ง freeradius-mysql

การตั้งค่า MySQL

1. เชื่อมต่อกับ เซิร์ฟเวอร์ MySQL

#mysql> สร้างรัศมีฐานข้อมูล

3.เราจะแต่งตั้ง สิทธิเต็มรูปแบบรัศมีผู้ใช้

#mysql> ให้สิทธิ์ทั้งหมดบนรัศมี * ถึง radius@localhost ที่ระบุโดย "youpass";

4. ตัดการเชื่อมต่อจาก Mysql

#mysql> ออก

5. นำเข้าตารางลงในฐานข้อมูลรัศมี

#mysql -u root -p รัศมี

6. ในการตรวจสอบ ให้เพิ่มค่าทดสอบลงในตาราง ราดเช็ค

#mysql -u root -p #mysql> ใช้รัศมี; #mysql> ใส่ลงใน radcheck (ชื่อผู้ใช้, คุณสมบัติ, ค่า) ค่า ("sqltest", "รหัสผ่าน", "testpwd"); #mysql> ออก

7. ตอนนี้คุณต้องเพิ่มไคลเอนต์ Radius ลงในไฟล์ /etc/freeradius/clients.conf
ตัวอย่างการเพิ่ม:

ลูกค้า 192.168.1.0/16 ( ความลับ = ชื่อย่อของรหัสผ่านลับ = testclient น่ารังเกียจpe= อุปกรณ์ทดสอบ )

การตั้งค่าคอนฟิก

1. เปิดไฟล์การตั้งค่า Freeradius สำหรับ MySQL
ตำแหน่งไฟล์ - /etc/freeradius/sql.conf
แก้ไขบรรทัดให้มีลักษณะดังนี้:

ฐานข้อมูล = การเข้าสู่ระบบ mysql = รหัสผ่านรัศมี = คุณผ่าน readclients = ใช่

ยกเลิกหมายเหตุ sql ในการอนุญาต () # ดู "แบบสอบถามการอนุญาต" ใน sql.conf sql ... ยกเลิกหมายเหตุ sql ในการบัญชี () # ดู "แบบสอบถามการบัญชี" ใน sql.conf sql ... ยกเลิกหมายเหตุ sql ในเซสชัน () # ดู "พร้อมกัน ใช้การตรวจสอบแบบสอบถาม” ใน sql.conf sql ... ไม่ใส่เครื่องหมายข้อคิดเห็น sql ใน post-auth() # ดู “แบบสอบถามการบันทึกการรับรองความถูกต้อง” ใน sql.conf sql ...

#ไม่มีข้อคิดเห็น #$รวม sql.conf $รวม sql.conf

การทดสอบเซิร์ฟเวอร์ RADIUS

1. เปิดหน้าต่างเทอร์มินัล ssh 2 บาน
ในหน้าต่างแรก ให้หยุดบริการ Freeradius

บริการหยุดรัศมีฟรี

2. และเริ่มบริการในโหมดแก้ไขข้อบกพร่อง

Freeradius -X - โหมดแก้ไขข้อบกพร่อง

3. ตอนนี้เปิดหน้าต่างเทอร์มินัลที่สองแล้วป้อนคำขอ

Radtest sqltest testpwd localhost 18128 การทดสอบ 123

หากเอาต์พุตคำสั่งเป็นดังนี้:

การส่งคำขอการเข้าถึงของ id 68 ถึง 127.0.0.1 พอร์ต 1812 ชื่อผู้ใช้ = "sqltest" รหัสผ่านผู้ใช้ = "testpwd" NAS-IP-Address = 127.0.1.1 NAS-Port = 18128 rad_recv: แพ็กเก็ตการเข้าถึง - ยอมรับจากโฮสต์ 127.0 .0.1 พอร์ต 1812, id=68, ความยาว=20

ไม่เป็นไร.

การติดตั้งเว็บอินเตอร์เฟส DaloRadius

1. ดาวน์โหลด เวอร์ชันล่าสุดโดย

รับ http://downloads.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz

2. แตกไฟล์ลงในไดเร็กทอรีปัจจุบัน

ทาร์ xvfz daloradius-0.9-9.tar.gz

3. ถ่ายโอนไปยังโฟลเดอร์ /var/www/

Mv daloradius-0.9-9 /var/www/daloradius

4. นำเข้าตารางเข้าสู่ฐานข้อมูล รัศมี

Cd /var/www/daloradius/contrib/db mysql -u root -p รัศมี

5. ถัดไป แก้ไขการกำหนดค่าเว็บอินเตอร์เฟส
ตำแหน่งไฟล์ - /var/www/daloradius/library/daloradius.conf.php
แก้ไขบรรทัด $configValues['CONFIG_DB_PASS'] = ";
เราป้อนรหัสผ่านฐานข้อมูลของเราลงไป
มันควรมีลักษณะเช่นนี้:

$configValues["CONFIG_DB_PASS"] = "รหัสผ่านรูท Mysql";

หากคุณต้องการใช้ผู้ใช้อื่นที่ไม่ใช่ root ให้เปลี่ยนบรรทัด