Linux 搭建ftp服务器

适用于:centos7 centos8

1、检查安装vsftpd软件

rpm -qa |grep vsftpd

可以检测出是否安装了vsftpd软件,如果没有安装,使用YUM命令进行安装

yum install vsftpd -y

2、启动服务

使用vsftpd软件,主要包括如下几个命令:

查看ftp状态
systemctl status vsftpd
启动ftp命令
systemctl start vsftpd
停止ftp命令
systemctl stop vsftpd
重启ftp命
systemctl restart vsftpd
开机时启用服务:
systemctl enable vsftpd
在开机时禁用服务:
systemctl disable vsftpd
查看服务是否开机启动:
systemctl is-enabled vsftpd
查看已启动的服务列表:
systemctl list-unit-files|grep enabled
查看启动失败的服务列表:
systemctl --failed

3、vsftpd的配置文件

ftp的配置文件主要有三个,位于/etc/vsftpd/目录下,分别是:
ftpusers 该文件用来指定那些用户不能访问ftp服务器。
user_list 该文件用来指示的默认账户在默认情况下也不能访问ftp
vsftpd.conf vsftpd的主配置文件

4、创建虚拟用户

(1)创建ftp文件目录:
mkdir /ftpdata
(2)添加虚拟用户,该用户没有登录机器的权限,只有上传ftpdata有权限:
useradd ftpuser -d /ftpdata/ -s /sbin/nologin
(3)修改ftpdata目录权限,把创建的用户和创建的文件夹的权限对应上。-R表示遍历,把用户或者用户组赋予到/ftpdata这个文件夹的权限上
chown -R ftpuser.ftpuser /ftpdata/
(4)重设ftpuser密码:密码为123456
passwd ftpuser
Changing password for user ftpuser.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

5、vsftpd服务器的配置

查看配置文件位置
whereis vsftpd
vi /etc/vsftpd/vsftpd.conf

vsftpd.conf文件的配置文件的添加或更新配置

本项目要用到的配置项:

1)local_root=/ftpdata #当本地用户登入时,将被更换到定义的目录下,默认值为各用户的家目录

2)anon_root=/ftpdata #使用匿名登入时,所登入的目录

3)use_localtime=YES #默认是GMT时间,改成使用本机系统时间

4)anonymous_enable=NO #不允许匿名用户登录

5)local_enable=YES #允许本地用户登录

6)write_enable=YES #本地用户可以在自己家目录中进行读写操作

7)local_umask=022 #本地用户新增档案时的umask值

8)dirmessage_enable=YES #如果启动这个选项,那么使用者第一次进入一个目录时,会检查该目录下是否有.message这个档案,如果有,则会出现此档案的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。默认值为开启

9)xferlog_enable=YES #是否启用上传/下载日志记录。如果启用,则上传与下载的信息将被完整纪录在xferlog_file 所定义的档案中。预设为开启。

10)connect_from_port_20=YES #指定FTP使用20端口进行数据传输,默认值为YES

11)xferlog_std_format=YES #如果启用,则日志文件将会写成xferlog的标准格式

12)ftpd_banner=Welcome to mmall FTP Server #这里用来定义欢迎话语的字符串

13)chroot_local_user=NO #用于指定用户列表文件中的用户是否允许切换到上级目录

14)chroot_list_enable=YES #设置是否启用chroot_list_file配置项指定的用户列表文件

15)chroot_list_file=/etc/vsftpd/chroot_list #用于指定用户列表文件

16)listen=YES #设置vsftpd服务器是否以standalone模式运行,以standalone模式运行是一种较好的方式,此时listen必须设置为YES,此为默认值。建议不要更改,有很多与服务器运行相关的配置命令,需要在此模式下才有效,若设置为NO,则vsftpd不是以独立的服务运行,要受到xinetd服务的管控,功能上会受到限制

17)pam_service_name=vsftpd #虚拟用户使用PAM认证方式,这里是设置PAM使用的名称,默认即可,与/etc/pam.d/vsftpd对应) userlist_enable=YES(是否启用vsftpd.user_list文件,黑名单,白名单都可以

18)pasv_min_port=60000 #被动模式使用端口范围最小值

19)pasv_max_port=60100 #被动模式使用端口范围最大值

20)pasv_enable=YES #pasv_enable=YES/NO(YES)

6、修改ftp访问策略

如果文件上传时,提示553错误:553 Could not create file.
则需要修改SElinux策略 ftpd_full_access

查看当前配置:
getsebool -a | grep ftp
ftp_home_dir --> off
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off

策略规则ftpd_full_access--> off导致了操作失败,启用该参数:
setsebool -P ftpd_full_access=on

7、Linux防火墙设置

添加端口
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=60000-60100/tcp --permanent
重新载入
firewall-cmd --reload
查看端口
firewall-cmd --zone=public --list-ports
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值