奇蹟手工坊台灣官網 http://www.7g-sogo.com
為防範廣告信, 帳號採手動申請, 欲申請本站會員帳號, 請於申請後, 另發一封電子郵件到 lincylin@gmail.com, 說明申請帳號及申請原因, 若審核通過會回信通知
In order to prevent the advertising/spams, account application manually, to apply for membership of the site, please send for an additional e-mail to lincylin@gmail.com, explain the application for account number and application reasons, if the approved will reply by notice.
We have Google Analytics Enabled.

用 Samba 架設 AD 之下的 Printer Server

站長的專長就是 IT ,也就是俗稱的 3C 或是 4C,那就提供一個園地讓大家可以交流吧.... 有相關的問題可以在這邊發問跟討論....

版主: 平凡的奇蹟

回覆文章
平凡的奇蹟
文章: 248
註冊時間: 2015年 5月 14日, 15:31

用 Samba 架設 AD 之下的 Printer Server

文章 平凡的奇蹟 » 2017年 8月 4日, 17:36

在中小企業環境中,辦公室內同時擁有幾台印表機讓所有員工共用,這是很正常的一件事,之前為了節省經費,安裝了 Samba Active Directory,這次要安裝一台 Printer Server 讓大家使用,雖然也可以裝在 AD 的同一台機器上,但會建議分開安裝比較好,對於擁有高階伺服器的公司,就是多裝一台虛擬機器而已,對於一般的小公司,隨便拿一台可以退休的老電腦或是老筆電就行了,因為對於列印伺服器的機器來說,不需要太強大的運算能力,快去把已經被員工嫌速度太慢而被丟到倉庫的老電腦給找出來吧。

同樣的,事先安裝好 Ubuntu Server 16.04 64位元版本 (32位元版本也行),這次我開的是單 CPU 、 1G 記憶體以及 10G 硬碟的虛擬機器,這些規格應該很多老機器都能滿足。

架設 Samba AD Printer Server 有三大步驟......咳咳, 說是大步驟... 其實都很簡單...... 只是分成三個階段比較好說明... 分別是

1. Samba 安裝及設定,加入 AD 網域
2. Printer Server 安裝及設定
3. 安裝各式 Printer 及 Printer 驅動軟體

直接進入第一個步驟....

首先安裝 Samba , 以 Ubuntu Server 為例, 輸入以下指令就能開始安裝

代碼: 選擇全部

apt-get install samba smbclient
這邊特別要說的是,要特別安裝 Samba Client,因為如果沒加入的話,到時候加入 Samba AD 會失敗,如果只是安裝 Samba 的話,只會安裝 Samba 伺服器的元件而已,上次介紹安裝 Samba AD 時,因為只要 Server 的功能,所以只安裝 Server 元件而沒有 Client 端元件,這次我們需要客戶端元件,所以必須安裝 SmbClient。

接著繼續安裝 winbind (雖然 Samba 官方文件都沒提及需要安裝 winbind,也說理論上新版的 Samba 裡面已經有含入 winbind 必須的功能,但是.... 你懂的.... 你可以自己試試不安裝這個部分.. 如果後面的過程出錯了,你再回頭把這個安裝進去也行) .....

代碼: 選擇全部

apt-get install winbind
apt-get install libnss-winbind
apt-get install libpam-winbind
同樣的,必須把 /etc/resolv.conf 改成我們的靜態版本,不要讓系統的 DnsMesq 動態去產生,用以下指令把系統原本的軟連結移除

代碼: 選擇全部

unlink /etc/resolv.conf
然後建立我們自己的 /etc/resolv.conf 內容,這次內容跟當初安裝 Samba AD Server 時所需的內容有點不同,直接設為平常我們一般用戶端 PC 的版本內容即可...
nameserver 192.168.1.3
search [xxxxxxx].com.tw
其中 nameserver 192.168.1.3 就是 Samba AD Server 的 IP 位址,Search 就是你的網域名稱 (注意,不是 AD 網域名稱,而是 Internet 的網域名稱,例如上次設定的 AD 網域名稱是 headquarters 然後 Internet 網域名稱是 mycompany.com.tw 的話,整個 AD 網域的全名是 headquarters.mycompany.com.tw,而這邊要輸入的 search 就是 mycompany.com.tw 不包括 headquarters 這部分)

接下來,我們要建立自己的 /etc/krb5.conf 檔案,上次安裝 Samba AD Server 的時候,直接複製了 Samba AD Server 自動產生的 krb5.conf 檔案,但這次我們必須自己建立一個簡單的,內容如下
[libdefaults]
default_relam = [xxxxxxxx].com.tw
dns_lookup_realm = false
dns_lookup_kdc = true
同樣的,這邊的 Default_relam 設定用剛才說明的例子,就是 mycompany.com.tw,接下來修改 /etc/samba/smb.conf 裡面的設定,有些參數要修改,有些參數要增加,自己判斷一下,如果已經有該參數但是內容不對,就修改參數,有些參數沒有的,就增加,如下
workgroup = headquarters
relam = headquarters.[xxxxxxxxx].com.tw
security = ADS
log level = 1
idmap config * : backend = tdb
idmap config * : rang = 3000-7999

winbind use default domain = yes
因為我們只是做最簡單的 Printer Server 功能,而且只有一個 AD 網域,所以上面的設定就夠我們用了....

接下來重新啟動 Samba 的元件,確定新修正的參數已生效

代碼: 選擇全部

service smbd restart
service nmbd restart
接下來我們就可以加入 Samba AD 網域了,指令如下

代碼: 選擇全部

net ads join -U administrator
接著會問你網域管理員的密碼,第一次輸入的時候,他會出現錯誤,我上谷歌搜索過這個錯誤很久,似乎這個問題也存在很久,不過先不管他,他會說用 ADS 加入失敗,退回使用 RPC ,然後會接著再問一次網域系統管理員的密碼,再輸入一次,就能成功加入網域,畫面如下
printerserver-a01.PNG
printerserver-a01.PNG (10.72 KiB) 已瀏覽 48292 次

看到這畫面就表示加入成功了,或許有人會問,那要怎樣離開網域呢? 也很簡單,用以下指令即可,有興趣可以自行加入再離開幾次試試 (如果你夠無聊的話,我只試了一次,哈哈,也算小小無聊吧.....)

代碼: 選擇全部

net ads leave -U administrator
接下來繼續最後的步驟設定,設定使用者帳戶與網域連結.... 修改 /etc/nsswitch.conf 檔案,在 passwd 及 group 後面加入 winbind 的選項,如下
passwd : compat winbind
group: compat winbind
接著啟動 winbindd

代碼: 選擇全部

winbindd
測試一下是否能正常運作

代碼: 選擇全部

wbinfo --ping-dc
看到如下畫面就表示成功了
printerserver-a02.PNG
printerserver-a02.PNG (7.03 KiB) 已瀏覽 48292 次

看到成功訊息,我們就完成了 Samba 部分的安裝及設定,也成功的把這台伺服器加入了 Samba AD .....

.

平凡的奇蹟
文章: 248
註冊時間: 2015年 5月 14日, 15:31

Re: 用 Samba 架設 AD 之下的 Printer Server

文章 平凡的奇蹟 » 2017年 8月 7日, 15:21

接下來要設定 Printer Server (印表機伺服器或稱列印伺服器),Linux 之下有兩大受歡迎的列印標準,分別是從最早就開始存在的 Berkeley UNIX LPR 列印除列衍生的 LPRng (Line Printer New Generation 也就是新一代的行列印表機,在這邊八卦一下,以前大型電腦剛出來的時候,有一種叫做行列式印表機的東東,當然現在也有,這東西一次可以列印一行,那個列印頭就是一整排的撞針,我以前也接觸過,還維修過,那個撞針有時需要調整的,感覺很像鋼琴調音師,現在仍然可以在很多工廠看到列印標籤的機器就是行列式印表機,這種機器打印的是那種貼在機器外殼,可以曝曬在陽光之下的那種特殊標籤,不是你想像那種貼在紙箱上的雷射標籤或是熱轉印標籤,呵呵,突然想起二十幾年前工作過的椰城還有蔡老闆,這家公司真的是標籤列印的專家,當年的小公司估計現在都變成大公司了吧) ,以及較新的 CUPS (Common UNIX Printing Service 通用 Unix 列印服務) 這兩種。

因為 CUPS 設計之初就是為了因應 IP 網路的時代所需,所以支援一些當下在網際網路上很需要的一些功能,因為這篇不是介紹這些很技術性的東西,所以我只大略的提一下,有興趣的人可以自行搜尋更進一步的訊息,重要的功能如下 :
  • IPP - Internet Printing Protocol 網際網路列印協定
  • Drivers - 共通性驅動程式,硬體商只要開發一種驅動程式就能支援各種不同版本的 Linux/Unix/Mac OS X (其實 Mac OS X 也跟 Linux 一樣是 Unix 的後代子孫,不過兩者分屬於不同的分支) 系統
  • Printer Classes - 可以設定多台列印伺服器指向同一台印表機,也可以同一台列印伺服器指向多台印表機
  • UNIX Print Commands - 支援 UNIX 的列印指令
因為 CUPS 功能較新較完整,而且也比較受大多數的系統採用,所以我也選用 CUPS 作為列印伺服器的版本。

閒話不說,先把 CUPS 系統安裝起來,使用以下指令

代碼: 選擇全部

apt-get install cups
安裝完之後,我們要修改一下設定檔,為了安全的原因,系統內定只接受本機連接進行管理作業,不過我們安裝的是伺服器系統,而且還是虛擬機器,所以需要進行遠端管理,因此我們需要修改設定檔,不過系統提供了 cupsctl 這個維護用的指令,可以自動地幫我們修改設定檔

使用以下指令來開啟遠端管理功能

代碼: 選擇全部

cupsctl --remote-admin
接下來試試從瀏覽器打開 CPUS 網頁介面吧,我這邊的例子是 192.168.1.21:631 ,會看到如下畫面 :
printerserver-b01.PNG
printerserver-b01.PNG (47.57 KiB) 已瀏覽 48289 次

看到這個畫面,就表示我們的 CUPS 安裝完成,接下來我們還要對伺服器再多做一些設定,而印表機的安裝則放到最後。

接下來我們要設定列印儲列的守護程序 Spoolssd Daemon,因為網路印表機有可能會同一時間內同時服務很多不同的用戶,這時候使用一個列印儲列守護程序可以增加系統的服務效率,要設定這些,只要在 Samba 的設定檔裡面增加兩行參數即可,將以下兩行參數加入 /etc/samba/smb.conf 裡面的 [global] 區段之下 :
rpc_server:spoolss = external
rpc_daemon:spoolssd = fork
接下來讓 Samba 知道我們要用 CUPS ,在 /etc/samba/smb.conf 裡面的 [printers] 區段之下加入這行 :
printing = CUPS
最後重新啟動 Samba

代碼: 選擇全部

service smbd restart
service nmbd restart
現在,我們列印伺服器設定完成了....

接下來我們還有一些額外的設定要做,Windows 在安裝新的印表機驅動程式的時候,大多數情況下會出現未授權的驅動程式的警告,所以我們要告訴Windows AD,我們設定的這台印表機伺服器是安全的,所以要設定 AD 裡面的網域群組原則,接下來我們要在 Windows 裡面進行,必須是已經加入網域的 Windows 用戶端,而且已經安裝了 RSAT (Remote Server Administration Tools),關於 RSAT 的安裝說明,請參閱我之前介紹安裝 Samba AD 網域控制站系統的文章。

進入群組原則管理工具之後,在目標網域中按右鍵,從浮出的選單中選擇建立 GPO (群組原則物件),如下
printerserver-b02.PNG
printerserver-b02.PNG (60.66 KiB) 已瀏覽 48289 次

輸入一個名稱,名稱可取自己容易辨識的,畫面如下
printerserver-b03.PNG
printerserver-b03.PNG (54.51 KiB) 已瀏覽 48289 次

接著雙擊剛剛所建立的群組原則物件以便打開管理編輯器,在管理編輯器中,選擇 [電腦設定]->[原則]->[系統管理範本]->[印表機],打開印表機相關的群組原則之後,可以看到各項原則,找到 [指向並列印限制],如下 :
printerserver-b04.PNG
printerserver-b04.PNG (157.95 KiB) 已瀏覽 48289 次

雙擊之後打開該項目的設定畫面,如下
printerserver-b05.PNG
printerserver-b05.PNG (75.35 KiB) 已瀏覽 48289 次

選擇 [已啟用],並且勾選使用者只能指向並列印到這些伺服器,然後輸入完整的伺服器名稱,必須是要 AD 網域的 FQDN (fully-qualified domain name 完整的網域全名),並且把安裝新驅動程式與更新現有驅動程式時的安全性提示,全部設定為 [不顯示警告或提高權限提示],最後按確定。

接下來繼續修改 [封裝指向並列印 - 核准的伺服器] 原則物件,如下 :
printerserver-b06.PNG
printerserver-b06.PNG (90.13 KiB) 已瀏覽 48289 次

一樣是選擇已啟用,並且按下顯示,然後在浮出的對話盒中新增完整的伺服器名稱,同樣也是 AD 網域的 FQDN,如下 :
printerserver-b07.PNG
printerserver-b07.PNG (40 KiB) 已瀏覽 48289 次

按確定之後並關閉網域群組原則編輯器。接著就等著網域自動的更新網域群組原則吧。伺服器端及網域的準備工作現在才結束。


.

回覆文章