FreeRADIUS 测试环境搭建
生活随笔
收集整理的這篇文章主要介紹了
FreeRADIUS 测试环境搭建
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
AAA服務器和RADIUS協議 AAA(Authentication,Authorization,Accounting)驗證,授權,記賬。AAA服務器主要功能是:哪些用戶具有訪問權限,具有訪問權限的用戶 又可以訪問哪些服務,對用戶正在使用的網絡資源進行計賬。 RADIUS(Remote Authentication Dial In User Service)協議是唯一的AAA標準。RADIUS協議是基于UDP的一種客戶機/服務器協議。RADIUS客戶機是網絡訪問服務器,它通常是一個路由器,交換機或者無線訪問點。RADIUS服務器通常是運行在linux或Windows服務器上的一個監護程序。 RADIUS協議的認證端口是1812,記賬端口是1813。 RADIUS協議的特點: 1. Client/Server模式 RADIUS協議是C/S結構協議,客戶端是把用戶信息傳遞給RADIUS服務器,并負責執行返回的響應。 RADIUS服務器負責接受用戶的請求,對用戶身份進行認證,并為客戶端返回所有為用戶提供服務所必須的配置信息。RADIUS服務器可以為其他的RADIUS Server擔當代理。 2. 網絡安全 客戶端和RADIUS服務器之間的交互經過共享密鑰認證,另外避免有人在網絡上監聽獲取用戶密碼,客戶端和服務器之前的任何的通信都是經過加密后傳輸的。? ?3. 認證機制 RADIUS服務器可以采用多種認證方式鑒別用戶的合法性,當用戶提供了用戶名密碼后,RADIUS服務器可以支持點對點的PAP認證(PPP PAP),點對點的CHAP認證(PPP CHAP),UNIX的登陸操作(UNIX Login)和其他認證機制。 RADIUS的工作過程: 1. 用戶輸入用戶名密碼等信息到客戶端 2. 客戶端產生一個接入請求報文到RADIUS服務器,其中包含了用戶名,密碼,客戶端ID和用戶訪問端口的ID,密碼都是經過MD5加密的。 3. RADIUS服務器對用戶進行認證 4. 如果認證成功,RADIUS服務器想客戶端發送允許接入包,否則就發送拒絕接入包。 5. 若客戶端接受到允許接入包,則為用戶建立連接,對用戶進行授權和提供服務;若接受到拒絕接入包,則拒絕用戶接入請求。 6. 客戶端發送計費請求給RADIUS服務器 7. RADIUS服務器接受到計費請求包后開始計費,并向客戶端回送開始計費的響應包。 8. 用戶斷開連接,客戶端發送停止計費包給RADIUS服務器 9. RADIUS服務器接收到停止計費包后停止計費,并向客戶端發送停止計費響應包,完成該用戶的一次計費,記錄計費信息。 Freeradius的安裝配置 Freeradius是開源免費并完全兼容RADIUS協議的RADIUS服務器和客戶端軟件,可以用它對用戶的接入和訪問特定的網絡進行有效的控制,授權,計費等等,它支持多種驗證,包括文件,LDAP,數據庫等等。 測試環境: 192.168.2.97 ?freeradius server 192.168.2.226 ?test.com(域服務器) 192.168.2.110 ? 測試client 配置hosts文件,freeradius測試時需要解析主機名 192.168.2.226 ? ?test.com 192.168.2.97 ? ? freeradius.test.com 修改freeradius的主機名 [root@lamp ~]# vim /etc/sysconfig/network HOSTNAME=freeradius.test.com Freeradius與AD結合需要用的組件有freeradius,samba,krb5-server,直接yum安裝以上組件即可,安裝samba??krb5-server?freeradius2??freeradius2-util?
[root@lamp?~]#?yum?install?samba?krb5-server??freeradius2??freeradius2-utils? 設置samba作為AD溝通的橋梁
[root@lamp?~]#?vim?/etc/samba/smb.conf? [global]? workgroup?=?test????#指定AD域的netbios名稱,即test.COM的前面部分? realm?=?test.com????#指定AD域名? netbios?name?=??freeradius??#freeradius服務器的主機名? security?=?ads??#指定samba的工作模式為ads? password?server?=?testtest.test.com??#指定擔當身份驗證的服務器? winbind?separator?=?+?????#?指定一個字符作為分隔符,winbind將使用該分隔符來用戶或組名。使用該配置將使得域用戶表示為"MYDOMAIN+username",域組被表示為"MYDOMAIN+Domain?Users"? idmap?uid?=?10000-20000??????#寫入域賬戶的uid、gid的范圍,該范圍是將linux用戶,組的ID映射到Windows用戶的SID,所以需要確保該段的沒有被使用,當winbind啟動后也不能在該段建立用戶? idmap?gid?=?10000-20000? winbind?enum?users?=?yes?????#指定winbind服務是否能在系統上創建Windows域用戶。一般情況下都要設置為yes,除非你處于某種原因希望關閉該功能? winbind?enum?groups?=?yes? nt?acl?support?=?yes?????#nt?acl?支持? winbind?cache?time?=?0? template?shell?=?/bin/bash? template?homedir?=?/home/%D/%U???#?用來指定為域用戶產生主目錄。使用變量替換可使winbind服務把用戶主目錄設置為/homes/MYDOMAIN/username? winbind?use?default?domain?=yes? [homes]? comment?=?Home?Directories? path?=?/home/%D/%U? browseable?=?no? writable?=?yes? ? valid?users?=?%U? ? 修改系統帳號驗證 [root@freeradius?~]#?vim?/etc/nsswitch.conf? passwd:?????files???????winbind? shadow:?????files???????winbind? ? group:??????files???????winbind? 設置kerberos認證機制 [root@lamp?~]#?vim?/etc/krb5.conf? [libdefaults]? ?default_realm?=?test.COM???#指定默認域名? ?dns_lookup_realm?=?false???#無需dns解析域請求包? ?dns_lookup_kdc?=?false??#是否解析kdc請求報? ?ticket_lifetime?=?24h???#指定kerberos票據有效日期? ?forwardable?=?yes???#允許轉發解析請求? [realms]? ?test.COM?=?{? ??kdc?=?testtest.test.com:88?????#指定KDC服務器和KDC服務器的端口? ??admin_server?=?testtest.test.com:749??#指定域控制器和管理端口? ??default_domain?=?test.com??#指定默認域? ?}? [domain_realm]? ?.example.com?=?EXAMPLE.COM? ? ?example.com?=?test.COM??#設置域的搜索范圍,使得域大小寫無關? 設置kdc配置 [root@lamp?~]#?vim?/var/kerberos/krb5kdc/kdc.conf? [realms]? ?test.COM?=?{? ??#master_key_type?=?des3-hmac-sha1? ??acl_file?=?/var/kerberos/krb5kdc/kadm5.acl? ??dict_file?=?/usr/share/dict/words? ??admin_keytab?=?/var/kerberos/krb5kdc/kadm5.keytab? ??supported_enctypes?=?aes256-cts:normal?aes128-cts:normal?des3-hmac-sha1:normal?arcfour-hm? ac:normal?des-hmac-sha1:normal?des-cbc-md5:normal?des-cbc-crc:normal?des-cbc-crc:v4?des-cbc? -crc:afs3? ? ?}? 測試samba與kdc是否可以正常通信 [root@lamp?~]#?kinit??administrator@test.COM? ? Password?for?administrator@test.COM:? ?? 如果沒有什么報錯就說明通信正常。 將freeradius?server加入到域中 [root@freeradius?~]#?/etc/init.d/smb?start? Starting?SMB?services:?????????????????????????????????????[??OK??]? Starting?NMB?services:?????????????????????????????????????[??OK??]? [root@freeradius?~]#?chkconfig??smb?on? [root@freeradius?~]#?chkconfig?winbind?on? ? [root@freeradius?~]#?service??winbind?restart? 加入域 [root@freeradius?~]#?net?rpc?join???-U?administrator??????????? Password:? ? Joined?domain?test.? 測試是否同步域帳號 檢查rpc鏈接是否成功 [root@freeradius?~]#?wbinfo?-t? ? checking?the?trust?secret?via?RPC?calls?succeeded? ? 獲取用戶信息 [root@freeradius?~]#?wbinfo?-u? administrator? guest? krbtgt? ddclic? test01? test02 獲取組信息 [root@freeradius?~]#?wbinfo?-g? BUILTIN+administrators? BUILTIN+users? domain?computers? domain?controllers? schema?admins? ? enterprise?admins? 查看密碼是否獲取成功 [root@freeradius?~]#?getent??passwd? test1:*:10033:10008:test1:/home/test/test1:/bin/bash? test2:*:10034:10008:test2:/home/test/test2:/bin/bash? test3:*:10035:10008:test3:/home/test/test3:/bin/bash? test4:*:10036:10008:test4:/home/test/test4:/bin/bash? ? test5:*:10037:10008:test5:/home/test/test5:/bin/bash? ? ntlm_auth測試驗證是否成功 ? [root@freeradius?~]#?ntlm_auth?--request-nt-key?--domain=test.com?--username=test?--password='123456'? ? 安裝配置freeradius 加入ntlm_auth驗證到freeradius [root@freeradius?~]#?vim?/etc/raddb/modules/ntlm_auth? exec?ntlm_auth?{? ????????wait?=?yes? ????????program?=?"/usr/bin/ntlm_auth?--request-nt-key?--domain=test.COM?--username=%{mschap? :User-Name}?--password=%{User-Password}"? ? }?}? 修改freeradius驗證機制 [root@freeradius?~]#?vim?/etc/raddb/sites-enabled/default? authenticate?{? ????????ntlm_auth? }? [root@freeradius?~]#?vim?/etc/raddb/sites-enabled/inner-tunnel? authenticate?{? ????????ntlm_auth? ? }? 修改users [root@freeradius?~]#?vim?/etc/raddb/users? ? DEFAULT?Auth-Type?=?ntlm_auth? ? 修改策略 [root@freeradius?~]#?vim?/etc/raddb/policy.conf? policy?{? ????#?Give?the?ntlm_auth?exec?module?an?"authorize"?method?that?sets?Auth-Type?to?itself? ????#?but?only?if?it's?a?valid?PAP?request,?and?Auth-Type?is?not?already?set?to?something? ????ntlm_auth.authorize?{? ????????if?(!control:Auth-Type?&&?User-Password)?{? ????????????update?control?{? ???????????????Auth-Type?:=?ntlm_auth? ????????????}? ????????}? ????}? ? }? 測試freeradius帳號驗證機制 [root@freeradius?~]#?radiusd?–X? [root@freeradius?~]#?radtest??test?'123456'?localhost?0?testing123? Sending?Access-Request?of?id?48?to?127.0.0.1?port?1812? ????????User-Name?=?"test"? ????????User-Password?=?"123456"? ????????NAS-IP-Address?=?192.168.2.97? ????????NAS-Port?=?0? ????????Message-Authenticator?=?0x00000000000000000000000000000000? ? rad_recv:?Access-Reject?packet?from?host?127.0.0.1?port?1812,?id=48,?length=20? ? 配置使用ntlm_auth做MS_CHAP認證 刪除users中的test進入點 [root@freeradius?~]#?vim?/etc/raddb/users? ? #DEFAULT?Auth-Type?=?ntlm_auth? ? 編輯mschap模塊 [root@freeradius?~]#?vim?/etc/raddb/modules/mschap? ntlm_auth?=?"/usr/bin/ntlm_auth?--request-nt-key?--username=%{mschap:User-Name:-None}?--domain=%{%{mschap:NT-Domain}:-test.COM}?--challenge=%{%{mschap:Challenge}:-00}?--n? ? t-response=%{%{mschap:NT-Response}:-00}"? ? 測試 [root@freeradius?~]#?radtest??-t?mschap??test?'123456'?localhost?0?testing123?????????? Sending?Access-Request?of?id?127?to?127.0.0.1?port?1812? ????????User-Name?=?"test"? ????????NAS-IP-Address?=?192.168.2.97? ????????NAS-Port?=?0? ????????Message-Authenticator?=?0x00000000000000000000000000000000? ????????MS-CHAP-Challenge?=?0x0f1ec04f5f7f3ec2? ????????MS-CHAP-Response?=?0x000100000000000000000000000000000000000000000000000085c8068f30dcb423d1e6f7ed5db18b53a1d321ceb8f2266c? rad_recv:?Access-Reject?packet?from?host?127.0.0.1?port?1812,?id=127,?length=38? ? ????????MS-CHAP-Error?=?"\000E=691?R=1"? ? 報錯: ? Exec-Program?output:?winbind?client?not?authorized?to?use?winbindd_pam_auth_crap.?Ensure?permissions?on?/var/cache/samba/winbindd_privileged?are?set?correctly.?(0xc0000022)?? ? Exec-Program-Wait:?plaintext:?winbind?client?not?authorized?to?use?winbindd_pam_auth_crap.?Ensure?permissions?on?/var/cache/samba/winbindd_privileged?are?set?correctly.?(0xc0000022)? ? 解決辦法: [root@freeradius?~]#?cd?/var/cache/samba/? [root@freeradius?samba]#?chown??-R??root.radiusd??winbindd_privileged/? [root@freeradius?samba]#?service??winbind?restart? Shutting?down?Winbind?services:????????????????????????????[??OK??]? Starting?Winbind?services:?????????????????????????????????[??OK??]? ? [root@freeradius?~]#?radiusd?–X? ? 再次測試 [root@freeradius?samba]#?radtest??-t?mschap??test?'123456'?localhost?0?testing123? Sending?Access-Request?of?id?231?to?127.0.0.1?port?1812? ????????User-Name?=?"test"? ????????NAS-IP-Address?=?192.168.2.97? ????????NAS-Port?=?0? ????????Message-Authenticator?=?0x00000000000000000000000000000000? ????????MS-CHAP-Challenge?=?0x58a8d7e945e9ed8f? ????????MS-CHAP-Response?=?0x00010000000000000000000000000000000000000000000000000fcd072553b1813344cbe6d3fc3fe5e1ecbf853eaf5a4a03? rad_recv:?Access-Accept?packet?from?host?127.0.0.1?port?1812,?id=231,?length=84? ????????MS-CHAP-MPPE-Keys?=?0x0000000000000000c2bea7b13efd39e82dcd04478fb185370000000000000000? ????????MS-MPPE-Encryption-Policy?=?0x00000001? ? ????????MS-MPPE-Encryption-Types?=?0x00000006
本文轉自 waydee 51CTO博客,原文鏈接:http://blog.51cto.com/waydee/1103942,如需轉載請自行聯系原作者
本文轉自 waydee 51CTO博客,原文鏈接:http://blog.51cto.com/waydee/1103942,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的FreeRADIUS 测试环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VISTA中释放系统还原占用的硬盘空间
- 下一篇: 关于数据可视化的思考小结