第 8章
FTP服务器的配置与管理本章内容
FTP服务工作原理
vsftpd简介
配置 vsftpd服务器
使用 FTP客户机
使用 PAM实现虚拟用户
16.1 FTP服务工作原理
常见的文件传输方法:
HTTP,FTP,TFTP,SFTP,NFS
连接模式:
传输模式,二进制,ASCII
匿名用户和本地用户
16.1.1 连接模式
FTP需要一个辅助连接来完成数据传输。
FTP服务至少需要监听两个端口,一个端口是作为控制连接端口,默认是 21号端口,另一个端口是数据传输端口,用来建立数据传输通道
FTP的连接模式有两种,
PORT模式
PASV模式
PORT模式和 PASV模式
PORT模式(主动):
FTP客户端在控制连接上发出 PORT指令告诉服务器连接自己的什么端口来建立一个数据连接,当服务器收到这一指令后会使用 20号端口连接用户指定的端口号,
从而建立数据连接
PASV模式(被动):
FTP客户机向服务器发送 PASV指令,与服务器协商要连接服务器的哪一个端口。如果服务器上的这个端口是空闲的,那么服务器会返回 ACK的确认信息并建立数据连接。
16.1.2 传输模式
FTP数据传输模式有两种:
ASCII模式
Binary模式(二进制模式),
二进制传输模式的效率高于 ASCII传输模式
16.1.3 匿名用户和本地用户
客户端登录 FTP服务器可以使用匿名用户帐号或者本地用户帐号。
匿名用户帐号通常是 anonymous或 ftp,不需要特别的密码就可以访问服务器,通常习惯于使用一个电子邮件地址作为匿名用户的密码
匿名用户在 FTP服务器端的默认目录是 /var/ftp,
而本地用户的默认目录就是用户在该系统上的主目录
16.2 vsftpd简介
UNIX操作系统中使用的 FTP服务器软件主要有:
wu-ftpd
proftpd
vsftpd
vsftpd是一个基于 GPL(通用公共许可证)模式发行的开放源码软件。其中 vs是 very secure(非常安全)的缩写
vsftpd服务器拥有完善的功能和突出的性能
16.3 配置 vsftpd服务器
建立一个简单的 FTP服务器
定制 vsftpd服务器
16.3.1 建立一个简单的 FTP服务器
vsftpd服务器的运行方式分为两种:
独立启动
xinetd启动
vsftpd的配置文件主要包括以下几个:
/etc/vsftpd/vsftpd.conf,vsftpd的主配置文件
/etc/vsftpd.ftpusers,ftp服务器用户黑名单
/etc/vsftpd.userlist:控制用户访问 FTP服务器的用户名称清单,可以允许清单中的用户帐号访问 FTP服务器,
也可以拒绝清单中的用户访问 FTP服务器,具体用途由
/etc/vsftpd/vsftpd.conf文件中的 userlist_deny参数决定。
16.3.1 建立一个简单的 FTP服务器
基本配置:
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
tcp_wrappers=YES
启动服务器:
Service vsftpd start
16.3.2 定制 vsftpd服务器
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
16.3.2 定制 vsftpd服务器
chown_username=whoever
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=120
# ascii_upload_enable=YES
# ascii_download_enable=YES
ftpd_banner=Welcome to blah FTP service.
banned_file=/etc/vsftpd/vsftpd.banned_file
# chroot_list_enable=YES
16.3.2 定制 vsftpd服务器
# chroot_list_file=/etc/vsftpd.chroot_list
# chroot_local_user=YES
anon_max_rate=500000
local_max_rate=600000
pasv_min_port=50000
pasv_max_port=60000
max_per_ip=5
max_clients=100
listen_port=21
user_config_dir=/etc/vsftpd/userconf
用户访问控制
使用控制文件作为黑名单
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=YES
使用控制文件作为白名单
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
16.3.3 使用 xinetd启动 FTP服务
找到 xinetd配置文件示例
rpm -ql vsftpd
拷贝 xinetd示例配置文件到 /etc/xinet.d目录
修改配置文件 /etc/xinet.d/vsftpd,将其中的 disable
项的值设置为 no
修改 /etc/vsftpd/vsftpd.conf文件,将其中的 listen行的值设置为 NO,并停止原有 FTP服务
重新载入 xinetd服务的配置
service xinetd reload
16.4 使用 FTP客户机
FTP命令行工具是连接 FTP服务器最直接、简便的方法
常用 ftp命令:
ls:列出目录清单。
dir:同 ls
pwd:显示服务器端的工作目录
cd:改变服务器端的工作目录
lcd:查看或者改变本地工作目录
get:从服务器端下载单个文件
put:向服务器端上传单个文件
mget:支持通配符,从服务器端下载多个文件
mput:支持通配符,向服务器端上传多个文件
16.5 使用 PAM实现虚拟用户
1,建立包含虚拟用户名称和密码的文本文件。文件中奇数行为用户名,偶数行为用户的密码
2,将包含 vsftpd虚拟用户的文件转换成数据库文件
# db_load -T -t -f login.txt /etc/vsftpd/vsftp_login.db
3,修改 vsftpd的 PAM配置文件 /etc/pam.d/vsftpd,将文件内容修改为:
# auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
# accound required /lib/security/pam_userdb.so db=/etc/vsftpd_login
4,检查 vsftpd.conf文件,增加如下一行:
user_config_dir=/etc/vsftpd_user_conf
本章小结
熟悉 FTP服务器的工作方式
配置 vsftpd服务器
熟练使用 FTP客户程序