一.FTP工作模式
主动模式
1. 第一步,客户机随机开启大于1024的端口与服务器的21端口建立连接通道。
2. 第二步,当客户机需要与服务器进行数据传输时,客户端会在开启一个大于1024的随机端口Y,并将Y端口号通过之前的命令通道传送给服务器的21端口。
3. 第三步,服务器获取到客户端的第二个端口后会主动连接客户端的该端口,通过三次握手后,完成服务器与客户端数据通道的建立,所有的数据均通过该数据通道进行传输。
被动模式
1. 第一步,客户端随意开启大于1024的X端口与服务器的21端口建立连接通道。
2. 第二步,当客户端需要与服务器进行数据传输时,客户端从命令通道发送数据请求上传或下载 数据。
3. 第三步,服务器收到数据请求后会随机开启一个端口Y,并通过命令通道将该端口信息传送给 客户端。
4. 第四步,客户端在收到服务器发送过来的数据端口Y的信息后,将在客户端本地开启一个随机端口Z,此时客户端在主动通过本机的Z端口与服务器的Y端口进行连接,通过三次握手完成后,即可进行数据传输。
5.
二.安装与管理vsftpd
rpm –ivh vsftpd
service vsftpdstart
chkconfig vsftpdon
一.配置文件解析
Vsftpd配置文件默认位于/etc/vsftpd目录下
常用的全局配置项
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:限制最大传输速率(字节/秒)
五.本地账户FTP(案例一)
1.修改配置文件如下
anmous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_fromat=YES
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
2.创建系统账户与测试文件
useradd –s /sbin/nologin tom
useradd –s /sbin/nologin jerry
useradd –s /sbin/nologin smith
touch home/{tom,jerry,smith}/test.txt
3.服务管理
Servicevsftpd start
一.虚拟用户FTP(案例二)
创建虚拟用户数据库
首先需要创建明文密码文件,文件中奇数行为用户名,偶数行为密码。然后使用db_load工具将其转换为数据库文件,db_load工具需要通过安装db4—utils软件获得,最后通过修改文件权限以增强数据资料的安全性。
[root@localhost]# vi /etc/vsftpd/vusers.list
mike
123
john
456
[root@localhost]# cd /etc/vsftpd/
[root@localhost vsftpd]# db_load -T -t hash -f vusers.list vusers.db
[root@localhost vsftpd]# file vusers.db
vusers.db: Berkeley DB (Hash, version 9, native byte-order)
[root@localhost vsftpd]# chmod 600 /etc/vsftpd/vusers.*
[root@localhost vsftpd]# ls -lh /etc/vsftpd/vusers.*
-rw------- 1 root root 12K 6月27 08:51 /etc/vsftpd/vusers.db
-rw------- 1 root root 18 6月27 08:48 /etc/vsftpd/vusers.list
2.创建 FTP 根目录及虚拟用户映射的系统用户
[root@localhost]# useradd -d /var/ftproot -s /sbin/nologin virtual
[root@localhost]# chmod 755 /var/ftproot/
3.建立支持虚拟用户的 PAM 认证文件
[root@localhost]# vi /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
4.在 vsftpd.conf 文件中添加支持配置
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
……
local_enable=YES
write_enable=YES
anon_umask=022
guest_enable=YES //启用用户映射功能
guest_username=virtual //指定映射的系统用户名称
pam_service_name=vsftpd.vu //指定新的PAM认证文件
5.为不同的虚拟用户建立独立的配置文件
在 vsftpd.conf 文件中添加用户配置目录支持
user_config_dir=/etc/vsftpd/vusers_dir
为用户 mike、john 建立独立的配置目录及文件
配置文件名与用户名相同
[root@localhost ~]# mkdir /etc/vsftpd/vusers_dir/
[root@localhost ~]# cd /etc/vsftpd/vusers_dir/
[root@localhost vusers_dir]# vi john
anon_upload_enable=YES
anon_mkdir_write_enable=YES
[root@localhost vusers_dir]# touch mike
本文出自 “carey” 博客,请务必保留此出处http://akhack.blog.51cto.com/11084669/1760100
原文地址:http://akhack.blog.51cto.com/11084669/1760100