1. 程式人生 > 實用技巧 >ossh(portal、freeradius) + nac(freeAC) + AC(漢明6100)聯調

ossh(portal、freeradius) + nac(freeAC) + AC(漢明6100)聯調

相關資源:

1OSSH的安裝採用了OSSH免費版華為Portal(portal版本是華為portal1.0)系統ISO映象版,直接下載映象安裝在虛擬機器上即可。

下載地址:

連結:http://pan.baidu.com/s/1hqh0t2O密碼: uz1s

包含:映象、安裝說明、配置手冊

2NACfreeAC的一個軟體,在freeAC論壇上下載。我這裡準備的是一個centos6.5 64位虛擬機器,將下載的軟體nac-0.2.0-v1.x86_64.rpm安裝在這臺虛擬機器上。

下載地址:http://pan.baidu.com/s/1gd5kMt1密碼: rzdp

實驗拓撲圖:


wKioL1VilYqDH0IpAACyw0Z-j2U981.jpg

ossh地址: 192.168.100.100 portal + freeradius2.2.0

使用者名稱:root

密碼: m0n0Radius

portal訪問地址:

http://192.168.100.100:8088/

NAC:192.168.100.101

使用者名稱:root

密碼: 123456

  • AC配置

AC使用的漢明的6100,對這款產品的相關配置,可以聯絡廠家技術支援要一個配置文件,我是參考一個《Howay系列無線控制器使用者手冊(WEB)--配套B20X版本》的文件進行的配置。配置的主要過程:

1、AC+AP+客戶端調通,能夠使無線客戶端能夠連線到無線網路並且通過DHCP獲取到IP。按照下面的規劃進行介面配置、DHCP配置、WLAN配置(無線服務配置、AP配置)。

AC地址:

管理地址:192.168.1.1

eth1地址:

192.168.1.33 (vlan1,管理客戶端)

eth2地址: 10.0.0.221 vlan90,連線AP,開啟DHCPAP自動獲取10.0.0.222

eth3地址: 192.168.100.1 vlan100,連線ossh

sta虛擬服務地址: 200.200.200.1 (vlan200,提供給終端使用者STA,開啟DHCP

(注:上面的配置是我實驗環境的配置,大家可以根據自己的環境做不同的規劃配置。)

注意介面配置的時候STA虛擬服務埠需要勾選“標籤”方式(tag),埠選擇需要選取與AP相同的物理埠,否則客戶端不能DHCP分配到地址。無線服務配置裡面的預設VLAN要填寫STA所在的VLAN。如下圖:

wKioL1Vilc6iMeNKAAG6YL5ffnk835.jpg

安全配置裡的

portal認證和radius認證可以先關閉,先調通客戶端能正常接入WLAN並且能正常獲取DHCP地址。

2、認證配置。portalradius認證。配置portal伺服器地址和需要認證的網段,radius伺服器地址、埠等。 首先是NAS配置(NAS:網路接入伺服器,RADIUS伺服器的客戶端,配置成AC接入RADIUS網路的物理埠eth3地址192.168.100.1),如下圖:

wKiom1VilL2Rmtu5AAFva2h-MwQ255.jpg



下圖是portal配置:

wKioL1VilpqjFgaKAALcszUJLvo177.jpg



下圖是portal配置裡面的“本地伺服器”配置:

注意,這裡的“本地伺服器”指的就是NAC

wKiom1VilXuCGgZcAAG-fFHfbYw797.jpg

接下來是radius“認證”和“計費”配置:

wKiom1VilfqhnERuAAJp_ozqJc0896.jpgwKiom1Vilg6R8Zd4AAMHgHqVZhc072.jpg


最後是“域配置”:

wKioL1Vil6yiGp03AAJe_a7CoKE460.jpg

到這裡,AC就配置好了。做一個簡單總結:

首先將基本的AC+AP+STA調測好,使WIFI客戶端STA可以接入WLAN並且能夠自動獲取DHCP地址,如果有上網條件,還可以將上網的網口配置進去,同時對ACDNS和閘道器做一些簡單調整,可以實現STA的上網,我們這個實驗環境沒有做這部分內容。

然後是在AC上配置portal伺服器和radius伺服器的相關資訊,對於這部分內容,腦子裡始終記住“服務端-客戶端”網路模型就可以了,即:AC作為NAS,作為客戶端去連RADIUS伺服器;AC作為客戶端,portal伺服器作為服務端;AC作為客戶端,NAC作為服務端。

二、portal配置(ossh

編輯配置檔案:vi

/usr/local/portalServer/webapps/portalServer/WEB-INF/classes/configs.prod.properties

acHost=192.168.100.101 // NAC地址

acPort=2000 // NAC開放的埠

serverPort=0

sharedSecret=123456789 //共享金鑰

#chap 0 pap 1

authType=0

timeoutSec=3

sleepSec=0

修改後儲存,注意:每次修改配置檔案後,需重啟portalServer 服務後方能生效

日誌:

/usr/local/portalServer/logs/localhost_access_log.2015-05-12.txt

啟動 portalServer 服務,執行:

/usr/local/portalServer/bin/startup.sh

關閉 portalServer 服務,執行:

/usr/local/portalServer/bin/shutdown.sh

三、freeradius配置:

日誌:

/usr/local/var/log/radius/radius.log

啟動/停止/重啟 radius

/etc/init.d/rc.radiusd start/stop/restart

radius相關配置:

/usr/local/etc/raddb/radiusd.conf

[[email protected] raddb]# more clients.conf

client localhost {

ipaddr= 127.0.0.1

secret = testing123

require_message_authenticator= no

nastype = other #localhost isn't usually a NAS...

}

client 200.200.200.0/24 {

secret = 123456789

shortname = ap2000

}

client 192.168.100.0/24 {

secret = 123456789

shortname = ac6100

nastype = other

}

[[email protected] raddb]# more users

steve Cleartext-Password:= "testing"

Service-Type= Framed-User,

Framed-Protocol= PPP,

Framed-IP-Address= 172.16.3.33,

Framed-IP-Netmask= 255.255.255.0,

Framed-Routing= Broadcast-Listen,

Framed-Filter-Id= "std.ppp",

Framed-MTU= 1500,

Framed-Compression= Van-Jacobsen-TCP-IP

DEFAULT Framed-Protocol== PPP

Framed-Protocol= PPP,

Framed-Compression= Van-Jacobson-TCP-IP

DEFAULT Hint== "CSLIP"

Framed-Protocol= SLIP,

Framed-Compression= Van-Jacobson-TCP-IP

DEFAULT Hint== "SLIP"

Framed-Protocol= SLIP

[[email protected] raddb]# more proxy.conf

proxy server {

default_fallback= no

}

home_server localhost {

type= auth

ipaddr= 127.0.0.1

port= 1812

secret= testing123

require_message_authenticator= yes

response_window= 20

zombie_period= 40

revive_interval= 120

status_check= status-server

check_interval= 30

num_answers_to_alive= 3

max_outstanding= 65536

coa{

#Initial retransmit interval: 1..5

irt= 2

#Maximum Retransmit Timeout: 1..30 (0 == no maximum)

mrt= 16

#Maximum Retransmit Count: 1..20 (0 == retransmit forever)

mrc= 5

#Maximum Retransmit Duration: 5..60

mrd= 30

}

}

home_server_pool my_auth_failover {

type= fail-over

home_server= localhost

}

realm example.com {

auth_pool= my_auth_failover

}

realm LOCAL {

}

realm ossh {

auth_pool = my_auth_failover

}

四、NAC配置:

配置檔案:

[[email protected] bin]# more/usr/local/etc/nac-0.2.0/config/nac.conf

#NAC工作的網路介面

NetIF = eth0

# 使用外部Portal或者內部Portal,0表示內部Portal,1表示外部Portal

UsePortal = 1

#Portal協議, UsePortal = 1 時有效. 1表示華為協議,2表示CMCC協議,版本只支援華為v1

PortalProtocol = 1

#Portal伺服器共享金鑰

PortalShareSecretKey = 123456789

#Portal伺服器IP地址,UsePortal = 1時有效

PortalAddress = 192.168.100.100

#Portal伺服器的URL,UsePortal = 1時有效

PortalURL = http://192.168.100.100:8088/

#Portal認證方式,0表示CHAP,1表示PAP。當 UsePortal = 1 時有效

PortalMthod = 0

# 使用外部Radius或者內部Radius,0表示內部Radius, 1表示外部Radius

UseRadius = 1

#Radius伺服器IP地址, UseRadius = 1 時有效

RadiusAddress = 192.168.100.100

#Radius共享金鑰

#RadiusShareSecretKey = testing123

RadiusShareSecretKey = 123456789

#Portal伺服器WEB資源路徑, UsePortal = 0 時有效

PortalResource =/usr/local/etc/nac-0.2.0/www

#Portal伺服器執行配置檔案路徑, UsePortal = 0 時有效

PortalConfig =/usr/local/etc/nac-0.2.0/config/route.txt

#Portal伺服器工作埠,預設埠為10000. UsePortal = 0 時有效

PortalPort = 10000

# 認證使用者線上時長限制,單位秒,0時無限制,預設值為1200s

SessionTime = 1200

# 認證用線上時長檢測間隔,單位秒.SessionTime等於0,該值無效,預設值為5s

CheckInterval = 5

# 使用者賬號儲存檔案路徑. usePortal = 0 時有效

NACUsers =/usr/local/etc/nac-0.2.0/config/users.txt

# 免認證使用者IP,多個以逗號隔開

FreeUsersList = {

}

#URL白名單,多個以逗號隔開

WhiteURLList = {

}

# 外網IP白名單,多個以逗號隔開

WhiteInternetIPList = {

192.168.131.2

}

啟動、關閉、重啟NAC服務:

service nac restart

四、配置mysql,使freeradius支援mysql資料庫。

1、資料庫安裝、配置

yum install -y mysql*

[[email protected] lib]# mysqladmin -u rootpassword 'mysql'

[[email protected] lib]# mysqladmin -u root -h osshpassword 'mysql'

create database radius;

建立名為radius的資料庫

exit退出資料庫。

再進入/usr/local/etc/raddb/sql/mysql下匯入和建立表結構

mysql -u root -pmysql < admin.sql

mysql -u root -pmysql radius </usr/local/etc/raddb/sql/mysql/schema.sql

mysql -u root -pmysql radius </usr/local/etc/raddb/sql/mysql/nas.sql

2、修改配置檔案

修改 /usr/local/etc/raddb/site_enabled/default 檔案:

註釋太多,將註釋和空行遮蔽:

cp default default.bak && grep -v^# default.bak|grep -v ^.#|grep -v ^$>default

authorize{} accounting {}中的sql前面的#去掉,並把authorize{} 中的files前加#;檔案如下:

[[email protected] sites-enabled]# more default

authorize {

preprocess

chap

mschap

digest

suffix

eap{

ok= return

}

#files

sql

expiration

logintime

pap

}

authenticate {

Auth-TypePAP {

pap

}

Auth-TypeCHAP {

chap

}

Auth-TypeMS-CHAP {

mschap

}

digest

unix

eap

}

preacct {

preprocess

acct_unique

suffix

files

}

accounting {

detail

exec

attr_filter.accounting_response

sql

}

session {

radutmp

}

post-auth {

exec

Post-Auth-TypeREJECT {

#log failed authentications in SQL, too.

attr_filter.access_reject

}

}

pre-proxy {

}

post-proxy {

eap

}

主配置檔案修改modules {}取消這一行的註釋: $INCLUDE sql.conf,配置檔案如下:

[[email protected] init.d]# more/usr/local/etc/raddb/radiusd.conf

prefix = /usr/local

exec_prefix = ${prefix}

sysconfdir = ${prefix}/etc

localstatedir = ${prefix}/var

sbindir = ${exec_prefix}/sbin

logdir = ${localstatedir}/log/radius

raddbdir = ${sysconfdir}/raddb

radacctdir = ${logdir}/radacct

name = radiusd

confdir = ${raddbdir}

run_dir = ${localstatedir}/run/${name}

db_dir = ${raddbdir}

libdir = ${exec_prefix}/lib

pidfile = ${run_dir}/${name}.pid

max_request_time = 30

cleanup_delay = 5

max_requests = 1024

listen {

type= auth

ipaddr= *

port= 0

}

listen {

ipaddr= *

port= 0

type= acct

}

hostname_lookups = no

allow_core_dumps = no

regular_expressions = yes

extended_expressions = yes

log {

destination= files

file= ${logdir}/radius.log

syslog_facility= daemon

stripped_names= no

auth= no

auth_badpass= no

auth_goodpass= no

}

checkrad = ${sbindir}/checkrad

security {

max_attributes= 200

reject_delay= 1

status_server= yes

}

proxy_requests = yes

$INCLUDE proxy.conf

$INCLUDE clients.conf

thread pool {

start_servers= 5

max_servers= 32

min_spare_servers= 3

max_spare_servers= 10

max_requests_per_server= 0

}

modules {

$INCLUDE${confdir}/modules/

$INCLUDEeap.conf

$INCLUDE sql.conf

}

instantiate {

exec

expr

expiration

logintime

}

$INCLUDE policy.conf

$INCLUDE sites-enabled/

[[email protected] init.d]#

3)在資料庫中加入測試帳號

mysql> use radius;

建立組資訊:(這些命令不用做任何修改,直接ctrl+cctrl+v就好了)

mysql> insert into radgroupreply (groupname,attribute,op,value)values ('user','Auth-Type',':=','Local');

mysql> insert into radgroupreply(groupname,attribute,op,value) values('user','Service-Type',':=','Framed-User');

mysql> insert into radgroupreply(groupname,attribute,op,value) values('user','Framed-IP-Address',':=','255.255.255.255');

mysql> insert into radgroupreply(groupname,attribute,op,value) values('user','Framed-IP-Netmask',':=','255.255.255.0');

建立使用者資訊:

mysql> insert into radcheck(username,attribute,op,value) values ('test','User-Password',':=','test');

insert into radcheck(username,attribute,op,value) values ('steve','User-Password',':=','testing');

將使用者加入組中:

mysql> insert into radusergroup(username,groupname) values ('test','user');

insert into radusergroup (username,groupname)values ('steve','user');

mysql>exit;

退出資料庫

以上命令已添加了一個user組和一個使用者,使用者名稱密碼都是“test”,以及一個“steve”使用者,密碼是“testing

若希望一個賬號只允許一個使用者登陸,需新增下行,不新增則一個賬號可以多個使用者同時登陸:

mysql> INSERT INTO radgroupcheck(groupname,attribute,op,VALUE) VALUES ('user','Simultaneous-Use',':=','1');

五、無線認證上網測試

使用有無線網絡卡的膝上型電腦接入到wlan,開啟瀏覽器,隨便輸入一個IP地址,比如11.1.1.1 ,瀏覽器會彈出portal,如下圖所示:

wKiom1VkLnrA6aRQAADyk-TZgLU613.jpg

輸入使用者名稱“steve密碼:“testing”,點選登入按鈕,成功登入,如下圖:

wKioL1VkMDGz_bIcAADP8_DIQLM455.jpg



注意,由於本實驗環境沒有連線外網,因此,測試時需要直接輸入IP地址,而不能輸入域名。有條件的話,可以在AC上配置連線外網的網線,並配置好DHCP子網的閘道器、DNS等配置,即可實現最終的認證上網功能。

調測過程可能出錯的地方主要在freeradius上,在調測的時候可以先關閉freeradius/etc/init.d/rc.radiusd stop),然後使用 radiusd –X 命令啟用調測模式,這樣,可以實時看到除錯的訊息,方便問題定位。


六、總結

上面是在調測過程中的配置,由於篇幅有限,沒有做詳細說明,在各自的軟體產品文件裡面都能找到相應的說明。在這裡做一個簡單的說明:

對於首次安裝配置portalradius的人來說,不熟悉相關的概念和配置,因此開始會有些迷茫,我的建議是抓住幾個要點:第一,每個軟體的關鍵配置檔案、日誌、程式啟動、關閉命令,將這些最基本的東西記錄下來,至少這些是傻瓜型的;第二、對關鍵配置檔案中的配置瀏覽一遍,對於其中有不懂的引數,查詢相關資料瞭解,根據自己的環境做相應的調整;第三、除錯過程中碰到問題反覆進行修改引數、重啟程式都無法解決的時候,也許是因為對某一個概念理解有誤或者遺漏,建議去閱讀最基礎的文件將自己的知識補足,比如RADIUS協議,802.11協議的基礎文件。

在本實驗環境中沒有配置上網環境,所以radius中的白名單之類的配置是空的。


轉載於:https://blog.51cto.com/yuweibing/1654885