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. 只需安装sambasamba-clientsamba-common3个软件包,即可实现Samba服务器和客户端的基本功能
2. 在以上5个软件包中,sambasamba-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   安全级别,可用值如下:shareuserserverdomain
   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  
例如:建立一个只要vinaroot组可以登陆的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用户的类型
*      匿名用户:anonymousftp
*      本地用户:
 帐号名称、密码等信息保存在passwdshadow文件中
*      虚拟用户:
 使用独立的帐号/密码数据文件
  1. 常见的FTP服务器程序
*      IISServ-U
*      wu-ftpdProftpd
*      vsftpdVery Secure FTP Daemon
  1. 常见的FTP客户端程序
*      ftp命令
*      CuteFTPFlashFXPLeapFTPFilezilla
*      gftpkuftp
 
八.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_enableYES:是否允许下载文件
*      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账户访问测试