freeradius with db
TRANSCRIPT
รายงาน
เรอง Freeradius with db
จดทำาโดย
นาย ชยนตย ทองประเสรฐ
50220243
นาย พระ สวรรณ
กาศ 50220599
นาย วรวธ เกตศรบรนท 50220714
Freeradius with dbFreeradius เปนโปรแกรมทใชในการจดการแอคเคาท
และใชในการตรวจสอบสทธ ตามมาตรฐาน IEEE 802.1X ตามคอนเซปคอ AAA เรามาดกนซวา AAA มาจากคำาวาอะไรบางAccounting นนคอการจดการแอคเคาทในดานตางๆทงการสรางแอคเคาท ลบ และเพมแอคเคาท ตลอดจนการเพมเตมคณสมบตตางๆของแแตละแอคเคาทAuthenticationสทธตามวธการ A แรกทไดกลาวมาในขนตอนนจะมการแจงแมสเสจตางๆวาผานหรอไม ผาน การตรวจสอบสทธและเมอผานกระบวนการนไดสำาเรจกจะเขาสกระบวนการสดทาย นนคอ Authorizeทนมาดกระบวนการการทำางานของ freeradiusเรมแรกหลงจากทไดมการสรางแอคเคาทเปนทเรยบรอยแลว มการใชงานโปรแกรม radius-client ตางๆเชน Pgina, ntradping หรอโปรแกรมอนๆเพอลอกอนหรอตรวจสอบสทธ กจะเขาสกระบวนการตางๆดงน1. โปรแกรม radius-client จะตดตอโปรแกรม freeradius
ตามหมายเลขไอพและพอรททไดกำาหนดไว (โดยปรกตพอรทของโปรแกรมจะอยท1812 ตาม default)2.โปรแกรมจะนำาชอแอคเคาท รหสผาน และคา secret key ไปตรวจสอบวาถกตองหรอไมในขนตอนนจะมกระบวนการดงน
2.1 (radius-client) >>>{username,password,secret key} >>>(freeradius)ในขนตอนนจะมการสงยสเซอรเนม พาสเวรด และ ซเครดคยไปยงเซอรฟเวอรเพอใช ในการตรวจสอบความถกตอง
2.2 (radius-client) >>>>{access-request}>>>>(freeradius)ในขนตอนนทางฝงไคลเอนทจะสรางสญญาณรองขอผลตอบกลบมาจากเซอรฟเวอรหรอรอสญญาณตอบรบความถกผดของขอมลทสงจากขนตอนแรก
2.3 (radius-client) <<<<{access-reply}<<<<<<<<<(freeradius)ในขนตอนนเซอรฟเวอรจะตอบกลบไปยงเครองไคลเอนทดวยสญญาณ access-reply โดยสญญาณนจะประกอบไปดวย 2 สญญาณยอยทสำาคญแตจะเกดขนเพยงแคหนงสญญาณตอเงอนไขนนคอสญญาณ access-accept และ access-reject โดยสญญาณ
access-accept นคอสญญาณทใชตอบกลบไปยงไคลเอนทวายสเซอรเนม รหสผาน และซเครดคยนนถกตองสวนสญญาณ access-reject นนจะตรงกนขามกบสญญาณแรก โดยมความหมายคอยสเซอรเนม รหสผาน และซเครดคยไมถกตองหรออาจม เฉพาะตวหนงตวใดไมถกตองกได เปนตน
ในโปรแกรม freeradius ตองอาศยฐานขอมลเพอดงขอมลมาใชในการประมวลผลไมวาจะเปนยสเซอรเนม และพาสเวรด หรอเมสเสจและเงอนไขตางๆของแตละยสเซอร โดยในฐานขอมลจะมตารางทเกยวของดงน radcheck , radgroupcheck , radgroupreply,usergroup และ radacct มาดแตละเทเบลดกวา
radcheck ในเทเบลนจะมฟลดดงน username เอาไวกำาหนดยสเซอรเนมAttribute เอาไวกำาหนดแอททรบวท วาจะใชอะไรเชนตองการการกำาหนดพาสเวรดกใช Password เปนตนop เปนสญลกษณเอาไวกำาหนดรายละเอยดของแตละ Attribute value เอาไวกำาหนดคาของแตละ Attribute
มาดตวอยางการกำานดหรอสรางแอคเคาท ดงน
insert into radcheck value(Null,'oportino','Password',':=','opor_test');อธบาย ในขนตอนนเรากไดแอคเคาท แลวดงน user=oportino ม password=opor_test เปนตน แตยงไมสมบรณ เหลอทเทเบล usergroup อกดตวอยางขางลางประกอบดวย
usergroup username เอาไวกำาหนดยสเซอรเนมgroupname เอาไวเกบชอกรปหรอกำาหนดกรปใหแกยสเซอรนน
มาดตวอยางการกำานดหรออสรางแอคเคาทใหสมบรณตอจากตวอยางทแลวดงน insert into usergroup value(Null,'oportino','User_blog');อธบาย ในขนตอนนเรากไดแอคเคาททประจำากรปแลวนนคอ ยสเซอร oportino มกรปทสงกดคอ User_blog เปนตน
radgroupcheck เทเบลนเอาไวกำาหนดนโยบายใหแตละกรปนนคอสมาชกใดถาอยในกรปนกจะถกกำากนดตามเงอนไขทระบgroupname กำาหนดกรปทตองการทำานโยบายAttribute เอาไวกำาหนดแอททรบวททเปนนโยบายระดบกรปใหแกกรปop คอสญลกษณทระบใหแตละแอททรบวทvalue คอคาของแอททรบวททกำาหนดแตละกรป
radgroupreply เทเบลนเอาไวกำาหนดเงอนไขและเมสเสจทโชวใหแกกรปนนๆ เชน หมดเวลาการลอกอน หรอหมดอายการใชงาน เปนตน โดยฟลดตางๆกจะเหมอนกบ radgroupcheck และมการใชงานเหมอนกน
ยกตวอยาง ในบรษทแหงหนง ม 3 แผนกทตองการใชงาน freeradius นนคอแผนกบญช 10 คน มชอแอคเคาท ดงน acc1 - acc10แผนกการตลาด 5 คน มชอแอคเคาท ดงน market1 - market5และผบรหาร 7 คน มชอแอคเคาท ดงน vip1 - vip7
1. กำาหนดชอกรป แผนกบญชคอ Accounting แผนกการตลาดคอ Margeting และผบรหารคอ VIP2. กำาหนดยสเซอรเนมและพาสเวรดใหแกแตละแผนกinsert into radcheck (Null,'acc1','Password',':=','acc1_pass'); ทเหลอกกำาหนดเขาไปจนถง acc10insert into radcheck (Null,'market1','Password',':=','market1_pass'); ทเหลอกกำาหนดเขาไปจนถง market5insert into radcheck (Null'vip1','Password',':=','vip1_password'); ทเหลอ
กกำาหนดเขาไปจนถง vip7
3. จบแตละยสเซอรมาสงกดกรปของตนเองinsert into radcheck (Null,'acc1','Accounting'); ทเหลอกกำาหนดเขาไปจนถง acc10 ตรงตำาแหนงกรปกคงไวinsert into radcheck (Null,'market1','Margeting'); ทเหลอกกำาหนดเขาไปจนถง market5 insert into radcheck (Null'vip1','VIP'); ทเหลอกกำาหนดเขาไปจนถง vip7ทกยสเซอรกจะมกรปอยแลวตรงตามชอกรปของแผนกตวเอง
4. จากนนกำาหนดใหแตละกรปหมดเวลาการใชงานเมอใดดงนinsert into radgroupcheck (Null,'Accounting',Expiration',':=','Oct 30 2007'); insert into radgroupcheck (Null,'Margeting','Expiration',':=','Nov 10 2008');คราวนเมอยสเซอรนนลอกอนในภายหลงทเราระบ พแกกจะลอกอนไมไดพรอมมเมสเสจกลบมาวาหมดอายการใชงานแลว
5. ตองการใหกรปของผบรหารนนคอ VIP ไมมวนหมดอายการใชงานกำาหนดดงนinsert into radgroupcheck (Null'VIP','Auth-Type',':=','Local');
RADIUS ServerRADIUS Server คออะไร
RADIUS เปนคำายอของ Remote Authentication Dial-In User Service (RADIUS) คอ client/server securityprotocol ซงเปนผลงานของ Lucent InterNetworking Systems ทไดทำาการคดคนขนมา เพอรวบรวม account ของ users ใหอยแตเพยงทเดยว เพองายตอการบรหาร ไมตองทำาหลายจดหลายเซฟเวอร เวลาม users ทเซฟเวอรอนๆ ตองการใชงาน กจะสงขอมลมาตรวจเชคท RADIUS Server น ทำาไมถงตองใช RADIUS หาก ในระบบของทานมผใชงานอนเตอรเนตจำานวนมาก ซงยากตอการควบคมการใชงาน โดยเฉพาะ ในสถานศกษาทมผใชงานมากๆ RADIUS Server จงมความสำาคญเปนอยางมาก
ขอดของ RADIUS Server- ควบคมการใชอนเตอรเนตของ User ไดอยางมประสทธภาพ- สามารถเกบ Log File เพอตรวจสอบหลงได ตามกฎหมายใหมกำาหนด desktop- ตรวจสอบ User ทกำาลงใชงานได แบบ Real time- กำาหนดระยะเวลาการใชงานของ User ได เชน 1 ชวโมง, 2 วน, 3 เดอน หรอ 10 นาท เปนตน
- สามารถ Clear User ทไมตองการใหใชงานในขณะ On line ได
RADIUS Server เหมาะสำาหรบทไหน?- อพารทเมน ทใหบรการ อนเตอรเนต ทงแบบฟร และเกบคาบรการ- โรงแรม ทใหบรการ อนเตอรเนต ทงแบบฟร และเกบคาบรการ- โรงเรยน, สถานศกษา ทมบรการอนเตอรเนต หรอ เพอการเรยนการสอน เพอปองการแอบใชอนเตอรเนต ขณะรบการสอน- ผใหบรการ Wireless Internet (WiFi HotSpot)
ทมา : http://www.star-internet.com/web/content/view/35/1/
RADIUS คอ วธการมาตรฐานของการแลกเปลยนขอมลระหวางอปกรณทควบคมการใชงานเนตเวรค (Network Access Server) กบผใชงาน (Access Clients) และอปกรณททำาหนาทตรวจสอบสทธการใชงาน (Radius Server)
องคประกอบพนฐานของ RADIUS Server
1. Access Clients คอ เครองคอมพวเตอรหรออปกรณทผใชงานสงใหตดตอระบบเพอใชงาน เชน เครองคอมพวเตอรทลกคา
Individual ใชงาน โดยใช โปรแกรม Dial-Up Net working สงงาน Modem ให Connect เพอใชงานอนเทอรเนต
2. Network Access Servers (NAS ) คอ อปกรณททำาหนาทเชอมตอและจดการการตดตอระหวาง Access Clients และ RADIUS Server ซง NAS จะทำาหนาทเปน Client เชอมตอกบ RADIUS Server สงผานและจดการขอมลทใชในการตรวจสอบสทธ กำาหนดสทธ ของ Access Clients เมอ Access Clients รองขอการตอเชอมซงจะตองตอเชอมมายง NAS ผานโพรโตคอลทใชในการตอเชอมตาง ๆ เชน PPP (Point-to-Point Protocol), SLIP (Serial Line Internet Protocol), Extensible Protocol อน ๆ เปนตน ซงจำาเปนตองมการสงผาน Username และ Password จาก Access Clients มายง NAS หลงจากนน NAS จะสงขอมลทจำาเปนตาง ๆ เชน Username, Password, NAS IP Address, NAS Port Number และขอมลอน ๆ ไปท RADIUS Server เพอขอตรวจสอบสทธ (Request Authentication)
3. RADIUS Server ทำาการตรวจสอบสทธโดยใชขอมลท NAS สงมา (Access-Request) กบขอมลทจดเกบไวใน RADIUS Server เอง หรอจากฐานขอมลภายนอก อน ๆ เชน MS SQL Server, Oracle Database, LDAP Database หรอ RADIUS Server อน (ซงเรยกการสงผานการตรวจสอบสทธ
แบบนวา Proxy) ในกรณทขอมลทงหมดถกตอง RADIUS Server จะสงผลยนยอมการเชอมตอ (Access-Accept) หรอ ไมยนยอม (Access-Reject) ในกรณทขอมลไมถกตอง แก NAS หลงจากนน NAS จะเชอมตอหรอยกเลกการการตอเชอมตามผลทไดรบจาก RADIUS Server ซงตามปรกตแลว NAS จะขอบนทกขอมลตาง ๆ เชน วนท เวลา Username และขอมลอน ๆ ไปท RADIUS Server (Accounting Request) เพอให RADIUS Sever จดเกบขอมลหรอสงตอไปท RADIUS Server อน จดเกบเพอใชในการประมวลผลอน ๆ ตอไป
RADIUS Package คอ ขอมลทถกสงหรอรบระหวาง RADIUS Server และ RADIUS Client (หมายถง NAS) มรปแบบทถกกำาหนดไวตามมาตรฐานของ RFC 2685 Remote Authentication Dial In User Service (RADIUS) และ 2866 RADIUS Accounting.
มคณสมบตดงนเปนขอมลทสงหรอรบกนระหวาง RADIUS Server และ RADIUS Clientอยในรปแบบของการรองขอและตอบกลบ (Request /Response) คอ RADIUS Client สงการรองขอไปยง RADIUS Server และ RADIUS Server ตอบกลบการรองขอ
ของ RADIUS Clientแตละ Package จะตองระบจดประสงคของการตดตอ คอ Authentication หรอ Accountingแตละ Package จะบรรจขอมลทเรยกวา Attributes ซงใชในการตรวจสอบสทธกำาหนดสทธ และเกบบนทกการใชงาน
การกำาหนดคาเบองตนสำาหรบ RADIUS Server และ ClientRADIUS Server กำาหนดเพอให RADIUS Server สามารถตดตอกบ RADIUS Client แตละตวได ซงมขอมลทตองกำาหนดให RADIUS Server ดงน
IP Address ของ NASRADIUS shared secretยหอ และ รนของ NAS ทใชในกรณทไมมหรอไมทราบใหเลอกเปน - Standard Radius -. ** RADIUS Server จำาเปนตองระบ UDP Port เพอใชสำาหรบรบและสง Authentication และ Accounting Package ระหวาง RADIUS Server และ RADIUS Client
RADIUS Client ตองกำาหนดคาตาง ๆ บน NAS เพอใหสามารถตดตอกบ RADIUS Server ซงตองกำาหนดคาตาง ๆ เหลานบน NAS ทกตวทตดตอกบ RADIUS Server
IP Address ของ RADIUS ServerRADIUS shared secretUDP Port เพอใชสำาหรบสงและรบ Authentication และ Accounting Package ** สำาหรบ RADIUS shared secret และ UDP Port จะตองกำาหนดใหตรงกบทระบไวท RADIUS Server
RADIUS Shared Secret ใชสำาหรบตรวจสอบความถกตองของการตดตอระหวาง RADIUS Server กบ RADIUS Client ซง Shared Secret จะเปนตวหนงสอ (ตวเลกและตวใหญมความแตกตางกน) หรอตวเลขทตองกำาหนดใหตรงกนทง RADIUS Server และ RADIUS Client แต RADIUS Client แตละตวไมจำาเปนตองกำาหนด Shared Secret ใหเหมอนกน
RADIUS Shared Secret จะกำาหนดได 2 ตว ดงน
Authentication Shared SecretAccounting Shared Secret ในขณะทมการขอตรวจสอบสทธ (Authentication) การจดสง Package Access-Request ระหวาง NAS และ RADIUS Server เนองจากการสง Password จะตองมความปลอดภยดงนนจงมการกำาหนดโพรโตคอลเพอใชในการสงและรบขอมล โพรโตคอลทนยมใชคอ
PAP, SHAP, MS-SHAP, MS-SHAP V2 และ EAP ซงเปนโพรโตคอลทเกดขนใหมยงไมแพรหลายในขณะน
ตวอยาง ในโพรโตคอล PAP NAS จะตองเขารหส (Encrypt) Password กอนโดยใช Shared Secret และสง Package Access-Request นนออกไป เมอ RADIUS Server รบ Package Access-Request แลวจะทำาการถอดรหส (Decrypt) Password ทถกเขารหสไวโดยใช Shared Secret แลวนำาไปตรวจสอบ
สำาหรบในการสงขอมล Accounting จะไมมการ Encrypt ขอมลแต RADIUS Server จะใช Shared Secret ในการตรวจสอบความถกตองของ NAS ทจะตดตอดวย RADIUS Port RADIUS Server จำาเปนตองระบ UDP Port เพอใชสำาหรบรบและสง Authentication และ Accounting Package ระหวาง RADIUS Server และ RADIUS Client ซงเรมตนท RADIUS ไดถกพฒนาขนผพฒนาไดใช Port 1645 สำาหรบการสงและรบ Package Authentication และ 1646 สำาหรบการสงและรบ Package Accounting แตเนองจากมาตรฐานนนไดมการกำาหนด Port ดงกลาวสำาหรบ "datametrics"
ดงนน Port ทเปนมาตรฐานในปจจบนน คอ
- 1812 สำาหรบการสงและรบ Package Authentication - 1813 สำาหรบการสงและรบ Package Accounting
Password Protocols เนองจากการสง Access-Request ในขณะทมการขอ Authentication มการสง Password จาก NAS ไปยง RADIUS Server จงจำาเปนตองคำานงถงความปลอดภยของ Password ดงกลาว ดงนนจงมการสรางโพรโตคอลสำาหรบใชงานในสวนนขนซงไดแก
PAP (Password Authentication Protocol) ในขณะทมการขอเชอมตอ(User Negotiates) จาก Access Clients มายง NAS การสง Password ในขนตอนนจะยงไมมการเขารหส (encrypt) ใด ๆ Password จะจดสงในรปแบบ “Clear Text”
เมอ NAS รวบรวมขอมลทเพยงพอสำาหรบสราง Access-Request แลว NAS จะ Encrypt Password โดยใช Authentication Shared Secret ทถกกำาหนดไว แลวสง Access-Request ดงกลาวไปยง RADIUS Server
เมอ RADIUS Server ไดรบ Access-Request จาก NAS แลวจะทำาการ Decrypt Password ทไดรบโดยใช
Authentication Shared Secret ทจดเกบไวสำาหรบ NAS ตวดงกลาว
** โพรโตคอล PAP สามารถใชไดกบ RADIUS Server ทกตว
CHAP (Challenge Handshake Authentication Protocol) สำาหรบ CHAP ไดถกสรางขนเพอหลกเลยงการสง Password แบบ “Clear Text” ในขณะท User Negotiates เมอ NAS รบทราบแลว NAS จะสราง Challenge โดยสมตวอกษร แลวสงกลบไปยง Access Client
เมอ Access Client ไดรบ Challenge จะทำาการสราง Digest คอ นำา Challenge ทไดรบมาตอทาย Password แลวทำาการ Encrypt แบบ one-way Encryption (MD5 Algorithm) แลวสง Digest นนแทน Password ไปยง NAS
NAS สราง Access-Request สำาหรบการ Authentication และสงไปยง RADIUS Server
เนองจาก Digest ถกสรางแบบ one-way Encryption ไม
สามารถ Decrypt ได
RADIUS Server จงจำาเปนตองใช Attribute ทเกยวกบ CHAP Protocol ทถกจดสงมาใน Access-Request Package ทไดรบจาก NAS ซงม 2 Attributes ทเกยวของดงน
CHAP-Password : Attribute สำาหรบ Digest (Password ทตอทายดวย Challenge แลว Encrypt ดวย MD5 Algorithm)
CHAP-Challenge : Attribute สำาหรบ Challenge ทถกสมขนโดย NAS
ตวอยาง config เบองตน
การตดตง Free Radius ใหเชอมตอ กบ MySQL
เวบไซตทเกยวของhttp://rd.cc.psu.ac.th
http://opensource.psu.ac.thhttp://freeradius.orghttp://www.mysql.com
โดยใช Linux Fedora Core 2 เปนหลก สวนคายอนๆ กใชไดเหมอนกนการตดตง จะใชวธ Compile Source
1. ตดตง MySQL กอนครบ (Version 4.0.16 ) http://gotoknow.org/archive/2005/10/21/14/06/04/e56902. ตดตง Free Radius (Version 1.0.5) 2.1 ขยายแฟมท DL มากอน tar -zxvf freeradius-1.0.2.tar.gz cd freeradius-1.0.2 2.2 set config ของ โปรแกรมกอน find ./ -name config.h | xargs rm -fv #./configure --prefix=/radius --sysconfdir=/radius/etc --with-mysql-include-dir=/vc/include/ --with-mysql-lib-dir=/vc/lib/mysql/ อธบาย --prefix เปนตงคาให Install โปรแกรมไวทไหน (/vc) --sysconfdir เปนตงคาใหแฟม คอนฟก (my.cnf) อยทไหน โปรแกรมไวทไหน (/vc/etc) --with-mysql-include-dir สำาหรบผตดตงแบบคอมไพล code ถาตดตงแบบ RPM กไมตองม --with-mysql-lib-dir สำาหรบผทตดตงแบบคอมไพล
code ถาตดตงแบบ RPM กไมตองม 2.3 Compilied และ Install #make #make install #cp src/main/radiusd /radius/bin/2.4 ทดสอบโปรแกรมกนกอน #cd /radius/bin #radius Fri Oct 21 14:46:38 2005 : Info: Starting - reading configuration files ...#radtest root password-root localhost 0 testing123 ถาขน Sending Access-Request of id 17 to 127.0.0.1:1812 User-Name = "root" User-Password = "password-root" NAS-IP-Address = localhost NAS-Port = 0 Re-sending Access-Request of id 17 to 127.0.0.1:1812 User-Name = "root" User-Password = "307366]27123532333521627713313313013360202" NAS-IP-Address = localhost NAS-Port = 0 rad_recv: Access-Reject packet from host 127.0.0.1:1812, id=17, length=20 แปลวาโปรแกรมสมบรณแลว แตท Reject เนองจาก
ตอนพงลงเสรจ โปรแกรมเลยใช PAM ในการตรวจสอบ ซง จะตด สทธในการเขาถงแฟม /etc/password /etc/shadow ถาตองการใช PAM กตองแกไขคอนฟกโปรแกรมกอน โดยไปท #cd /radius/bin/raddb #vi radiusd.conf ทำาการ comment ยกเลกบรรทดขอความจากเดม user = radiusd group = radiusd ใหเปน #user = radiusd #group = radiusd แลวลองใหม #radtest root password-root localhost 0 testing123 Sending Access-Request of id 171 to 127.0.0.1:1812 User-Name = "root" User-Password = "password-root" NAS-IP-Address = localhost NAS-Port = 0 rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=171, length=20 2.5 สรางฐานขอมล สรางฐานขอมลและสราง user สำาหรบใช ฐานขอมล User ทใช ฐานขอมอคอ root radius คอ radius #mysql radius -uroot -p123456 mysql> create database radius; mysql> grant all privileges on radius.* to 'radius'@'localhost' identified by 'radius' ;
mysql> quit;ตวฐานขอมลจะมอยแลวงชอ db_mysql.sql ลองคนด # find ./ -name db_mysql.sql ./src/modules/rlm_sql/drivers/rlm_sql_mysql/db_mysql.sql#cd ./src/modules/rlm_sql/drivers/rlm_sql_mysql #mysql radius -uradius -pradius mysql> . db_mysql.sql mysql>quit 2.6 แกไขคอนฟก #cd /radius/bin/raddb แกไข file radiusd.conf (vi /radius/etc/raddb/radiusd.conf) หา authorize (/^authorize) คอมเมนตใหหมด เพอขามการตรวจสอบอนๆยกเวน sql
authorize { ... sql ... } หา accounting (/^accounting) ใหคอมเมนตใหหมด ถาเราไมตองการกำาจดเวลาในการใช accounting { ... } ถาตองการกำาจดเวลาในการใช ก คอมเมนตใหหมด เพอขามการตรวจสอบอนๆยกเวน sql
accounting { ... sql ... } แกไข file clients.conf (vi /radius/etc/raddb/clients.conf )เพม client 192.168.159.0/24 { // class ของ ip ทอนญาตใหใช secret = ldap shortname = private-network-1 }แกแฟม realms (vi /usr/local/radius/etc/raddb/realms ) เพม DEFAULT LOCAL
แกไข file sql.conf (vi /radius/etc/raddb/sql.conf) แก user password databasename แก ql_user_name = "%{Stripped-User-Name:-%{User-Name:-DEFAULT}}"2.6 การเพม User INSERT INTO `radcheck` ( `id` , `UserName` , `Attribute` , `op` , `Value` ) VALUES ( '', 'epatt', 'password', '==', '12345' );
ปกต ถาตรง accounting{} ใน radius.conf เราตงเอาไว กจะตงคาเรมตนเปน 4 ชม. เราสามารถแกเปน 7 วนไดดงน
หนวนเปนวนาท 7 วน = 60*60*24*7 = 604800 วนาท
แตถาคอมเมนตไว ตรงนกไมตองใสกได
INSERT INTO `radreply` ( `id` , `UserName` , `Attribute` , `op` , `Value` ) VALUES ( '', 'epatt', 'Session-Timeout', ':=', '604800' ); 2.7 วธทดสอบกเหมอนกบ ขอ 2.4 เพยงแต เปลยนไปใช user และ passowrd ทพงใสเขาไป #radtest epatt 12345 localhost 0 testing123
How to Installing FreeRADIUS + Squid Authentication on openSUSE 11.11. Adding FreeRADIUS Repo:$ wget http://download.opensuse.org/repositories/network:/aaa/openSUSE_11.1/network:aaa.repo$ zypper ar network\:aaa.repo
2. Installing FreeRADIUS (Version 2.1.6)
$ yast sw_single
- freeradius-client (FreeRADIUS Client Software)- freeradius-client-devel (Header files, libraries
and development documentation)- freeradius-client-libs (A portable, easy-to-use and standard compliant library for RADIUS)- freeradius-server (The world's most popular RADIUS Server)- freeradius-server-debuginfo (Debug information for package freeradius-server)- freeradius-server-debugsource (Debug sources for package freeradius-server)- freeradius-server-devel (FreeRADIUS Development Files (static libs))- freeradius-server-dialupadmin (Web management for FreeRADIUS)- freeradius-server-libs (FreeRADIUS share library)- freeradius-server-utils (FreeRADIUS Clients)
*** ถาไมสามารถตดตง FreeRADIUS ไดใหตดตง MyODBC-unixODBC กอน
Install unixODBC (ODBC driver manager with some drivers included)
$ wget http://autoinstall.plesk.com/PSA_9.2.2/update-rpm-SuSE-10.3-i386/unixODBC-2.2.12-55.i586.rpm$ rpm -ivh unixODBC-2.2.12-55.i586.rpm
หรอท Download: http://software.susethailand.com/
3. Starting FreeRADIUS
$ rcfreeradius start
4. Enable Service (Runlevel)
$ chkconfig freeradius on
ไฟลทเกยวของ/var/log/radius/raduis.log/etc/raddb/radiusd.conf/etc/raddb/clients.conf
Run the server in debugging mode:$ rcfreeradius stop$ radiusd -Xkilling it (CTRL-C)
5. Configuration file authentication
$ vi /etc/radd/users#Addign following line at the beginningoss-radius User-Password := "hello"
Test user by raddtest command:$ rcfreeradius restart$ radtest oss-radius hello localhost 0 testing123
#Console will output:Sending Access-Request of id 80 to 127.0.0.1 port 1812 User-Name = "oss-radius"
User-Password = "hello" NAS-IP-Address = 192.168.1.121 NAS-Port = 0rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=80, length=20
รหส testing123 คอ secret ทอยในไฟล /etc/raddb/clients.conf
6. Configuration Dialupadmin (Web management for FreeRADIUS)
ไฟลทเกยวของ /etc/apache2/conf.d/radius.conf/usr/share/dialup_admin/
7. Installing Squid WWW Proxy Server (Version 2.7 Stable5-1.20.1)
$ yast -i squid
Runlevel:$ yast runlevel
Start Squid:$ rcsquid start
Configure Squid Authentication RADIUS :$ vi /etc/squid/squid.conf
1. Download the squid authenticating module
http://www.squid-cache.org/contrib/squid_radius_auth/
2. Compile source
$ tar -zxvf squid_radius_auth-1.10.tar.gz$ cd squid_radius_auth-1.10/$ make $ make install
#Edit file squid_radius_auth.conf:$ vi /usr/local/squid/etc/squid_radius_auth.confserver 127.0.0.1secret testing123
#Check Service Port:$ vi /etc/serviceradius 1812/tcp # RADIUSradius 1812/udp # RADIUS
radius-acct 1813/tcp # RADIUS Accountingradius-acct 1813/udp # RADIUS Accounting
3. Configure Squid (squid-2.7.STABLE5-1.20.1) to use RADIUS server for Authentication
$ vi /etc/squid/squid.conf
# TAG: auth_param#Authentication Radius:auth_param basic program
/usr/local/squid/libxec/squid_rad_auth -f /usr/local/squid/etc/squid_rad_auth.confauth_param basic children 5auth_param basic realm Web Authenticationauth_param basic credentialsttl 2 hoursacl radius-auth proxy_auth REQUIRED
# TAG: http_access# Allow authorized users:http_access allow radius-auth
:wq! (save)
Restart squid$ rcsquid restart
Error: Starting WWW-proxy squid startproc: signal catched /usr/sbin/squid: AbortedSolution: squid -D (Try starting squid without the DNS)Check option : auth_param: auth_param basic program /usr/local/squid/libexec/squid_radius_auth -f /usr/local/squid/etc/squid_rad_auth.conf
Testing the squid_radius_auth:
$ sh /usr/local/squid/libexec/squid_radius_auth -f /usr/local/squid/etc/squid_rad_auth.confหรอ$ sh /usr/local/squid/libexec/squid_radius_auth -h 127.0.0.1 -w testing123
Type your radius username/password on the same line separated with space, on successful authentication it will give "OK" otherwise "ERR login failure"