CentOS 6.8版本下載點
CentOS 7 版本下載點
在 CentOS 的安裝上,我是選擇陽春版的方式處理,這樣子等一下會安裝的套件比較多,但是也可以了解是那些套件要安裝,以後查修比較簡單。
安裝前先升級 yum 套件
[root@openvpn]# yum -y update
步驟一:安裝 OPENVPN軟體
================================
[root@openvpn]# yum install -y epel-release
[root@openvpn]# yum install -y openvpn
步驟二:將漫遊中心提供的 key「clt_number_name.tar」上傳放置 /etc/openvpn
================================
CentOS 6.10裝法
[root@openvpn]# cd /etc/openvpn
[root@openvpn]# tar -zxf clt_number_shortname.tar
[root@openvpn]# service openvpn restart
[root@openvpn]# chkconfig openvpn on
CentOS 7.0裝法
[root@openvpn]# cd /etc/openvpn
[root@openvpn]# tar -zxf clt_number_shortname.tar
[root@openvpn]# cp client.conf server.conf
[root@openvpn]# systemctl restart openvpn@server
[root@openvpn]# systemctl enable openvpn@server
看 tun0 VPN通道是否有啟動,如 tun0 有產生10.1.X.X代表VPN連線成功
步驟三:安裝 freeradius 軟體套件
================================
[root@freeradius]# yum install -y freeradius freeradius-utils
[root@freeradius]# cd /etc/raddb
[root@freeradius]# vi clients.conf
================================
client 10.1.77.7 {
secret = spiradawn
shortname = roamingcenter
}
client 192.168.10.199 {
secret = radius-key
shortname = controller
}
client 10.1.77.11 {
secret = spiradawn
shortname = roamingcenter-monitor
}
===================================
修改/etc/raddb的proxy.conf檔案
[root@freeradius]# vi proxy.conf
===================================
<-->-->
realm NULL {
authhost = LOCAL
accthost = LOCAL
secret = niucltcc
}
//設定學校的網域名稱
realm ntusd.ttc.edu.tw {
authhost = LOCAL //設定Radius Server認證(auth)位址
accthost = LOCAL //設定Radius Server計費(accounting)位址
}
realm DEFAULT {
authhost = 10.1.77.7:1812
accthost = 10.1.77.7:1813
secret = spiradawn //漫遊中心給的Radius Key (金鑰)
nostrip
}
==============================
啟動 Freeradius 服務
CentOS 6.10的方式
[root@freeradius ]#service radiusd restart
[root@freeradius ]#chkconfig radiusd on -->開機啟動
CentOS 7的方式
[root@freeradius ]# systemctl restart radiusd
[root@freeradius ]# systemctl enable radiusd -->開機啟動
[root@freeradius]# radtest testuser@niu testpass 127.0.0.1 0 testing123
radtest 帳號 密碼 測試伺服器 通訊埠 Secret
Sending Access-Request of id 234 to 10.1.0.7 port 1812
User-Name = "testuser@niu"
User-Password = "testpass"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
rad_recv: Access-Accept packet from host 10.1.0.7 port 1812, id=234, length=20
以上測試freeradius驗證是否正常
步驟四:修正 hosts 檔案
================================
[root@tanetroaming]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomainlocalhost6 localhost6.localdomain6
192.168.1.10 winad.aaa.bbb.edu.tw aaa.bbb.edu.tw winad
#AD→IP FQDN 網域名稱 電腦名稱
192.168.1.20 centos.aaa.bbb.edu.tw centos
#radius→IP FQDN網域名稱 電腦名稱
================================
修改 selinux 關閉
# vim /etc/sysconfig/selinux
SELINUX=disabled #關閉selinux功能
關閉防火牆功能 --> CentOS 6 指令
# /etc/init.d/iptables save 存檔
# /etc/init.d/iptables stop 停止
開機時停用防火牆
# chkconfig iptables off
關閉 Firewalld 防火牆指令: --> CentOS 7 指令
# systemctl stop firewalld.service
設定下次開機不會啟動 Firewalld 防火牆
# systemctl disable firewalld.service
================================
步驟五:安裝samba
================================
安裝 Samba 伺服器
root@tanetroaming]# yum -y install samba.x86_64
root@tanetroaming]# yum -y install samba-client samba-winbind*
root@tanetroaming]# cd /etc/sambas
root@tanetroaming]# mv smb.conf smb.cmb.conf.def
root@tanetroaming]# cp smb.conf.example smb.conf
步驟六:安裝 Kerberos
===============================
root@tanetroaming]# yum install krb5-server.x86_64 krb5-workstation -y
root@tanetroaming]# vim /etc/krb5.conf
=================================
includedir /etc/krb5.conf.d/
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
default_realm = AAA.BBB.EDU.TW #新增網域名稱(大寫)
default_ccache_name = KEYRING:persistent:%{uid}
[realms]
AAA.BBB.EDU.TW= { #新增網域名稱(大寫)
kdc =192.168.1.10:88
admin_server =192.168.1.10:749
default_domain = aaa.bbb.edu.tw
}
[domain_realm] #新增網域名稱,注意大小寫
.aaa.bbb.edu.tw = AAA.BBB.EDU.TW
aaa.bbb.edu.tw = AAA.BBB.EDU.TW
[kdc] #增加kdc認證路徑
profile = /var/kerberos/krb5kdc/kdc.conf
================================
[root@tanetroaming]# vim /var/kerberos/krb5kdc/kdc.conf
[root@tanetroaming]# service smb restart #CentOS 6版指令
[root@tanetroaming]# systemctl restart smb.service #CentOS 7版指令
[root@tanetroaming]# chkconfig smb on #重啟 samba 服服務開機自動啟動服務
測試 samba 與 kdc 溝通
[root@tanetroaming]#kinit administrator@AAA.BBB.EDU.TW
(一定要大寫,不然就出現下列的錯誤訊息)
kinit: KDC reply did not match expectations while getting initial credentials
kinit: Clock skew too great while getting initial credentials
這個錯誤訊息是系統時間差太多了,所以要執行NTP功能
可以參考一下這個Fibe-mini 's BLOG網站NTP的做法
步驟七:將centos加入windows AD網域
====================================
[root@tanetroaming]#net rpc join -U administrator #輸入管理者帳號
Enter admin's password:****** #輸入管理者密碼
Using short domain name --WINAD
Joined 'CENTOS' to realm 'aaa.bbb.edu.tw' #出現這個代表加入成功!!
步驟八:安裝 winbind
===============================
root@tanetroaming]#yum install samba-winbind.x86_64
root@tanetroaming]#vi /etc/nsswitch.conf
# Example:
#passwd: db files nisplus nis
#shadow: db files nisplus nis
#group: db files nisplus nis
passwd: files winbind #新增winbind
shadow: files winbind #新增winbind
group: files winbind #新增winbind
重啟winbind服務開機自動啟動服務
[root@tanetroaming]# systemctl restart winbind.service #CentOS7 指令
[root@tanetroaming]# service winbind start #CentOS6 指令
[root@tanetroaming]# chkconfig winbind on
測試ntlm_auth連接AD帳號
[root@tanetroaming]#ntlm_auth --request-nt-key --domain=DOMAIN(大寫) --username=AD帳號 --password=AD帳號密碼
root@tanetroaming]#ntlm_auth --request-nt-key --domain=AAA.BBB.EDU.TW --username=test1 --password=XXXXXX
NT_STATUS_OK: Success (0x0)#出現這個代表成功了!!!
步驟九:修改 freeradius 修改ntlm_auth模組(802.1X)
=====================================
[root@tanetroaming]# vim /etc/raddb/modules/ntlm_auth
exec ntlm_auth {
wait = yes
#program = "/path/to/ntlm_auth --request-nt-key --domain=MYDOMAIN --username=%{mschap:User-Name} --password=%{User-Password}" #將這一行註銷起來
program = "/usr/bin/ntlm_auth --request-nt-key --domain=aaa.bbb.edu.tw --username=%{%{Stripped-User-Name}:-%{%{User-Name}:-None}} --password=%{User-Password}"
#修改執行路徑和NULL認證方式
}
[root@tanetroaming]# vi /etc/raddb/sites-available/default
=====================================
authorize {
。。。略。。。
# Read the 'users' file
files
if (!control:Auth-Type && User-Password) { #新增ntlm_auth驗證
update control {
Auth-Type := ntlm_auth
}
}
#
# Look in an SQL database. The schema of the database
# is meant to mirror the "users" file.
#
# See "Authorization Queries" in sql.conf
# sql
。。。略。。。
}
authenticate {
。。。略。。。
Auth-Type MS-CHAP {
mschap
}
Auth-Type ntlm_auth { #新增ntlm_auth驗證
ntlm_auth
}
==========================================
[root@freeradius ]# service radiusd restart #重啟 freeradius服務
測試freeradius+AD認證
[root@tanetroaming]# radtest AD帳號 AD帳號密碼 127.0.0.1 0 testing123
Sending Access-Request Id 152 from 0.0.0.0:50068 to 127.0.0.1:1812
User-Name = 'AD帳號'
User-Password = 'AD帳號密碼'
NAS-IP-Address = 192.168.1.20
NAS-Port = 0
Message-Authenticator = 0x00
Received Access-Accept Id 152 from 127.0.0.1:1812 to 127.0.0.1:50068 length 40
Reply-Message = 'AD CONECTSUCCESS' #代表認證成功
=======
以下2013年舊版資料======
[root@RADIUS~]# yum install freeradius freeradius-utils
[root@RADIUS~]# vi /etc/raddb/proxy.conf
[root@RADIUS~]#
[root@RADIUS~]#
[root@RADIUS~]#
Radius Server較重要的系統設定檔
radiusd.conf #FreeRADIUS 主要系統設定檔
eap.conf #EAP 認證相關設定檔
clients.conf #認證客戶端設定檔
proxy.conf #認證轉送設定檔
users #本地帳號及處理方式設定檔
snmp.conf #SNMP 相關設定檔
在etc/raddb/裡的proxy.conf設定
# vi proxy.conf
==============================================
//當遇到帳號是別的學校帳號時的預設動作為以本機進行認證動作
realm NULL {
authhost = LOCAL
accthost = LOCAL
secret = niucltcc //漫遊中心給的Radius Key (金鑰)
}
//設定學校的網域名額
realm xxxxx.tc.edu.tw {
authhost = 210.60.70.80:1812 //設定Radius Server認證(auth)位址
accthost = 210.60.70.80:1813 //設定Radius Server計費(accounting)位址
secret = xxxx //Radius Key (金鑰)
# nostrip
}
//當遇到帳號是有別的學校帳號時的預設動作為送至漫遊中心進行 Proxy 動作
realm DEFAULT {
authhost = 10.1.0.7:1812 //設定Radius Server認證(auth)位址
accthost = 10.1.0.7:1813 //設定Radius Server計費(accounting)位址
secret = niucltcc //漫遊中心給的Radius Key (金鑰)
nostrip
}
===========================================
# vi clients.conf //設定認證的網路IP
===========================================
//漫遊中心的Radius Proxy IP
client 10.1.0.7 {
secret = niucltcc //漫遊中心給的Radius Key (金鑰)
shortname = niu //漫遊中心的伺服器註解(可自定)
}
//漫遊中心的Radius Proxy IP
client 10.1.0.11 {
secret = niucltcc //漫遊中心給的Radius Key (金鑰)
shortname = niu_monitor //漫遊中心的伺服器註解(可自定)
}
//使用單位自己的Radius Server IP
client 100.170.125.80 {
secret = xxxxx //使用單位自己的Radius Key (金鑰)
shortname = ldap-server //使用單位自己的LDAP伺服器註解(可自定)
}
//使用單位自己的無線認證設備IP
client 192.168.10.200 {
secret = xxxxx //設定在無線認證設備的Radius Key (金鑰)
shortname = NXC0000 //使用單位自己的認證伺服器註解(可自定)
}
<測試外面學校帳號是否可漫遊至認證中心>
=====================================
# radtest tcccvs@test.niu.edu.tw tcccvs1qazz 10.1.0.7 0 niucltcc
radtest 帳號、密碼、測試伺服器、測試伺服器之通訊埠 Secret
【若為下列訊息代表可以由外面的帳號可漫遊至學校自己的Radius Proxy】
Sending Access-Request of id 104 to 10.1.0.7 port 1812
User-Name = "tchcvs@test.niu.edu.tw"
User-Password = "tchcvs1qazz"
NAS-IP-Address = 210.60.70.80
NAS-Port = 0
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 10.1.0.7 port 1812, id=104, length=20
<測試學校本身帳號是否可漫遊至認證中心>
# radtest user111@tccch.tc.edu.tw tcc1234 10.1.0.7 0 niucltcc
radtest 帳號、密碼、測試伺服器、測試伺服器之通訊埠 Secret
【若為下列訊息代表可以由學校自己的Radius Proxy漫遊至認證中心】
Sending Access-Request of id 100 to 10.1.0.7 port 1812
User-Name = "xxx@xxxx.tc.edu.tw"
User-Password = "xxxxxxxx"
NAS-IP-Address = 100.170.125.80
NAS-Port = 0
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 10.1.0.7 port 1812, id=100, length=20
===========================================================
參考資料如下