FTP服务搭建
一、 FTP连接及传输模式
1、 FTP连接分为:
1、 控制连接:用于发送FTP命令信息
2、 数据连接:用于上传、下载数据。FTP经常用来搭建数据的连接,搭建起来非常快。
3、 数据连接的建立类型:
(1) 主动模式:服务器主动发起数据连接
(2) 被动模式:服务器被动等待数据连接
2、 传输模式
在传输时,根据是否进行字符转换,分为文本模式和二进制模式。使用二进制模式比文本模式更有效率。
二、 FTP用户类型
1、 匿名用户
2、 本地用户
3、 虚拟用户
三、 搭建匿名访问FTP服务
1、 挂载光盘 mount /dev/sr0 /media/cdrom
2、 服务端安装FTP服务端:yum -y install vsftpd
3、 准备匿名FTP访问的目录 (yum装的默认有目录和程序用户)
cd /var/ftp/
chown ftp pub/
4、 开放匿名用户配置并启动vsftpd服务
cd /etc/vsftpd/
cp vsftpd.conf{,.bak}
vim /vsftpd.conf
全局变量
anonymous_enable=YES 开启匿名用户,默认开启anonymous 匿名
local_enable=YES 开启本地用户,也是默认开启
write_enable=YES 开启写权限
local_umask=022 FTP用户登录后掩码权限
anon_upload_enable=YES 开启匿名用户上传权限
anon_umask=022 手动添加匿名用户的权限掩码
anon_mkdir_write_enable=YES 开启匿名用户新建目录的权限
anon_other_write_enable=YES 手动添加匿名用户的其他写入

启动服务 /etc/init.d/vsftpd start
netstat -autup | grep vsftpd
成功如下:

5、 测试匿名FTP服务器
在客户端安装FTP客户端
mount /dev/sr0 /media/cdrom
yum -y install ftp
登录 ftp 192.168.220.131

Ctrl+D 退出页面
匿名用户不是没有名字,而是统一就叫ftp,没有密码
ftp支持的命令可以用help查看,put是上传,get是下载
四、 搭建本地用户验证的FTP服务
1、 创建本地用户 useradd test1 创建密码passwd test1
2、 修改配置文件,重启FTP服务
cd /etc/vsftpd/
mv vsftpd.conf vsftpd,conf.anon
cp vsftpd.conf.bak vsftpd.conf
vim vsftpd.conf
把匿名用户关了anonymous_enable=NO
96 chroot_local_user=YES 开启本地用户的家目录锁定

3、 启动服务 /etc/init.d/vsftpd reload

4、 客户端测试
登录用户
输入密码

每个下载上传都是在服务器用户的家目录里
5、 在本地用户的FTP服务器上/etc/vsftpd有两个列表ftpusers和user_list
1、 ftpusers 文件:FTP服务器中的黑名单,优先级高于user_list文件
2、 user_list文件: 此用户列表默认情况下也是黑名单,但是可以通过vsftpd.conf主配置文件的修改赐名单位白名单,且仅此名单中的用户可以访问。
3、 把user_list修改为白名单
vim vsftpd.conf
userlist_enable=YES
userlist_deny=NO
/etc/init.d/vsftpd reload 重启服务
五、 搭建虚拟账号FTP服务
FTP自身程序用户就是FTP
1、 备份配置文件
cd /etc/vsftpd
mv vsftpd.conf vsftpd.conf.local
cp vsftpd.conf.bak vsftpd.conf
2、 建立虚拟用户账号数据库
vsftpd服务使用berkeley DB格式的数据库文件来存放虚拟用户账号,使用db_load工具生成数据库文件。(若没有db_load工具,则它的软件名为db4_utils)
vim ./vusers.list 新建一个虚拟用户账号密码列表文件
db_load -T -t hash -f vusers.list vusers.db 把这个文件用hash算法加密
chmod 600 vusers.db 修改用户密码文件权限,增强安全性
3、 添加虚拟映射账号,为FTP根目录修改权限
mkdir -p /var/ftproot/
useradd -d /var/ftproot/ -s /sbin/nologin virtual
chmod 755 /var/ftproot/
4、 增加PAM认证
vim /etc/pam.d/vsftpd.vu 手动建立此pam认证文件
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
5、 修改配置文件
vim vsftpd.conf
anonymous_enable=NO
local_enable=YES
23 anon_umask=022 设置虚拟用户的权限掩码
117 pam_service_name=vsftpd.vu
118 guest_enable=YES
119 guest_username=virtua


l
6、/etc/init.d/vsftpd reload 重启服务
7、客户端测试
ftp 192.168.220.128

8、实现每个虚拟用户不同根目录,不同权限的管控。
1、创建用户控制目录
cd /etc/vsftpd/
mkdir ./vusers.dir
2、创建虚拟用户所对应的同名配置文件
cd vusers.dir
touch zhangsan lisi wangwu
3、修改zhangsan 等配置文件,使其可以上传、建立目录、删除文件,重命名文件、最大传输速率1字节/秒、根目录为/var/zhangsan等
mkdir /var/zhangsan
vim zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_max_rate=1
local_root=/var/zhangsan
4、 chown virtual /var/zhangsan 修改属主
5、 修改主配置文件
vim /etc/vsftpd/vsftpd.conf
122 user_config_dir=/etc/vsftpd/vusers.dir
6、重启服务 /etc/init.d/vsftpd reload
ftp 192.168.220.132
账号名
密码
浙公网安备 33010602011771号