《LINUX 网络服务 》
第 2 章 构建文件服务器
第一部分 samba
一. Samba 服务基础
- SMB协议
Server Message Block ,服务消息块
- CIFS协议
Common Internet File System ,通用互联网文件系统
- 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 方式的管理工具
- Samba服务器的主要程序
smbd :提供对服务器中文件、打印资源的共享访问
nmbd :提供基于 NetBIOS 主机名称的解析
- Samba的服务脚本
/etc/init.d/smb
- 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 这个组访问 )
四. 建立可匿名访问的文件共享
- 修改smb.conf配置文件
security = share
public = yes
- 检查配置的正确性
testparm 命令工具
- 启动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
五. 建立带验证的文件共享
- 建立Samba用户数据库文件
默认数据库文件位于: /etc/samba/smbpasswd ( rhel5 默认没有)
( 注意: 注释掉 passdb backend = tdbsam,
然后加入 smb passwd file = /etec/samba/smbpasswd)
系统用户帐号 -> Samba 用户帐号( samba 帐户必须是一个系统帐户)
- 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 创建文件的权限
- smb.conf文件设置客户机访问授权
一般用在全局配置 [global] 部分
hosts allow 配置项:仅允许特定的客户机
hosts deny 配置项:仅拒绝特定的客户机
客户机地址表示形式:
以空格分隔多个地址
主机名或 IP 地址,例如: 192.168.168.11 或者 prtsvr
网络地址,例如: 173.17. 或者 173.17.0.0/255.255.0.0
六. 在客户机中访问共享目录
- 使用Windows客户端访问文件共享服务
网上邻居、 UNC 路径
- 使用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 服务概述
- FTP连接方式
控制连接:标准端口为 21 ,用于发送 FTP 命令信息
数据连接:标准端口为 20 ,用于上传、下载数据
数据连接的建立类型:
主动模式:服务端从 20 端口主动向客户端发起连接
被动模式:服务端在指定范围内的某个端口被动等待客户端发起连接
- FTP传输模式
文本模式: ASCII 模式,以文本序列传输数据
二进制模式: Binary 模式,以二进制序列传输数据
- FTP用户的类型
匿名用户: anonymous 或 ftp
本地用户:
帐号名称、密码等信息保存在 passwd 、 shadow 文件中
虚拟用户:
使用独立的帐号 / 密码数据文件
- 常见的FTP服务器程序
IIS 、 Serv-U
wu-ftpd 、 Proftpd
vsftpd ( Very Secure FTP Daemon )
- 常见的FTP客户端程序
ftp 命令
CuteFTP 、 FlashFXP 、 LeapFTP 、 Filezilla
gftp 、 kuftp
八. vsftpd 服务基础
- vsftpd软件包
官方站点 :http://vsftpd.beasts.org/
主程序: /usr/sbin/vsftpd
服务名: vsftpd
用户控制列表文件
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
主配置文件
/etc/vsftpd/vsftpd.conf
- 常用的全局配置项
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 地址的并发连接数
- 常用的匿名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 :限制最大传输速率,单位为字节
- 常用的本地用户FTP配置项
local_enable=YES :是否启用本地系统用户
local_umask=022 :本地用户所上传文件的权限掩码
local_root=/var/ftp :设置本地用户的 FTP 根目录
chroot_local_user=YES :是否将用户禁锢在主目录
local_max_rate=0 :限制最大传输速率(字节 / 秒)
九. 构建可匿名上传的 vsftpd 服务器
- 调整上传目录的属主或权限
确保匿名用户 ftp 有权写入文件
chown ftp /var/ftp/pub
- 修改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 服务器
- 修改vsftpd.conf配置文件
启用本地用户访问
并可以结合 user_list 文件灵活控制用户访问
- 修改主配文件
[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 账户访问测试
转载于:https://blog.51cto.com/550551527/841248