(圖4-54)
接著設定 domainname 如以下:
$ ypdomainname mylinux.com
$ echo 'ypdomainname mylinux.com' >> /etc/rc.d/rc.sysinit
/* 將 ypdomainname mylinux.com 加入開機執行 */
與修改 /etc/hosts ,加入以下
10.0.2.15 nis.mylinux.com nis # 圖4-55 之eth0所列之IP,為筆者在虛擬機器下的IP
修改 /etc/ypserv.conf
* :* :* : none
/* 最下方去除符號 # */
接著用指令 vim /etc/sysconfig/network 編輯網路設定檔,如以下:
HOSTNAME=nis.mylinux.com
/* 重啟動網路後後才會作用,可先在 Terminal 打上指令 hostname nis.mylinux.com */
NISDOMAIN=mylinux.com # 等號兩邊不能有空格
YPSERV_ARGS="-p 974"
/* 固定 ypserv 之連線埠號為 974,因為 /etc/ypserv.conf 內的xfr_check 設定限制要 < 1024,沒有設定則浮動埠號 */
YPXFRD_ARGS = "-p 975" # 沒有設定則浮動埠號
再編輯 /etc/sysconfig/yppasswdd,加入如以下:
YPPASSWDD_ARGS = "--port 976" # 要用 --port 表示方式,要注意,沒有設定則浮動埠號
編輯 /var/yp/Makefile 檔,修改前,先仔細看檔案內之說明,此檔為 yp 初始化或更新帳戶資訊資料庫所需的參數設定,筆者僅列出需修改或加入之處,
MERGE_PASSWD = false /* 不匯總清單,僅個別比對 */
MERGE_GROUP = false
all: passwd shadow group hosts rpc services netid protocols mail
接著新增檔案 /var/yp/securenets 並加入可用 NIS 的網域或 IP
$ touch /var/yp/securenets
/var/yp/securenets 之檔案內容為以下:
host 127.0.0.1 #同 255.255.255.255 127.0.0.1,允許自己
255.255.255.0 192.168.100.0 #格式為 netmask class
255.255.0.0 10.0.2.0
接著要啟動服務並加入開啟載入,如以下
$ service rpcbind start
$ service ypserv start
$ service ypxfrd start
$ service yppasswdd start
$ chkconfig --level 235 rpcbind on
$ chkconfig --level 235 ypserv on
$ chkconfig --level 235 ypxfrd on
$ chkconfig --level 235 yppasswdd on
再來要更新 NIS 的帳密資料庫,記得 NIS Server 在系統內每次新增使用者時,皆須做更新資料庫的動作,如以下:
$ /usr/lib64/yp/ypinit -m # 編譯成功更新資料庫後,可以看到如圖4-56
(圖4-55)
(圖4-56)
圖4-56啟動 ypserv 後,我們可用指令 rpcinfo -s 10.0.2.15 來檢查各項 yp 與 rpc 服務的 version,tcp/udp,還有owner,亦可使用指令 rpcinfo -p 10.0.2.15 將 listen 的 port 列出來,如圖4-57
(圖4-57)
開啟 IPTABLES 允許 TCP 與 UDP 的 111, 5974, 5975 埠號連線,來允許其他子機器連入
$ iptables -A INPUT -p tcp --dport 111 -j ACCEPT
$ iptables -A INPUT -p tcp --dport 974 -j ACCEPT
$ iptables -A INPUT -p tcp --dport 975 -j ACCEPT
$ iptables -A INPUT -p tcp --dport 976 -j ACCEPT
$ iptables -A INPUT -p udp --dport 111 -j ACCEPT
$ iptables -A INPUT -p udp --dport 974 -j ACCEPT
$ iptables -A INPUT -p udp --dport 975 -j ACCEPT
$ iptables -A INPUT -p udp --dport 976 -j ACCEPT
$ service iptables save
亦要記得開啟 SELinux 的允許,如下
$ setsebool -P allow_ypbind 1
新增帳號後,需要去/var/yp/資料夾內,進行make指令,新帳號才會於NIS生效
至於子機器(Client)端的設定,首先安裝ypbind
$yum install ypbind -y
修改 /etc/sysconfig/network
HOSTNAME=nodeone.mylinux.com
NISDOMAIN=mylinux.com
接著在 /etc/yp.conf 檔內加入以下
domain mylinux.com server 10.0.2.15
最後在 /etc/nsswitch.conf 檔內加入可使用 nis 驗證,如圖4-58
(圖4-58)
圖4-58儲存離開後,利用指令 yptest ,就可以測試是否有成功連入 ypserv 的 NIS server 了。若想偷懶一點的讀者,已可以利用指令 setup 開啟設定畫面(圖4-59-1至圖4-59-3),最後按下圖4-59-3的 OK 後,便會自行重啟 NIS 並 binding。
(圖4-59-1)
(圖4-59-2)
(圖4-59-3)
@RAIDUS
RADIUS(https://en.wikipedia.org/wiki/RADIUS)的伺服器軟體,通常用於架設無線網路存取點(AP, Access Point)或路由器時,除了設定上下傳輸的加密金鑰,如 WPA-PSK 或 WPA2-PSK (personal),加上 AES (TKIP 加密技術會讓連線速度降低較多) 加密技術(https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)來做資料加密外(https://en.wikipedia.org/wiki/Wi-Fi_Protected_Access),我們還可以利用 RADIUS 的網路認證,來記錄何時段由何帳號,來存取那些網站,而成為 WPA 或 WPA2 的Enterprise 版本(802.1X),對 IEEE 802 網路標準規範有興趣讀者,可自行參閱IEEE網站(http://standards.ieee.org/about/get/),筆者不再此贅述。在 CentOS6_x64下,為利用指令如下安裝(圖4-60):
$ yum install -y freeradius freeradius-utils
(圖4-60)
接著利用指令 vim /etc/raddb/radiusd.conf ,編輯設定檔 /etc/raddb/radiusd.conf,筆者同樣的要提醒讀者需先仔細閱讀說明,並僅列出需修改之參數值,其實使用軟體預設值即可,如下:
user = root
listen { # 第一個 listen 區塊
ipaddr = 10.0.2.15 # 使用預設 * 為在電腦主機的所有 IP 開啟服務
port = 0 # 0為使用 /etc/services 的預設埠號,值為1812
}
log{
auth = yes # 登入行為需被記錄
auth_badpass = yes # 登入錯誤也要記錄下來
}
接著利用指令 vim /etc/raddb/client.conf 編輯那些AP主機可以連入驗證,如下
client 10.0.2.0/24 {
secret = testing123
/* 拿來加密用的字串,愈長愈好,可以自己轉換成亂碼 */
shortname = "my AP domain1"
/* client domain 說明 */
}
client 192.168.100.0/24{
secret = testing123
/* 拿來加密用的字串,愈長愈好,可以自己轉換成亂碼 */
shorname = "my AP domain2"
/* client domain 說明 */
}
修改預設驗證方式 vim /etc/raddb/sites-enabled/default
authorize {
suffix
eap {
ok = return
}
expiration
logintime
}
authenticate {
eap
}
編輯 /etc/raddb/sites-enabled/inner-tunnel
authenticate {
Auth-Type MS-CHAP {
mschap
}
eap
}
編輯 /etc/raddb/users ,來指定結合使用何帳密資料庫,或自己手動設定
Default Auth-Type := System
/* 我們指令使用系統的 /etc/passwd,故上方 radius 的 user 改為 root */
tester Cleartext-Password := "tester@pwd123"
/* 自行產生一 tester 帳號,密碼為 tester@pwd123 */
再來產生利用 tls 加密所需要的金鑰與憑證,如前幾篇文章,一樣自行產生十年的憑證
$ cd /etc/raddb/
$ openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout myradius.key -out \
myradius.pem
接著利用指令 vim /etc/raddb/eap.conf 編輯加入憑證
eap {
default_eap_type = peap
}
eap-tls{
private_key_file = /etc/raddb/myradius.key
certificate_file = /etc/raddb/myradius.pem
CA_file = /etc/raddb/myradius.pem
}
編輯 /etc/raddb/modules/mschap
use_mppe = yes
require_encryption = yes
require_strong = yes
with_ntdomain_hack = yes
以上編輯完後,因使用系統使用者帳密,不能用於 RADIUS 的 PEAP驗證,只能用 PAP的驗證。要用 PEAP 的認證,需自行產生的帳號,或是引入其他 LDAP (http://wiki.freeradius.org/modules/rlm_ldap) 或 MySQL(http://wiki.freeradius.org/guide/SQL-HOWTO) 等讓 Radius 認證的方式。有興趣的讀者,可以自行參閱 freeradius guide。
先啟動於除錯模式並詳細呈現互動記錄,執行下列指令後,會出現如圖4-61
$ radiusd -Xx
我們接著開啟另一個terminal 視窗,並使用測試令 radtest 測試帳號密碼
$ radtest testing pwd123 10.0.2.15 0 testing123
/* 或將 testing 與 pwd123 用系統內的使用者 帳密取代來測試,成功後會出現如圖4-62 */
(圖4-61)
(圖4-62)
其他 FreeRDIUS 的詳細說明,請參閱 http://freeradius.org/doc/。利用鍵盤 Ctrl+c 中斷 radiusd 的除錯(debug)模式後記得。重新啟動並加入開機執行
$ service radiusd restart
$ chkconfig --level 235 radiusd on
並要開啟 IPTABLES允許 radiusd 的 tcp 與 udp 的服務埠號
$ iptables -A INPUT -p udp --dport 1812 -j ACCEPT
$ iptables -A INPUT -p udp --dport 1813 -j ACCEPT
$ service iptables save
開啟 SELinux 允許
setsebool -P authlogin_radius 1
接著 WIFI 無線網路 AP的設定 802.1X 驗證的部分,若假設為 D-Link的機器,可參考http://www.dlink.cc/tag/radius-server,其他廠牌亦可參考其原廠網站或商品手冊之說明。下一節,筆者將介紹利用快取代理伺服器PROXY與動態IP分配伺服器來佈署有限的真實I,P與網路頻寬有限的工作環境。
If you have any feedback or question, please go to my forum to discuss.