如何在CentOS 6.3中安装和配置samba服务器

时间:2019-08-20 17:58:15  来源:igfitidea点击:

Samba是SMB/CIFS网络协议的免费软件重新实现,最初由Andrew Tridgell开发。

从版本3开始,Samba为各种windows客户机提供文件和打印服务,可以作为主域控制器(PDC)或者域成员与Windows服务器域集成。它也可以是Active Directory域的一部分。

Samba运行在大多数Unix和类Unix的系统上。
Samba几乎是所有Linux发行版的标准配置,在其他基于Unix的操作系统上,Samba通常也作为基本系统服务包含在其中。
Samba的名称来自SMB(服务器消息块 Server Message Block),它是windows网络文件系统使用的标准协议的名称。

软件信息

操作系统: CentOS release 6.3 (Final)
软件包: On Samba Version 3.5
samba-winbind-clients-3.5.10-125.el6.i686
samba-3.5.10-125.el6.i686
samba-common-3.5.10-125.el6.i686
内核信息: Linux 2.6.32-279.el6.i686 #1 SMP / i686 i686 i386 GNU/Linux

Samba服务器使用以下端口号

  • 137/tcp

  • 137/udp

  • 138/tcp

  • 138/udp

  • udp/139协议

  • udp/139协议

  • 445/tcp协议

  • 445/udp协议

samba守护程序名称 : smb和nmb

Samba服务实现为两个守护进程:

  • smbd,提供文件和打印机共享服务

  • nmbd,提供NetBIOS到IP地址名服务。TCP/IP上的NetBIOS通过某个方法将计算机名映射到TCP/IP网络的IP地址。

如何安装和配置samba服务器

通过yum命令安装用于打印机的cups-libs包。

yum install -y samba samba-commons cups-libs

创建一个要共享的目录

mkdir /sharedrepo

创建一个新的组或者使用现有的组

这个组用于控制对共享目录的访问

groupadd staff

更改共享文件夹的组和权限

chgrp -R staff /sharedrepo
chmod -R 777 /sharedrepo

更改共享目录上的selinux安全上下文

如果禁用了selinux, 则可以跳过此步骤。

chcon -R -t samba_share_t /sharedrepo/
semanage fcontext -a -t samba_share_t /sharedrepo/
setsebool -P samba_enable_home_dirs on

创建用户并将其添加到staff组中。

useradd test
usermod -G staff test
smbpasswd -a test

备份/etc/samba/smb.conf文件,然后编辑它。

cd /etc/samba/
cp -p smb.conf smb.conf.orig

在最后一行添加下面内容:

vi /etc/samba/smb.conf

	[sharedrepo]
	comment = shared-directory
	path = /sharedrepo
	public = no
	valid users = test, @staff
	writable = yes
	browseable = yes
	create mask = 0765

在/etc/samba/smb.conf中修改下面内容. 允许通过网络访问samba服务器。

interfaces = lo eth0 eth1 192.168.56.0/24 
	hosts allow = 127. 192.168.56.

在/etc/services文件中添加服务

vi /etc/services

netbios-ns	137/tcp			# netbios name service
netbios-ns	137/udp			# netbios name service
netbios-dgm	138/tcp			# netbios datagram service
netbios-dgm	138/udp			# netbios datagram service
netbios-ssn	139/udp			# netbios session service
netbios-ssn	139/udp			# netbios session service

配置防火墙

为samba的端口号137,138,139和445添加iptables规则。

编辑/etc/sysconfig/iptables文件

[root@localhost ~]#  vi /etc/sysconfig/iptables

# Generated by iptables-save v1.4.7 on Sun Feb 17 19:36:23 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [199:25862]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A INPUT -s 192.168.56.0/24 -m state --state NEW -p tcp --dport 137 -j ACCEPT
-A INPUT -s 192.168.56.0/24 -m state --state NEW -p tcp --dport 138 -j ACCEPT
-A INPUT -s 192.168.56.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
-A INPUT -s 192.168.56.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A INPUT -j REJECT --reject-with icmp-port-unreachable 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited 
COMMIT
# Completed on Sun Feb 17 19:36:23 2013
[root@localhost ~]# 

Now restart the iptable

[root@localhost ~]# /etc/init.d/iptables restart

Check the iptable is it implemented or not

[root@localhost ~]#iptables -nL

启动smb和nmb服务。

/etc/init.d/smb start
/etc/init.d/nmb start

设置smb和nmb服务在开机时自启动

# chkconfig smb on
# chkconfig nmb on

chkconfig --list | egrep "smb|nmb"
nmb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off

在linux和windows机器上测试samba

Windows用户:

\samba服务器ip\共享目录

Linux用户:

必须在系统中安装smbclient。

查看samba服务器中的共享对象列表:

smbclient -L \ipaddress-samba-server -U username

通过smb控制台访问samba服务器:

smbclient //ip-samba-server/sharedDirectory -U username

获取控制台后,可以使用get和put命令获取文件或者把文件放到共享目录

例如:

Hyman@theitroad:~$ smbclient //192.168.56.101/sharedrepo -U redtest
Enter redtests password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.10-125.el6]
smb: > ls
  .                                   D        0  Sun Feb 17 10:50:01 2013
  ..                                 DR        0  Sun Feb 17 22:38:55 2013
  Untitled Folder                     D        0  Sun Feb 17 19:45:51 2013

		50553 blocks of size 262144. 44708 blocks available
smb: > help
?              allinfo        altname        archive        blocksize      
cancel         case_sensitive cd             chmod          chown          

smb: >

要在系统中挂载samba服务器共享的目录,客户端系统必须支持cifs文件系统。

mount -t cifs //samba-server-ipaddress/shared-directory-name -o username=USERNAME /mnt/

在ubuntu中

通过 smb://ipaddr-samba-server/shared-directory访问。