Centos7 FTP服务安装,Centos FTP安装配置

================================

©Copyright 蕃薯耀 2022-04-19

蕃薯耀的博客_CSDN博客

一、安装FTP服务端

yum  install -y vsftpd

安装ftp客户端(可省略)

yum  install -y ftp

二、FTP服务配置

1、进入FTP配置文件目录

cd /etc/vsftpd

2、备份配置文件vsftpd.conf和去掉所有注释

mv vsftpd.conf vsftpd.conf.bak
grep -v "#" vsftpd.conf.bak > vsftpd.conf 

3、编辑配置文件

vi vsftpd.conf

修改的内容


#修改
#是否支持匿名用户,默认YES,改成NO表示需要用户名密码登录不允许匿名登录
anonymous_enable=NO

#匿名上传。首先,文件系统上用户的家目录,要具备写权限。其次,ftp服务器要开启允许匿名上传的配置
anon_upload_enable=YES

#以下取消注释
#允许匿名用户上传,建立目录
anon_mkdir_write_enable=YES

#默认只能下载全部读的文件。这句话的意思是说,如果启动了这句话,则匿名用户只能下载所有用户都具备读权限的文件。如果有一个文件,有一个用户不剧本读权限,匿名用户就不能够下载。
anon_world_readable_only=YES

#匿名用户能否删除和修改上传的文件
anon_other_write_enable=YES

#指定匿名上传文件的umask值。umask的值可以直接影响到上传文件的权限。
anon_umask=077

#指定上传文件的默认的所有者和权限。 完成了这些指定之后,匿名用户上传的元数据就是我们指定的那些内容。
chown_uploads=YES
#chown_username=wang
#chown_upload_mode=0644

#所有系统用户都映射成guest用户,但是映射的guest账户,需要人为地去指定下。
#guest_enable=YES
#guest_username=vsftpd

#是否允许Linux用户登陆,默认是允许的,当然也可以禁止。
local_enable=YES

#是否允许Linux用户上传文件,如果用户默认允许登陆的话,linux用户登陆成功之后,默认位于自己的家目录,这时是允许上传文件的。 如果将下面的这句话,改成no,则服务拒绝linux用户上传文件,即便位于自己的家目录也不可以。
#write_enable=YES

#指定系统用户上传文件的默认权限
#local_umask=022

#非匿名用户登录所在目录,当使用Linux用户登陆成功之后,就不会默认在自己的家目录了。相反,会位于下面指定的目录里。
#local_root=/ftproot

#禁锢所有的用户在家目录中的意思是说,用户登陆成功之后,不能够随意切换目录,只能够在自己的家目录中进行操作。
chroot_local_user=YES

#ASCII码支持
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES

#登录提示信息
ftpd_banner=Welcome to FTP server.  
# 这一句话优先生效
#banner_file=/etc/vsftpd/ftpbanner.txt

#设置是否使用当地时间。默认就是YES
use_localtime=YES

#虚拟用户建立独立的配置文件
user_config_dir=/etc/vsftpd/conf

listen_port=21
virtual_use_local_privs=YES

##被动模式端口
pasv_min_port=40000
pasv_max_port=40010

# 被动模式数据连接超时时长,时间单位是秒
accept_timeout=10
#主动模式数据连接超时时长,时间单位是秒
connect_timeout=10
#数据连接无数据输超时时长,时间单位是秒
data_connection_timeout=300
# 无命令操作超时时长,时间单位是秒
idle_session_timeout=300

allow_writeable_chroot=YES

三、创建虚拟用户

创建虚拟用户,是为了避免FTP用户直接登录到服务器

1、创建虚拟用户配置文件

vi ftp_user.conf

增加内容:奇数行是账号,偶数行是密码,下面第一行是账号,第二行是密码

ftpuser
ftpuser123

2、加密虚拟用户配置文件

db_load -T -t hash -f ftp_user.conf ftp_user.db

如果没有db_load命令,需要安装:yum install db4 db4-utils

改变权限和删除未加密的配置

chmod 600 ftp_user.db
rm -f  ftp_user.conf

3、修改FTP的访问权限

先备份

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

修改权限文件

vi /etc/pam.d/vsftpd

先将配置文件中原有的 auth 及 account 的所有配置行均注释掉(不注释掉虚拟用户会登录不上),添加两行信息

auth required pam_userdb.so db=/etc/vsftpd/ftp_user
account required pam_userdb.so db=/etc/vsftpd/ftp_user

4、增加虚拟用户,只能登录FTP,不能登录后台

useradd -d /home/ftpuser -s /sbin/nologin ftpuser

修改文件夹的拥有者

chown -R ftpuser:ftpuser /home/ftpuser

5、虚拟用户配置文件

创建虚拟用户配置文件目录

mkdir -p /etc/vsftpd/conf


创建虚拟用户的配置文件(ftpuser文件和刚才创建的数据库文件的用户名必须一致)

vi /etc/vsftpd/conf/ftpuser

增加的内容:


#用户的默认登陆目录。也就是FTP用户登陆成功之后的默认路径。
local_root=/home/ftpuser/ftpuser
write_enable=YES
anon_world_readable_only=NO
#虚拟用户上传权限
anon_upload_enable=YES
#虚拟用户创建文件夹
anon_mkdir_write_enable=YES
## 虚拟的其他用户对指定用户目录的写权限
anon_other_write_enable=YES

创建FTP传输目录,对应上面的 local_root 配置项

mkdir -p /home/ftpuser/ftpuser
chown ftpuser:ftpuser /home/ftpuser/ftpuser
chmod 775 /home/ftpuser/ftpuser

四、开放FTP端口和FTP服务

firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --permanent --zone=public --add-port=21/tcp 

#被动模式的端口
firewall-cmd --permanent --zone=public --add-port=40000-40010/tcp

#重新加载生效
firewall-cmd --reload
firewall-cmd --list-all
firewall-cmd --zone=public --list-ports

五、FTP启动和设置自动启动

#启动
systemctl start vsftpd
#设置自动启动
systemctl enable vsftpd
#查看状态
systemctl status vsftpd.service
#重启
systemctl restart vsftpd

六、FTP访问地址

ftp://192.168.10.100/

七、错误解决

1、500 OOPS: vsftpd: cannot locate user specified in 'guest_username':vsftpd


注释下面的配置
#guest_enable=YES
#guest_username=vsftpd

八、其它命令

#安装filezilla
yum install -y filezilla
运行filezilla
filezilla &

#Selinux方式:查看防火墙状态
getenforce

#permissive表示:放任的;纵容的;姑息的;

#临时关闭:setenforce 0
setenforce 0 ->permissive

#永久关闭:vim /etc/sysconfig/selinux
将selinux=cnforcing改为selinux=disable


Firewall
1.关闭防火墙:service firewalld stop

2.关闭防火墙:systemctl stop firewalld.service

3.禁止防火墙开机启动:systemctl disable firewalld.service

4,查看防火墙状态:firewall-cmd --state

 (时间宝贵,分享不易,捐赠回馈,^_^)

================================

©Copyright 蕃薯耀 2022-04-19

蕃薯耀的博客_CSDN博客

猜你喜欢

转载自blog.csdn.net/w995223851/article/details/124273941