1. ftp基础:
ftp:文件传输协议
软件包:vsftpd
端口:控制端口 ----21/tcp
数据端口 ----20/tcp(主动模式)
配置文件:/etc/vsftpd/vsftpd.conf
1.1. ftp工作方式:
主动模式: 服务端从20端口主动向客户端发起连接;
被动模式:服务端在指定范围内某个端口被动等待客户端连接;
主动与被动FTP优缺点:
主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。
被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。
1.2. ftp传输模式:
FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式
文本模式:ASCII模式,以文本序列传输数据;
二进制模式:Binary模式,以二进制序列传输数据;
1.3. ftp用户类型:
匿名用户:anonymous或ftp
本地用户:
帐号名称、密码等信息保存在passwd、shadow文件中
虚拟用户:
使用独立的帐号/密码数据文件
2. vsftpd 默认配置:
(注:需要在客户端和服务端都做操作)
示例1:配置匿名用户ftp-server
1. 关闭防火墙,禁用SElinux;
2. 安装vsftpd:
[root@localhost ~]# yum install vsftpd -y
3. 查看配置文件:
[root@localhost ~]#
rpm -qc vsftpd
配置文件:
/etc/vsftpd/ftpusers ---黑名单文件
/etc/vsftpd/user_list ---用户列表文件
/etc/vsftpd/vsftpd.conf ---主配置文件
服务:vsftpd.service
/var/ftp -----匿名用户默认目录
4. 配置
step1:备份配置文件:
[root@localhost vsftpd]# cp vsftpd.conf{,.bak}
step2:修改配置文件:
anonymous_enable=YES #启用匿名用户
anon_mkdir_write_enable=YES #允许匿名用户创建目录
anon_other_write_enable #允许匿名增删改
anon_upload_enable=YES #允许匿名用户上传
anon_root=/data #设定匿名用户主目录
5.匿名测试:
windows:
step1.
[root@localhost ~]#
cd /var/ftp
[root@localhost ftp]# mkdir china01
[root@localhost ftp]# cd china01
[root@localhost china01]# touch file01
[root@localhost china01]# vi file01 写入内容并保存;
(上述是在服务端创建的目录和文件;)
step2. 关闭防火墙,重启服务;
第一种:网页测试:
打开windows浏览器输入ftp://
172.16.84.128
;
(服务端ip)
可以查看自己已创建的目录和文件;
第二种:命令行测试:
(
1)命令行输入cmd;
(2)ftp 172.16.84.128;
(3)用户:anonymous;
(4)无密码回车;
linux:
ftp方法:
1.安装软件
[root@localhost ~]#
yum install ftp lftp -y
2. ftp 172.16.84.128
Name: anonymous pw:回车
ftp> cd pub
ftp> get 123.txt
ftp> bye
[root@localhost ~]# ls
123.txt
anaconda-ks.cfg file1
(注:以上操作确保在服务端的pub里面已经创建123.txt文件)
l
ftp方法:
服务端:
step1. 创建文件
[root@localhost ~]# cd /var/ftp/pub
[root@localhost pub]# touch 123.txt
step2. 增加权限
[root@localhost ~]# chmod o+w /var/ftp/pub
step3. 修改配置文件
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
释放: #anon_upload_enable=YES
anon_upload_enable=YES
释放: #anon_mkdir_write_enable=YES
anon_mkdir_write_enable=YES
增加: anon_other_write_enable=YES
增加: allow_writeable_chroot=YES
保存并退出;
step4. 重启服务
[root@localhost ~]# systemctl restart vsftpd
客户端:
step1.连接
[root@localhost ~]# lftp -u anonymous 172.16.84.128 ---无口令回车
step2. lftp anonymous@172.16.84.128:/> cd pub
step3. lftp anonymous@172.16.84.128:/pub> get 123.txt
step4. lftp anonymous@172.16.84.128:/pub> bye
step5. [root@localhost ~]# ls
123
123.txt
anaconda-ks.cfg file1
示例2:配置本地用户ftp-server
服务端操作:
1. 修改配置文件:
# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=
NO
local_enable=YES
增加 userlist_file=/etc/vsftpd/user_list
2. 重启服务
# systemctl restart vsftpd
3. 创建用户
# useradd tom
#
echo 123456 |passwd --stdin tom(给tom设置密码)
4. tom用户中创建文件
# [root@localhost tom]# touch 11.txt 22.txt
客户端操作:
1. # lftp -u tom 172.16.84.128
口令:123456
下载文件
step1. lftp tom@172.16.84.128:~> get 11.txt
step2. lftp tom@172.16.84.128:~> bye
step3. [root@localhost ~]# ls
上传
文件 -----
(未成功)
step1. lftp tom@172.16.84.128:~> put 123.txt
step2.切换到服务端 /home/tom下查看
示例3:黑名单用户
配置文件:/etc/vsftpd/ftpusers
服务端:
step1. # vim /etc/vsftpd/ftpusers
step2. 加入用户tom
step3. 保存退出
客户端
[root@localhost ~]# lftp -u tom 172.16.84.128
口令:
lftp tom@172.16.84.128:~> ls
ls: 登录失败: 530 Login incorrect.