ftp服务的安装搭建

目录

1.简介

2.特点

3.vsftpd安装过程

查看用户属组

执行yum命令安装

修改配置文件

添加防火墙开启相关端口

创建FTP用户

设置用户访问权限:

设置vsftpd服务开机启动

安装ftp客户端验证能否连接

常见问题


1.简介

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。

vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。

比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。

2.特点

①vsftpd 是以一般身份启动服务,所以对于 Linux 系统的使用权限较低,对于Linux 系统的危害就相对的减低了。此外, vsftpd 亦利用 chroot() 这个函式进行改换根目录的动作,使得系统工具不会被vsftpd 这支服务所误用;

②任何需要具有较高执行权限的 vsftpd 指令均以一支特殊的上层程序( parent process ) 所控制 ,该上层程序享有的较高执行权限功能已经被限制的相当的低,并以不影响Linux 本身的系统为准;

③所有来自 clients 端,想要使用这支上层程序所提供的较高执行权限之vsftpd 指令的需求,均被视为『不可信任的要求』来处理,必需要经过相当程度的身份确认后,方可利用该上层程序的功能。例如chown(), Login 的要求等等动作;

④此外,上面提到的上层程序中,依然使用 chroot() 的功能来限制使用者的执行权限。

注意:

FTP 可通过主动模式和被动模式与客户端机器进行连接并传输数据。

由于大多数客户端机器的防火墙设置及无法获取真实 IP 等原因,

建议您选择被动模式搭建 FTP 服务。如下修改以设置被动模式为例,

您如需选择主动模式,请前往 设置 FTP 主动模式

3.vsftpd安装过程

环境:CentOS Linux release 7.6.1810 (Core)

vsftpd版本:vsftpd.x86_64 0:3.0.2-25.el7 

查看用户属组

cat /etc/passwd

执行yum命令安装

[root@Sungeek ~]# yum -y install vsftpd

修改配置文件

按照下面修改配置文件,首选被动模式

[root@Sungeek ~]# cd /etc/vsftpd
[root@Sungeek ~]# vim vsftpd.conf
ftp设置被动模式

#是否允许匿名,默认no
anonymous_enable=NO

#这个设定值必须要为YES 时,在/etc/passwd内的账号才能以实体用户的方式登入我们的vsftpd主机
local_enable=YES

#具有写权限
write_enable=YES

#本地用户创建文件或目录的掩码
local_umask=022

#当dirmessage_enable=YES时,可以设定这个项目来让vsftpd寻找该档案来显示讯息!您也可以设定其它档名!
dirmessage_enable=YES

#当设定为YES时,使用者上传与下载日志都会被纪录起来。记录日志与下一个xferlog_file设定选项有关
xferlog_enable=YESxferlog_std_format=YES

#上传与下载日志存放路径
xferlog_file=/var/log/xferlog 

#开启20端口
connect_from_port_20=YES

#关于系统安全的设定值:
#ascii_download_enable=YES(NO)
#如果设定为YES ,那么 client 就可以使用 ASCII 格式下载档案。
#一般来说,由于启动了这个设定项目可能会导致DoS 的攻击,因此预设是NO。
#ascii_upload_enable=YES(NO)
#与上一个设定类似的,只是这个设定针对上传而言!预设是NO。
ascii_upload_enable=NO
ascii_download_enable=NO
#通过搭配能实现以下几种效果: 
#①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。 
#②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。 
#③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。 
#④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

#这个是pam模块的名称,我们放置在/etc/pam.d/vsftpd
pam_service_name=vsftpd

#当然我们都习惯支持TCP Wrappers的啦!
tcp_wrappers=YES

#不添加下面这个会报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
allow_writeable_chroot=YES

#ftp的端口号
listen_port=21
#启动被动式联机(passivemode)
pasv_enable=YES
#上面两个是与passive mode 使用的 port number 有关,如果您想要使用65400到65410 这 11 个 port 来进行被动式资料的连接,可以这样设定
pasv_min_port=5400
pasv_max_port=5410

#FTP访问目录
local_root=/data/ftp/


=========================================================================================
ftp设置主动模式
anonymous_enable=NO      #禁止匿名用户登录
local_enable=YES         #支持本地用户登录
chroot_local_user=YES    #全部用户被限制在主目录
chroot_list_enable=YES   #启用例外用户名单
chroot_list_file=/etc/vsftpd/chroot_list  #指定用户列表文件,该列表中的用户不被锁定在主目录
listen=YES               #监听IPv4 sockets
#在行首添加#注释掉以下参数
#listen_ipv6=YES         #关闭监听IPv6 sockets
#添加下列参数
allow_writeable_chroot=YES
local_root=/var/ftp/test #设置本地用户登录后所在的目录

添加防火墙开启相关端口

这里要是测试可以先关闭防火墙

[root@tsemongo01 vsftpd]# systemctl stop firewalld

如果是正式环境,最好开启防火墙,添加相应端口

#添加主端口
[root@tsemongo01 vsftpd]# firewall-cmd --permanent --zone=public --add-port=60021/tcp
success
#添加被动端口
[root@tsemongo01 vsftpd]# firewall-cmd --permanent --zone=public --add-port=65400-65410/tcp
success


firewall-cmd --permanent --zone=public --add-service=ftp

[root@tsemongo01 vsftpd]# firewall-cmd --reload 
success

创建FTP用户

添加FTP用户命令:useradd XXX

设置FTP用户密码:passwd XXX

[root@Sungeek vsftpd]# useradd -d /data/ftp/ -s /sbin/nologin ftpuser
[root@Sungeek vsftpd]# passwd ftpuser

 

把创建的用户名写入 vim /etc/vsftpd/chroot_list
 

查看FTP用户是否设置不能通过SSH登录,只能使用FTP,也可以不设置

[root@Sungeek vsftpd]# vim /etc/passwd

找到创建的用户把/bin/bash修改为/sbin/nologin

设置用户访问权限:

首先创建ftp的上传文件目录:/data/ftp

赋权限 chmod 777 /data/ftp

[root@Sungeek vsftpd]# chown -R ftpuser /data/ftp

设置vsftpd服务开机启动

[root@Sungeek ~]# systemctl enable vsftpd.service

启动暂停查看服务状态命令

[root@Sungeek ~]# systemctl start vsftpd.service 
[root@Sungeek ~]# systemctl status vsftpd.service 

安装ftp客户端验证能否连接

常见问题

问题3 

553 could not create file 严重文件传输错误

参考链接:https://blog.csdn.net/shengfakun1234/article/details/53234280

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建一个 FTP(文件传输协议)服务器,你可以按照以下步骤进行操作: 1. 选择合适的操作系统:FTP服务器可以在多种操作系统上搭建,如Windows、Linux等。选择一个你熟悉且适合你需求的操作系统。 2. 安装FTP服务器软件:在所选的操作系统上安装FTP服务器软件。常见的FTP服务器软件包括FileZilla Server、vsftpd、ProFTPD等。你可以根据操作系统的不同选择适合的软件进行安装。 3. 配置FTP服务器:安装完成后,打开FTP服务器软件并进行必要的配置。这些配置包括设置监听端口、选择允许的用户访问权限、设置根目录等。确保按照你的需求进行相应的配置。 4. 创建FTP用户:在FTP服务器上创建用户账户,并为每个用户分配相应的权限。这样用户就可以通过FTP客户端连接到服务器并进行文件传输。 5. 配置网络和防火墙:确保服务器所在的网络环境和防火墙设置允许FTP连接。如果你使用的是路由器或防火墙设备,你可能需要配置端口转发或设置防火墙规则以允许FTP流量通过。 6. 测试连接和传输:使用FTP客户端连接到你搭建FTP服务器,并进行文件传输测试。确保连接正常并能够成功传输文件。 这些步骤可以帮助你搭建一个基本的FTP服务器。根据你的具体需求,你可能还需要进行其他配置和安全性设置。请注意,在配置FTP服务器时,确保采取适当的安全措施,如使用加密连接(FTPS/SFTP)和强密码来保护文件传输的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值