《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
,用于上传、下载数据
数据连接的建立类型:
p
主动模式:服务端从
20
端口主动向客户端发起连接
p
被动模式:服务端在指定范围内的某个端口被动等待客户端发起连接
- FTP传输模式
文本模式:
ASCII
模式,以文本序列传输数据
二进制模式:
Binary
模式,以二进制序列传输数据
- FTP用户的类型
匿名用户:
anonymous
或
ftp
本地用户:
p
帐号名称、密码等信息保存在
passwd
、
shadow
文件中
虚拟用户:
p
使用独立的帐号
/
密码数据文件
- 常见的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
用户控制列表文件
p
/etc/vsftpd/ftpusers
p
/etc/vsftpd/user_list
主配置文件
p
/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
有权写入文件
p
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
账户访问测试