FTP服务

采用centOS搭建FTP服务

  1. 安装vsftpd

    使用yum安装vsftpd
yum install vsftpd -y

进入/etc/vsftpd目录,查看相应文件

 cd /etc/vsftpd/
 ll

FTP服务_第1张图片

  • /etc/vsftpd/vsftpd.conf 是 vsftpd 的核心配置文件。
  • /etc/vsftpd/user_list 是白名单文件,此文件里的用户允许访问 FTP 服务器。
  • /etc/vsftpd/ftpusers 是黑名单文件,此文件里的用户不允许访问 FTP 服务器。

启动ftp服务,并查看运行状态

 systemctl start vsftpd.service
 systemctl status vsftpd.service

FTP服务_第2张图片
设置ftp服务开机自启

systemctl enable vsftpd.service

查看ftp服务监听的端口

 netstat -antup |grep ftp
  1. 配置vsftpd
  • 配置主动模式

    修改/etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/vsftpd.conf

编辑配置文件时,先备份

cp -p vsftpd.conf vsftpd.conf.bak
  1 #是否开启匿名用户             #小写d大写G清空文件内容
  2 anonymous_enable=YES
  3 #是否开启本地用户
  4 local_enable=YES
  5 #是否开启写入功能
  6 write_enable=YES
  7 #匿名用户是否支持上传内容
  8 anon_upload_enable=YES
  9 #匿名用户是否支持创建目录
 10 anon_mkdir_write_enable=YES
 11 #匿名用户是否支持其他权限
 12 anon_other_write_enable=YES
 13 #开启日志功能
 14 xferlog_enable=YES
 15 #监听IPv4
 16 listen=NO
 17 #监听Ipv4和Ipv6
 18 listen_ipv6=YES
 19 #关闭被动模式  (主动模式的两个主要参数)
 20 pasv_enable=NO
 21 #主动模式使用的端口号
 22 connect_from_port_20=YES
~

防火墙放通ftp服务,并重新加载

firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload

FTP服务_第3张图片

  • 配置被动模式

    本地用户登录是用户使用 Linux 操作系统的账号和密码登录 FTP 服务器。

    默认只支持匿名访问 FTP 服务器

修改vsftpd.conf配置文件。

被动模式

#是否开启匿名用户
anonymous_enable=YES
#是否开启本地用户
local_enable=YES
#是否开启写入功能
write_enable=YES
#匿名用户是否支持上传内容
anon_upload_enable=YES
#匿名用户是否支持创建目录
anon_mkdir_write_enable=YES
#匿名用户是否支持其他权限
anon_other_write_enable=YES
#开启日志功能
xferlog_enable=YES
#监听IPv4
listen=NO
#监听Ipv4和Ipv6
listen_ipv6=YES
#是否被动模式   主要修改最后两项
pasv_enable=YES
#主动模式使用的端口号
connect_from_port_20=NO

FTP服务_第4张图片

本地用户验证发送

编辑主要配置文档

[root@localhost vsftpd]# vim vsftpd.conf
#是否开启匿名用户      要关闭
anonymous_enable=NO
#是否开启本地用户访问
local_enable=YES
#是否开启写入功能
write_enable=YES
#匿名用户是否支持上传内容
anon_upload_enable=YES
#匿名用户是否支持创建目录
anon_mkdir_write_enable=YES
#匿名用户是否支持其他权限
anon_other_write_enable=YES
#开启日志功能
xferlog_enable=YES
#监听IPv4
listen=NO
#监听Ipv4和Ipv6
listen_ipv6=YES
#是否被动模式
pasv_enable=YES
#主动模式使用的端口号
connect_from_port_20=NO
#验证发送服务名vsftpd         主要配置参数
pam_service_name=vsftpd
#不允许root登录FTP
userlist_enable=YES

创建用户,并修改密码,在用户目录下创建文件

 useradd jack
 echo 123 | passwd --stdin jack
 touch /home/jack/123.txt

测试
FTP服务_第5张图片

禁止用户切换目录位置

修改主配置参数

#是否开启匿名用户
anonymous_enable=NO
#是否开启本地用户访问
local_enable=YES
#是否开启写入功能
write_enable=YES
#匿名用户是否支持上传内容
anon_upload_enable=YES
#匿名用户是否支持创建目录
anon_mkdir_write_enable=YES
#匿名用户是否支持其他权限
anon_other_write_enable=YES
#开启日志功能
xferlog_enable=YES
#监听IPv4
listen=NO
#监听Ipv4和Ipv6
listen_ipv6=YES
#是否被动模式
pasv_enable=YES
#主动模式使用的端口号
connect_from_port_20=NO
#验证发送服务名vsftpd
pam_service_name=vsftpd
#不允许root登录FTP
userlist_enable=YES
#不能从宿主目录切换到其他目录  主要配置参数
chroot_local_user=YES
#允许chroot目录的写入
allow_writeable_chroot=YES

设置ftpd_full_access为开启状态

setsebool -P ftpd_full_access=on

测试
FTP服务_第6张图片

显示当前路径为 “/”,表示不能切换目录,虽然提示切换成功,但是没有切换到指定目录

开启白名单功能
编辑配置文档

#是否开启匿名用户
anonymous_enable=NO
#是否开启本地用户访问
local_enable=YES
#是否开启写入功能
write_enable=YES
#匿名用户是否支持上传内容
anon_upload_enable=YES
#匿名用户是否支持创建目录
anon_mkdir_write_enable=YES
#匿名用户是否支持其他权限
anon_other_write_enable=YES
#开启日志功能
xferlog_enable=YES
#监听IPv4
listen=NO
#监听Ipv4和Ipv6
listen_ipv6=YES
#是否被动模式
pasv_enable=YES
#主动模式使用的端口号
connect_from_port_20=NO
#验证发送服务名vsftpd
pam_service_name=vsftpd
#不允许root登录FTP
userlist_enable=YES
#不能从宿主目录切换到其他目录
chroot_local_user=YES
#允许chroot目录的写入
allow_writeable_chroot=YES
#开启白名单功能
chroot_list_enable=YES
#白名单列表(不受切换目录限制)
chroot_list_file=/etc/vsftpd/chroot_list                           

创建白名单文件,并将测试用户添加到文件中

cd /etc/vsftpd
touch chroot_list
vim chroot_list

在这里插入图片描述

测试

FTP服务_第7张图片

白名单慎用,因为里面的用户可以随意切换目录,可以对系统文件进行修改。
所以如果某个用户有特殊需求,才将其添加到白名单文件

被动模式(其他功能设置)

#关闭匿名用户登录
anonymous enable=no
write enable=yes
local_enable=yes
anon_upload_enable=no
anon_ mkdir_write enable=no
dirmessage_enable=yes
xferlog_enable=no
#开启被动模式,默认主动
pasv_enable=yes
listen=yes
chroot local_user=yes
chroot list enable=yes
chroot_list_file=/etc/vsftpd/chroot_list
Ellow_writeable_chroot=yes
userlist_enable=yes
#服务器数据传输端口号范围45000~55000
pasv_min port=45000
pasv_max_port=55000

保持selinux开启状态下可访问ftp服务

 firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload

设置ftpd_full_access为开启状态

 setsebool -P ftpd_full_access=on

创建虚拟用户名单文件vusers.txt,用户1为jack,密码123456;用户2为mary,密码为456789;

vim vusers.txt

FTP服务_第8张图片

将vusers.txt文件转换为vusers.db数据库文件,并设置权限为“600”,删除原有vusers.txt文件;

 db_load -T -t hash -f vusers.txt vusers.db
 chmod 600 vusers.db
 rm -rf vusers.txt

在/etc/pam.d目录下,创建名为vuser的认证文件,并在其中设定用户的访问验证方式

 cd /etc/pam.d/
 vim vuser
 
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers

修改vsftpd的主配置文件,使其满足虚拟用户的访问需要

FTP服务_第9张图片

你可能感兴趣的:(Linux,linux,运维,服务器,centos)