FTP 服务器搭建与配置

简介linux

一、FTP是什么?数据库

FTP是文件传输协议(File Transfer Protocal)的简写,主要完成与远程计算机的文件传输。vim

FTP存在服务器的概念,能够理解为文件服务器。也就存在权限的控制。然而权限的控制与SVN相似,除了受权帐号外,多了一种“匿名访问”。匿名访问也就是FTP服务器向公众开放。一般匿名的权限较低,只能下载文件,不能上传文件。centos

二、FTP工做原理是什么?安全

FTP是一种CS架构,也就是客户端与服务端的交互。客户端与服务端之间利用TCP创建链接,默认端口为21,客户能够从服务器上下载文件,也能够把本地文件上传至服务器。上传与下载通常基于命令或者图形工具可实现,命令方式就不用举例,图形化工具推荐 Transmit。服务器

三、FTP存在两种工做模式架构

主要是针对数据链接而言的。 主动模式:服务端主动向服务端发送请求;被动模式:服务端等待着客户端请求(也是默认的工做方式0)工具

服务器搭建测试

预习vsftpd工具ui

能够利用很好的开源工具 vsftpd(very secure ftp daemon,很是安全的FTP守护进程),重要是免费!!!好比传输速度快、安全性高、以及支持虚拟用户验证等其它FTP服务程序不具有的功能。该工具其它特色需自行细品。

安全性高:可控制用户权限、可经过chroot变动用户的根目录、基于GPL发布的FTP服务器软件,支持虚拟用户模式登录。

传输速度快:传输模式基于文本模式(ASCII)与二进制模式(Binary),都是以序列传输数据。

虚拟用户模式搭建:(Linux系统)

一、安装工具(通常可经过yum来下载软件)

yum -y install vsftpd

安装成功(可经过修改vsftpd.conf配置,使用匿名模式访问完成简单的ftp服务器)

二、建立对应虚拟用户的根目录,可自定义目录地址。建立完以后须要对目录变动为虚拟用户权限。这时候经过linux命令来实现

#建立目录
mkdir \*\*
# 添加用户
useradd -s /sbin/nologin virtual

目录变动全部者权限: (ps: . 变动全部者与组权限, -R 全部目录当前目录下的父子目录)

chown virtual. /opt/ftp/ -R

三、建立虚拟用户及其数据库

a、虚拟用户文本存在格式问题,奇数行为用户名,偶数行为密码。

#建立文本命令
touch fileName.txt
vim filename.txt

b、虚拟用户名数据库关联来生成对应的db文件

db_load -T -t hash -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  /lib64/security/pam_userdb.so  db=/etc/vsftpd/vuser
account  required  /lib64/security/pam_userdb.so  db=/etc/vsftpd/vuser

四、配置vsftpd.conf 文件

#禁止匿名登陆FTP服务器
anonymous_enable=NO
#容许本地用户登陆FTP服务器
local_enable=YES
#能够上传(全局控制) 
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用户映射到virtual用户
guest_username=virtual
#指定为独立服务
listen=YES
#指定监听的端口
listen_port=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

五、建立虚拟用户目录

须要在其 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

六、启动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:/>
相关文章
相关标签/搜索