Samba是種用來讓UNIX系列的操作系統與微軟Windows操作系統的SMB/CIFSServer Message Block/Common Internet File System網絡協定做連結的自由軟件。簡而言之此軟件在Windows與UNIX系列OS之間搭起一座橋梁讓兩者的資源可互通有無。
SMB協議是C/S模式客戶機通過該協議可以訪問服務器上的共享文件系統、打印機及其他資源。配置samba服務可以使同一網絡中的linux和windows主機之間互相訪問對方共享資源。
samba提供的端口 137,138,139,445
Samba的兩個進程
smbd --- 監聽tcp的139445端口,處理接口收到的smb數據包
nmbd --- 監聽udp的137 138端口,使其他主機能浏覽服務器上的資源
Samba五種認證方式
1.share所有人都可以訪問這台samba服務器不需要輸入用戶名和密碼。
2.user需要輸入有效的用戶名和密碼才能訪問samba服務器身份驗證由samba服務器負責。
3.server與user相同只是將身份驗證交由指定的另一台samba服務器負責。
4.domain將身份驗證交由域控制器負責
5.ads將身份驗證交由域控制器負責比domain更為安全一點
yum –y install samba 安裝samba軟件包
service smb restart samba的共享服務以後修改只要啟動這個服務就行下面這個只要第一次啟動
service nmb restart 提供的是upd的協議第一次需要啟動
chkconfig smb on
chkconfig nmb on
實驗之前將防火牆關掉
/etc/samba samba的主配置目錄
/etc/samba/lmhosts 和本地解析文件/etc/hosts原理一樣這樣共享不安全。
/etc/samba/smb.conf 主配置文件
/etc/samba/smbusers samba的別名
workgroup = MYGROUP samba服務器所在的工作組的名稱
server string = samba服務器的描述此服務器的samba版本是3.5目前最新的samba版本是4.0黑客通過在官網查詢4.0修改了3.0的哪些漏洞就可以攻擊此samba服務器但是如果將這裡的描述修改一下可以迷惑黑客提高安全。
smbclient是Samba服務器的命令行方式的登錄客戶端顯示指定Samba服務器中的共享資源列表
smbclient -L //192.168.1.210 -U user1
共享/linux目錄共享名為share
user需要輸入有效的用戶名和密碼才能訪問samba服務器身份驗證由samba服務器負責。
將安全級別改為share所有人都可以訪問這台samba服務器不需要輸入用戶名和密碼。
不安全
Windows訪問linux共享在運行裡面輸入\\192.168.1.210
只能看到共享的東西但是進不去那是因為samba權限沒有寫的權限還不夠這裡主要是理解user和share兩個認證方式的區別
Samba用戶前提是samba用戶必須是本地用戶並且轉換成為samba用戶
smbpasswd命令用於維護Samba服務器的用戶帳號
n 添加Samba用戶帳號
# smbpasswd –a user1
n 刪除Samba用戶帳號
# smbpasswd -x user1
n 禁用Samba用戶帳號
# smbpasswd –d user1
n 啟用Samba用戶帳號
# smbpasswd -e user1
允許user1對/linux目錄有寫權限其他用戶均為只讀
comment = all linux 注釋掉了是對該目錄的描述
path = /linux 共享路徑
writeable = no 是否允許寫操作no代表只讀如果是yes代表所有人都可以寫
write list = user1 只允許user1對該目錄有寫入的權限 前提該目錄a+W
客戶端連接
mount -t cifs //192.168.1.210/share /opt -o username=user1 填的是/linux下面的/share
僅允許用戶在192.168.1.0/24域可以訪問允許所有人浏覽不允許匿名訪問但是加了valid users 就成了只有user1可以訪問
browseable = yes 允許所有人浏覽
valid users = user1 只能誰才能讀(設置允許訪問共享資源的用戶和組 組要加@)
public = yes 允許匿名訪問no不允許匿名訪問
hosts deny = 192.168.1.210
hosts allow = 192.168.1.210 兩個同時存在允許優先
賬號映射(別名)目的是避免利用samba 帳號來猜測系統帳號
方法:
1在全局啟用映射表
username map=/etc/samba/smbusers
2添加映射帳戶
vim /etc/samba/smbusers
3重啟服務