《LINUX 网络服务
2   构建文件服务器
 
 
                       第一部分  samba
一. Samba 服务基础
  1. SMB协议
      Server Message Block ,服务消息块
  1. CIFS协议
      Common Internet File System ,通用互联网文件系统
  1. Samba的软件包组成
      samba-3.0.23c-2.i386.rpm
      samba-client-3.0.23c-2.i386.rpm
      samba-common-3.0.23c-2.i386.rpm
      samba-swat-3.0.23c-2.i386.rpm
      system-config-samba-1.2.39-1.el5.noarch.rpm
注意: 1. 只需安装 samba samba-client samba-common 3 个软件包,即可实现 Samba 服务器和客户端的基本功能
2. 在以上 5 个软件包中, samba samba-client 软件包分别用于提供服务器和客户端程序文件, samba-common 软件包提供了服务器和客户端都需要使用的公共文件, system-config-samba 软件包用于提供图形界面管理程序(需要在 X 图形环境中使用),而 samba-swat 软件包是一个 Web 方式的管理工具
  1. Samba服务器的主要程序
      smbd :提供对服务器中文件、打印资源的共享访问
      nmbd :提供基于 NetBIOS 主机名称的解析
  1. Samba的服务脚本
      /etc/init.d/smb
  1. Samba的配置目录及文件
      /etc/samba/
      /etc/samba/smb.conf
 
二. smb.conf 主配置文件 /ec/samba/smb.conf
[global]
   workgroup = MYGROUP  所在工作组名称
   server string = Samba Server   服务器描述信息
 security = user   安全级别,可用值如下: share user server domain
   log file = /var/log/samba/%m.log  日志文件位置,“ %m” 变量表示客户机地址
   max log size = 50  日志文件的最大容量,单位为 KB
   ……
[homes]
   comment = Home Directories
   browseable = no
   writable = yes
[printers]
   ……
 
三. 常见共享目录配置项的含义
      comment :对共享目录的注释、说明信息
      path :共享目录在服务器中对应的实际路径
      browseable :该共享目录在“网上邻居”中是否可见
      guest ok :是否允许所有人访问,等效于“ public”
      writable :是否可写,与 read only 的作用相反
      read only = yes 只读     
      create mask = 755   创建文件时 权限是 755
      only guest     =     yes  仅以匿名用户登录
      valid users = liu,@liu  只运行 liu 用户可以访问 (@liu, 运行 liu 这个组访问 )
 
四. 建立可匿名访问的文件共享
  1. 修改smb.conf配置文件
      security = share
      public = yes
  1. 检查配置的正确性
      testparm 命令工具
  1. 启动smb服务
      service smb start
例如:建立一个只读的匿名共享
修改 /etc/samba/smb.conf, 修改如下内容:
[global]
   workgroup = WORKGROUP
   security = share
[movie]
   comment = Public share with movie files
   path = /var/public/movies
   public = yes
   read only = yes
 
五. 建立带验证的文件共享
 
  1. 建立Samba用户数据库文件
      默认数据库文件位于: /etc/samba/smbpasswd rhel5 默认没有)
       ( 注意: 注释掉 passdb backend = tdbsam,
然后加入 smb passwd file = /etec/samba/smbpasswd)
      系统用户帐号 -> Samba 用户帐号( samba 帐户必须是一个系统帐户)
  1. Samba帐号的别名设置
      smb.conf 文件中需要启用如下配置
       username map = /etc/samba/smbusers
      默认的别名映射文件: /etc/samba/smbusers
格式: 真实名字 = 别名 1   别名 2   别名 3  
例如:建立一个只要 vina root 组可以登陆的 samba 共享
[global]
   workgroup = WORKGROUP
   security = user
[movie]
   comment = Public share with movie files
   path = /var/public/movies
   public = no
   read only = no
   valid users = vina, @root
   write list = root
   directory mask = 0744   创建目录的权限
   create mask = 0600      创建文件的权限
  1. smb.conf文件设置客户机访问授权
      一般用在全局配置 [global] 部分
      hosts allow 配置项:仅允许特定的客户机
      hosts deny 配置项:仅拒绝特定的客户机
      客户机地址表示形式:
        以空格分隔多个地址
        主机名或 IP 地址,例如: 192.168.168.11 或者 prtsvr
        网络地址,例如: 173.17. 或者 173.17.0.0/255.255.0.0
 
六. 在客户机中访问共享目录
  1. 使用Windows客户端访问文件共享服务
      网上邻居、 UNC 路径
  1. 使用Linux客户端访问文件共享服务
      smbclient 命令,查看及登录使用共享
       smbclient -L 192.168.168.1
       smbclient -U vina //192.168.168.1/movie
      mount 命令,将共享目录挂载到本地使用
       mount -o username=vina //192.168.168.1/movie /mnt
     第二部分  ftp
 
七. FTP 服务概述
  1. FTP连接方式
      控制连接:标准端口为 21 ,用于发送 FTP 命令信息
      数据连接:标准端口为 20 ,用于上传、下载数据
      数据连接的建立类型:
  主动模式:服务端从 20 端口主动向客户端发起连接
  被动模式:服务端在指定范围内的某个端口被动等待客户端发起连接
  1. FTP传输模式
      文本模式: ASCII 模式,以文本序列传输数据
      二进制模式: Binary 模式,以二进制序列传输数据
  1. FTP用户的类型
      匿名用户: anonymous ftp
      本地用户:
  帐号名称、密码等信息保存在 passwd shadow 文件中
      虚拟用户:
  使用独立的帐号 / 密码数据文件
  1. 常见的FTP服务器程序
      IIS Serv-U
      wu-ftpd Proftpd
      vsftpd Very Secure FTP Daemon
  1. 常见的FTP客户端程序
      ftp 命令
      CuteFTP FlashFXP LeapFTP Filezilla
      gftp kuftp
 
八. vsftpd 服务基础
  1. vsftpd软件包
      官方站点 :http://vsftpd.beasts.org/
      主程序: /usr/sbin/vsftpd
      服务名: vsftpd
      用户控制列表文件
 /etc/vsftpd/ftpusers
 /etc/vsftpd/user_list
      主配置文件
 /etc/vsftpd/vsftpd.conf
  1. 常用的全局配置项
      listen=YES :是否以独立运行的方式监听服务
      listen_address=192.168.4.1 :设置监听的 IP 地址
      listen_port=21 :设置监听 FTP 服务的端口号
      write_enable=YES :是否启用写入权限
      download_enable YES :是否允许下载文件
      userlist_enable=YES :是否启用 user_list 列表文件
      userlist_deny=YES :是否禁用 user_list 中的用户
      max_clients=0 :限制并发客户端连接数
      max_per_ip=0 :限制同一 IP 地址的并发连接数
  1. 常用的匿名FTP配置项
      anonymous_enable=YES :启用匿名访问
      anon_umask=022 :匿名用户所上传文件的权限掩码
      anon_root=/var/ftp :匿名用户的 FTP 根目录
      anon_upload_enable=YES :允许上传文件
      anon_mkdir_write_enable=YES :允许创建目录
      anon_other_write_enable=YES :开放其他写入权
      anon_max_rate=0 :限制最大传输速率,单位为字节
  1. 常用的本地用户FTP配置项
      local_enable=YES :是否启用本地系统用户
      local_umask=022 :本地用户所上传文件的权限掩码
      local_root=/var/ftp :设置本地用户的 FTP 根目录
      chroot_local_user=YES :是否将用户禁锢在主目录
      local_max_rate=0 :限制最大传输速率(字节 / 秒)
 
九. 构建可匿名上传的 vsftpd 服务器
  1. 调整上传目录的属主或权限
      确保匿名用户 ftp 有权写入文件
 chown ftp /var/ftp/pub
  1. 修改vsftpd.conf主配置文件
[root@filesvr ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=NO
write_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
userlist_enable=NO
……
 
十. 构建本地用户验证的 vsftpd 服务器
 
  1. 修改vsftpd.conf配置文件
      启用本地用户访问
      并可以结合 user_list 文件灵活控制用户访问
  1. 修改主配文件
[root@filesvr ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
local_umask=022
userlist_enable=YES
userlist_deny=YES
……
十一.   构建基于虚拟用户的 vsftpd 服务器
1. 建立虚拟 FTP 用户的帐号数据库文件
2. 创建 FTP 根目录及虚拟用户映射的系统用户
3. 建立支持虚拟用户的 PAM 认证文件
4. vsftpd.conf 文件中添加支持配置
5. 为个别虚拟用户建立独立的配置文件
6. 重新加载 vsftpd 配置
7. 使用虚拟 FTP 账户访问测试