第10章                 网络服务器

Samba服务器可实现不同类型计算机之间文件和打印机的共享。

 

SMB(Server Message Block,服务信息块)协议是实现网络上不同类型计算机之间文件和打印机共享服务的协定。SMB的工作原理就是让NetBIOS协议与SMB协议运行在TCP/IP之上,并且利用NetBIOS的名字解释功能让Linux计算机可以在Windows计算机的网上邻居中被看到,从而实现Linux计算机与Windows计算机之间相互访问共享文件和打印机的功能。

Samba是一组使Linux支持SMB协议的软件,基于GPL原则发行,源代码完全公开。Samba的核心是两个守护进程smbd和nmbd。smbd守护进程负责建立对话、验证用户、提供文件和打印机共享服务等;nmbd守护进程负责实现网络浏览。

 

Samba服务器提供5钟安全级别,利用security参数可指定其安全级别,最常用的安全级别是共享或用户。

  • 共享(Share):当客户连接到Internet服务器后,不需要输入Samba用户名和口令就可以访问Samba服务器中的共享资源。这种方式方便但不太安全。
  • 用户(User):这是Samba服务器默认的安全级别。Samba服务器负责检查Samba用户名和口令,验证成功后才能访问相应的共享目录。
  • 域(Domain):Samba服务器本身不验证Samba用户名和口令,而由Windows域控制服务器负责。此时必须指定域控制服务器的NetBIOS名称。
  • 服务器(Server):Samba服务器不验证Samba用户名和口令,而将输入的用户名和口令传递给另一个Samba服务器来校验。此时必须指定负责校验的那个Samba服务器的名称。
  • 活动目录域(ADS):Samba服务器不验证Samba用户名和口令,而由活动目录域服务器来负责。同样需要指定活动目录域服务器的NetBIOS名称。

 

利用Shell命令添加Samba用户

只有Linux系统本身的用户才能成为Samba用户,并需要设置其Samba口令。Samba用户账号信息默认保存于/etc/samba/smbpasswd文件。利用smbpasswd命令可添加Samba用户并设置其口令。

smbpasswd [选项] [用户名]               将Linux用户设置为Samba用户

-a 用户名               增加Samba用户

-d用户名              暂时锁定指定的Samba用户

-e用户名              解锁指定的Samba用户

-n用户名              设置指定的Samba用户无密码

-x用户名               删除Samba用户

 

与Samba服务相关的Shell命令

1. smbclient [-L NetBIOS名|IP地址] [共享资源路径] [-U 用户名]            查看或访问Samba共享资源

 

2. smbstatus          查看Samba共享资源被使用的情况

 

DNS服务器

域名服务是TCP/IP网络中极其重要的网络服务,其实现域名与IP地址之间的转换功能。域名系统采用分布式数据系统结构,主要由三个部分组成:

  • 域名空间:结构化的域名层次结构和相应的数据。
  • 域名服务器:以区域(zone)为单位管理指定域名空间中的服务器数据,并负责其控制范围内所有主机的域名解析请求。
  • 负责向域名服务器提交解析请求。

 

DNS服务器的类型

1. 主域名服务器(Master Server)

主域名服务器从管理员创建的本地磁盘文件中加载域信息,是特定域中权威性的信息源。配置Internet主域名服务器时需要一整套配置文件,其中包括主配置文件(named.conf),正向域的区域文件、反向域的区域文件、根服务器信息文件(named.ca)。一个域中只能有一个主域名服务器,有时为了分散域名解析任务,还可以创建一个或多个辅助域名服务器。

2. 辅助域名服务器(Slave Server)

福主域名服务器是主域名服务器的备份,具有主域名服务器的绝大部分功能。配置Internet副主域名服务器时只需要配置主配置文件,而不需要配置区域文件。因为区域文件可从主域名服务器转移过来后存储在辅助域名服务器。

3. 缓存域名服务器(Caching Only Server)

缓存域名服务器本身不管理任何域,仅运行域名服务器软件。它从远程服务器获得每次域名服务器查询的回答,然后保存在缓存中,以后查询到相同的信息时可予以回答。配置Internet缓存域名服务器时只需要缓存文件。

 

域名服务器的相关文件

文件选项

文件名

说明

主配置文件

/etc/named.conf

用于设置DNS服务器的全局参数,并指定区域文件名及其保存路径

根服务器信息文件

/var/named/named.ca

是缓存服务器的配置文件,通常不需要手工修改

正向区域文件

由named.conf文件指定

用于实施区域内主机名到IP地址的正向解析

反向区域文件

由named.conf文件指定

用于实施区域内IP地址到主机名的方向解析

 

每一个区域文件都由SOA记录开始,并一定包括NS记录。对于正向区域文件可能包括A记录、MX记录、CNAME记录,而反向区域文件包括PTR记录。另外,还必须注意区域文件中各行的格式也很重要,一定要用【Tab】键对齐。

 

httpd.conf是Apache服务器的配置文件。其主要由三部分组成:全局环境(Section 1:Global Environment)、主服务器配置(Section 2:’Main’ server configuration)和虚拟主机(Section 3: Virtual Hosts)。

 

Apache支持两种认证方式:基本(Basic)认证和摘要(Digest)认证,但是目前通常只使用基本认证。

 

Apache服务器可针对目录进行访问控制和认证,并可选择使用以下方法来实现。

(1)编辑httpd.conf文件,直接设置指定目录的访问控制和认证的相关参数。

(2)在指定目录下创建.htaccess文件,访问控制和认证相关的参数均保存在.htaccess文件。

这两种方法各有优势,使用.htaccess文件可以在不重启服务器的情况下改变服务器的配置,但是由于Apache服务器需要查找.htaccess文件,将会降低服务器的运行性能。

httpd.conf文件中AllowOverride参数的参数可决定.htaccess文件是否奇效,以及.htaccess文件中可使用的配置参数。

 

个人Web站点

默认情况下用户主目录中的public_html子目录是用户个人Web站点的根目录。

用户主目录的默认权限为“rwx------”,也就是说除了用户本人以外,其他任何用户都不能进入此目录。访问用户的个人Web站点时,在输入“http://IP地址|域名/~用户名”格式的URL地址。

 

虚拟主机

Apache服务器也可利用虚拟主机功能在一台服务器上设置多个Web站点。Apache支持两种类型的虚拟主机:基于IP地址的虚拟主机和基于域名的虚拟主机。

基于IP地址的各虚拟主机使用同一IP地址的不同端口,或者是使用不同的IP地址。用户可直接使用IP地址来访问此类虚拟主机。

基于域名的各虚拟主机使用同一IP地址但是域名各不相同。由于目前通常使用域名来访问Web站点,因此基于域名的虚拟主机较为常见。