Samba 伺服器

微軟的網路芳鄰檔案系統為 CIFS(Common Internet File System),若想讓 Unix-Like 主機加入微軟的網路芳鄰並並享資源時,就必須架設 Samba Server,目的就是要讓微軟的使用者在網路芳鄰中看到這台主機的 NetBIOS name,進而存取享的資源。

以下範例需要認證才能登入共享資料夾
安裝 Samba Server
# yum install -y samba
開機時啟動
# chkconfig nmb on  // 提供 NetBIOS 名稱解析
# chkconfig smb on  // 提供檔案共享及列印服務

開啟防火牆,nmbd 通訊埠為 137(udp)、138(udp),smbd 通訊埠為 139(tcp)、445(tcp)
# iptables -I INPUT -p udp --dport 137:138 -j ACCEPT
# iptables -I INPUT -p tcp --dport 139 -j ACCEPT
# iptables -I INPUT -p tcp --dport 445 -j ACCEPT
# service iptables save

設定共享資料及存取權限,組態檔 /etc/samba/smb.conf
# mkdir /sharedir  // 建立共享資料夾
# chcon -t samba_share_t /sharedir  // SELinux設定
# vim /etc/samba/smb.confg
 [global]
 workgroup = career
 netbios name = santanalee
 security = usr  //share 不需要認證,user 需要認證
 passdb backend = tdbsam  // 檔案是 passdb.tdb

 [share_samba]  // 共享目錄名稱
 path = /sharedir
 valid users = sambauser
 writeable = yes
 public = no
 browseable = yes  // 若設定為no,但如果登入者知道完整路徑仍可存取。
 available = yes  // 此區段設定是否動作,預設是yes,可以不用輸入

使用 testparm 測試 /etc/samba/smb.conf 語法是否正確。
故意在組態檔內寫入一個錯誤參數名稱 printers。
# testparm  // 自動載入 /etc/samba/smb.conf
 Load smb config files from /etc/samba/smb.conf
 rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
 Processing section "[homes]"
 Processing section "[printers]"
 Unknown parameter encountered: "aprintable"
 Ignoring unknown parameter "aprintable"
 WARNING: [printers] service MUST be printable!
 Loaded services file OK.
 Server role: ROLE_STANDALONE
 Press enter to see a dump of your service definitions

新增 Samba 使用者『sabmauser』,密碼為『1』
# useradd -s /sbin/nologin sambauser
# smbpasswd -a sambauser
 New SMB password: 『1』
 Retype new SMB password: 『1』
 Added user sambauser.

查詢 samba 使用者資料庫
# pdbedit -L
 sambauser:502:

啟動服務
# service nmb start ; service smb start

Windows 平台測試

  1. 打開網路芳鄰,可以看到 NetBIOS Name 為 SANTANALEE 的主機


  2. 進入主機要輸入帳/密 (sambauser/1)


  3. 登入後可看見共享目錄 share_samba 及使用者家目錄


  4. 登入使用者家目錄遭系統拒絕,是因為 SELinux 關係

  5. 設定 SELinux 布林值
    # setsebool -P samba_enable_home_dirs 1

Linux 平台測試

安裝 Samba Client 套件
# yum install -y samba-client
查看 Samba Server 共享資源訊息
# smbclient -L 10.10.10.137

存取共享目錄,但無法支援許多常用的指令,故建議掛載以方便進行操作。
# smbclient //10.10.10.137/share_samba -U sambauser%1
 // 可使用 NetBIOS Name 或 IP 位址,另外 sambauser%1 的寫法,密碼會留在歷史資料內,不加 %1 系統會出現提示輸入訊息。


手動掛載
# mkdir /mnt/smb
# mount(-t cifs)//10.10.10.137/share_samba /mnt/smb -o username=sambauser%1  // 檔案系統參數可以不用下
# df


開機時掛載
# chkconfig netfs on
# service netfs start
# echo '//10.10.10.137/share_samba /mnt/smb cifs username=sambauser%1 0 0' >> /etc/fstab
# mount -a

沒有留言:

張貼留言