FTP服务器的搭建配置

1.FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一,它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、Linux和Windows等操作系统中都可实现FTP客户端和服务器,相互之间可跨平台进行文件的传输。因此,FTP服务是网络中经常采用的资源共享方式之一,FTP协议有PORT和PASV两种工作模式,即主动模式和被动模式

2.FTP(File Transfer Protocol)即文件传输协议,是一种基于TCP的协议,采用客户/服务器模式,通过FTP协议,用户可以在FTP服务器中进行文件的上传或下载等操作,虽然现在通过HTTP协议下载的站点有很多,但是由于FTP协议可以很好地控制用户数量和宽带的分配,快速方便地上传、下载文件,因此FTP已成为网络中文件上传和下载的首选服务器,同时,它也是一个应用程序,用户可以通过它把自己的计算机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。

安装配置ftp

1.安装vsftpd及依赖

yum install -y vim net-tools #工具
yum install -y vsftpd* pam* db4* #ftp软件 #pam:认证模块 #DB4支持文件数据库 

2.进行配置文件的修改

vsftp的配置文件

复制配置文件

cd /etc/vsftpd
ls
cp vsftpd.conf{,.bak}
ls

 编辑配置文件

vim vsftpd.conf
write_enable=YES #
anon_umask=022
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

ftp配置文件的相关参数

 https://blog.csdn.net/jiance520/article/details/85723550

3.关闭防火墙以及selinux

systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #永久关闭
setenforce 0 #暂时关闭selinux

 4.修改权限ftp实现上传

cd /var/ftp #放置根目录的地方
ls
chown -R ftp.ftp pub/ #设置权限
ll

 5.vsftp配置本地系统的用户

创建测试用户(账号:kiki ,kuku 密码:040057)

useradd kiki #创建系统用户
useradd kuku
echo "040057" | passwd --stdin kuku #设置密码
echo "040057" | passwd --stdin kiki

2.修改配置文件

cd /etc/vsftpd.conf

 3.将新创建用户加入白名单

vim /etc/vsftpd/user_list

1.建立虚拟 FTP 用户的帐号数据库文件
vsftpd 服务使用 Berkeley DB 格式的数据库文件来存放虚拟用户账号。建立这种数据库文件需要用到 db_load 工具,db_load 工具由 db4-utils 软件包提供, 默认已安装。
● -f 指定数据原文件
●-T 允许非Berkeley DB的应用程序使用文本格式转换的DB数据文件
● -t hash 读取文件的基本方法

useradd -s /sbin/nologin vu #建立虚拟ftp用户的账号
cd /etc/vsftpd
vim user #创建虚拟用户文件,(奇数行:账号。偶数行:密码。)
db_load -T -t hash -f user user.db   #创建数据文件

 

4.PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。
新建一个用于虚拟用户认证的 PAM 文件 vsftpd.vu,其中 PAM 文件内的“db=”参数为 使用 db_load 命令生成的账户密码数据库文件的路径,但不用写数据库文件的后缀:

vim /etc/pam.d/vsftpd.vu
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/user 
#该模块将使用位于/etc/vsftpd/user的数据库进行身份验证。第二行表示在进行账户管理时
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/user 
#该模块将使用位于/etc/vsftpd/user的数据库进行账户管理。这两行配置通常用于vsftpd服务器的用户认证和管理

修改配置文件

vim vsftpd.conf
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
userlist_enable=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
guest_enable=YES
guest_username=vu
pam_service_name=vsftpd.vu
local_enable=YES
local_umask=077
chroot_local_user=YES
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/user_dir

参数解释

write_enable=YES #表示启用写入功能。
dirmessage_enable=YES #表示启用目录消息功能。
xferlog_enable=YES #表示启用传输日志功能。
connect_from_port_20=YES #表示使用端口20进行数据连接。
xferlog_std_format=YES #表示使用标准格式记录传输日志。
listen=YES #表示启用监听功能。
userlist_enable=YES #表示启用用户列表功能。
tcp_wrappers=YES #表示启用TCP包装器功能。
allow_writeable_chroot=YES #表示允许可写的chroot目录。
guest_enable=YES #表示启用访客账户功能。
guest_username=vu #表示访客账户的用户名为vu。
pam_service_name=vsftpd.vu #表示PAM服务名称为vsftpd.vu。
local_enable=YES #表示启用本地用户功能。
local_umask=077 #表示本地用户的umask值为077。
chroot_local_user=YES #表示将本地用户chroot到其主目录。
virtual_use_local_privs=YES #表示虚拟用户使用本地权限。
user_config_dir=/etc/vsftpd/user_dir #表示用户配置文件所在目录为/etc/vsftpd/user_dir。

为创建的虚拟用户建立独立的配置目录及文件

mkdir /etc/vsftpd/user_dir
cd user_dir
vim kuku #用户文件
local_root=/etc/vsftpd/data

创建虚拟用户数据存放的目录

cd ..
mkdir data
chmod 777 data/

最后客户端测试完成

猜你喜欢

转载自blog.csdn.net/m0_74090215/article/details/131130735