iT邦幫忙

0

Freeradius 呼叫 Perl 函式驗證身分

目前使用Freeradius 2.2.6 Linux CentOS release 6.9
目前Perl的程式已經寫好,但要把它塞進Freeradius中來進行authorize
但目前沒有頭緒該如何將資料傳進Perl程式中做確認
目前在site-enabled\default中有塞入perl,但似乎無法將參數塞入
ex. perl macfilter.pl %{Calling-Station-ID}
想請問語法該如何下?

1 個回答

0
cmwang
iT邦大師 1 級 ‧ 2020-07-09 10:24:17
最佳解答

有一陣子沒摸RADIUS了,不過FreeRADIUS的raddb/modules/perl預設是去呼叫raddb/example.pl,FreeRADIUS呼叫Perl時的引數印象中在$RAD_REQUEST{'xxxx'}中....

https://ithelp.ithome.com.tw/upload/images/20200709/20004868tNY8UkwfJf.png

acer1333 iT邦新手 5 級 ‧ 2020-07-10 11:34:05 檢舉

因目前是使用的程式是

authorize {
preprocess 
    rewrite_called_station_id
	perl 
    if("%{sql:SELECT COUNT(*) FROM `radusergroup` WHERE username = '%{Calling-Station-ID}' AND groupname = '%{Called-Station-SSID}'}" >= 1){
					ok
            update control {Auth-Type := Accept}
    }
    else{reject }
    
    

想請問一下該如何將Calling-Station-ID丟到Perl做驗證?

cmwang iT邦大師 1 級 ‧ 2020-07-10 15:15:46 檢舉

Calling-Station-ID是FreeRadius呼叫Perl module時傳給module的,應該把參數放進Perl的變數就能驗啊(ex. my $station_id=$RAD_REQUEST{'Calling-Station-ID'},不過鵝其實也不熟Perl,上面的程式也是臨時抱佛腳出來的XD)....

acer1333 iT邦新手 5 級 ‧ 2020-07-10 16:34:06 檢舉

後來測試出來了,跟跟你說的一樣,參數這樣帶入沒錯,只是大小寫要注意就是了

我要發表回答

立即登入回答