个人资料
1、什么是FTP?
FTP是文件传输协议(File Transfer Protocal )的缩写,主要完成与远程计算机的文件传输。
FTP存在服务器的概念,可以理解为文件服务器。 权限控制也存在。 但是,权限控制与SVN类似,除授权帐户外,还增加了“匿名访问”。 匿名访问也就是说,FTP服务器向公众开放。 匿名权限通常很低,只能下载文件,不能上传文件。
2、FTP的结构是什么?
FTP是CS体系结构,是客户端与服务端的交互。 客户端和服务端之间使用TCP建立连接,默认端口为21,客户可以从服务器下载文件,也可以将本地文件上传到服务器。 上传和下载一般可以基于命令或图形工具来实现。 命令方式无需举例说明,图形工具推荐Transmit。
3、FTP存在两种工作模式
主要是为了数据连接。 活动模式:服务端主动向服务端发送请求的被动模式:服务端正在等待客户端的请求(也是默认工作方式0 )
服务器构建
vsftpd工具预习
优秀的开源工具vsftpd(verysecureFTPdaemon,非常安全的FTP守护程序),重要的是免费! 这是其他FTP服务程序所没有的功能,例如传输速度快、安全性高、支持虚拟用户认证等。 这个工具的其他特点需要自己做精细的东西。
高度安全:可以控制用户权限,可以在chroot中更改用户的根目录,并在基于GPL分发的FTP服务器软件中支持虚拟用户模式登录。
传输速度快:传输模式基于文本模式(ASCII )和二进制模式),都是串行传输数据。
构建虚拟用户模式: (Linux系统)
1、安装工具(一般可以从yum下载软件) )。
yum -y install vsftpd
安装成功。 通过更改vsftpd.conf的配置,可以以匿名模式访问以完成简单的ftp服务器)
2、可以创建虚拟用户的根目录,自定义目录地址。 创建后,必须将目录更改为虚拟用户权限。 此时通过linux命令实现
#创建目录
mkdir ** "
#添加用户
在虚拟中使用useradd-s/sbin/nolog
更改目录的所有者权限((ps:更改所有者和组权限的-R所有目录的当前目录下的父子目录) ) ) ) ) ) ) ) ) ) ) ) ) )。
chown virtual. /opt/ftp/-R
3、创建虚拟用户及其数据库
a、虚拟用户文本存在格式问题,奇数行为用户名、偶数行为密码。
#文本创建命令
touch fileName.txt
vim filename.txt
b、关联虚拟用户名数据库生成对应的db文件
db _ load-t-thash-f/etc/vsftpd/vuser.txt/etc/vsftpd/vuser.db
c、定义pam认证文件(注意: db=/etc/vsftpd/login文件是上面生成的login.db文件; 省略后缀. db )
[ root @ VM-8-6-centos~] # vim/etc/PAM.d/FTP
[ root @ VM-8-6-centos~] # cat/etc/PAM.d/FTP
auth required/lib 64/security/PAM _ userdb.sodb=/etc/vsftpd/vuser
帐户要求/lib 64/security/PAM _ userdb.sodb=/etc/vsftpd/vuser
4、配置vsftpd.conf文件
禁止匿名登录到FTP服务器
anonymous_enable=NO
#允许本地用户登录到FTP服务器
local _ enable=是
#可上传(全局控制) ) ) ) ) ) ) ) )。
write_enable=NO
#匿名用户可以上传
anon_upload_enable=NO
#匿名用户可以创建目录
anon_mkdir_write_enable=NO
#匿名用户修改删除
anon_other_write_enable=NO
#所有用户都受限于主目录
chroot_local_user=YES
从#2.3.5版开始,如果用户限于主目录,则不能对该用户的主目录具有写入权限
必须添加以下新配置
allow_writeable_chroot=YES
#将所有用户视为虚拟用户guest
guest_enable=YES
#指定虚拟用户。 也就是说,将来宾用户映射到虚拟用户
guest_username=virtual
#指定为独立服务
listen=是
#指定要监听的端口
listen_p
ort=21#开启被动模式
pasv_enable=NO
#FTP服务器公网IP
pasv_address=106.55.172.70
#设置被动模式下,建立数据传输可使用port范围的最小值
pasv_min_port=10000
#设置被动模式下,建立数据传输可使用port范围的最大值
pasv_max_port=10088
#是否允许匿名用户下载全局可读的文件
anon_world_readable_only=NO
#指定虚拟用户配置文件的路径
user_config_dir=/etc/vsftpd/vusers_dir
5、创建虚拟用户目录
需要在其 vusers_dir 穿件对应虚拟用户的权限文件
以虚拟用户名为文件名。
drwxr-xr-x 3 root root 4096 1月 27 13:41 .
drwxr-xr-x. 104 root root 12288 1月 26 14:23 ..
-rw------- 1 root root 125 10月 14 00:10 ftpusers
-rw------- 1 root root 361 10月 14 00:10 user_list
-rw------- 1 root root 1200 1月 19 15:43 vsftpd.conf
-rw------- 1 root root 5114 1月 19 11:14 vsftpd.conf.bak
-rwxr--r-- 1 root root 338 10月 14 00:10 vsftpd_conf_migrate.sh
-rw------- 1 root root 12288 1月 19 15:34 vuser.db
#需要与配置文件 vsftpd.conf 对应
drwxr-xr-x 2 root root 4096 1月 19 15:41 vusers_dir
-rw-r--r-- 1 root root 35 1月 19 15:33 vuser.txt
[root@VM-8-6-centos vsftpd]# cd vusers_dir/
[root@VM-8-6-centos vusers_dir]# ls -al
总用量 20
drwxr-xr-x 2 root root 4096 1月 19 15:41 .
drwxr-xr-x 3 root root 4096 1月 27 13:41 ..
-rw-r--r-- 1 root root 163 1月 19 15:20 joey
-rw-r--r-- 1 root root 164 1月 19 15:40 joeyTest
-rw-r--r-- 1 root root 163 1月 19 15:41 joeyTest2
[root@VM-8-6-centos vusers_dir]# vim joey
[root@VM-8-6-centos vusers_dir]# cat joey
write_enable=YES
anon_world_readable_only=no
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
local_root=/var/ftp/pub
6、启动vsftpd
serivce vsftpd start
完成以上操作基本ftp搭建完成,但还需要另外一台客户端机器测试(需拥有lftp命令支持)
#通过yum安装lftp命令
yum install lftp
#lftp 账户名称:密码@服务端IP地址 端口号(默认为21,非21端口需填写)
[root@localhost ~]# lftp joeyTest:joey123@127.0.0.1
lftp joeyTest@127.0.0.1:~> mkdir test3
mkdir 成功, 建立 `test3'
lftp joeyTest@127.0.0.1:/>