CentOS 服务ftp(vsftpd)

1、检查是否已经安装vsftpd

yum list installed | grep vsftpd

2、安装vsftpd

yum install -y vsftpd

3、检查vsftpd

systemctl status vsftpd.service

4、设置ftp服务自动启动

开启自动启动
systemctl enable vsftpd.service
关闭自动启动
systemctl disable vsftpd.service

5、启动ftp服务

systemctl start vsftpd.service

6、防火墙端口设置

查看zone信息,一般是public
firewall-cmd --get-active-zones
永久打开21端口,--zone=public参数可以省略
firewall-cmd --zone=public --add-port=21/tcp --permanent
添加ftp服务
firewall-cmd --permanent --zone=public --add-service=ftp

添加ftp服务后,一般可以不用添加21端口,这个端口会被默认打开,在/etc/services文件中,这个端口已经被注册给ftp服务使用
如果要修改缺省的ftp21端口,需要修改/etc/services里的注册端口号,并且vsftpd的配置文件vsftpd.conf需要修改listen_port的端口号
重新加载防火墙配置
firewall-cmd --reload

7、添加ftp用户

添加用户xu.dm.ftp,在root组,目录是/home/data,禁止登录,只能ftp
useradd -g root -d /home/data -s /sbin/nologin xu.dm.ftp
设置密码
passwd xu.dm.ftp

8、设置ftp权限

和SElinux相关,一般情况下都是直接把SELinux禁用了
setsebool -P ftpd_full_access on
vi /etc/selinux/config 
# This file controls the state of SELinux on the system. 
# SELINUX= can take one of these three values: 
# enforcing - SELinux security policy is enforced. 
# permissive - SELinux prints warnings instead of enforcing. 
# disabled - SELinux is fully disabled. 
SELINUX=enforcing 
#SELINUX=disabled 
# SELINUXTYPE= type of policy in use. Possible values are: 
# targeted - Only targeted network daemons are protected. 
# strict - Full SELinux protection. 
SELINUXTYPE=targeted 
#SELINUX有「disabled」「permissive」,「enforcing」3种选择。 
模式的设置 :
enforcing:强制模式,只要selinux不允许,就无法执行 
permissive:警告模式,将该事件记录下来,依然允许执行 
disabled:关闭selinux;停用,启用需要重启计算机。 

9、修改vsftp配置文件,禁止匿名登录

vi /etc/vsftpd/vsftpd.conf

把:anonymous_enable=YES 改为: anonymous_enable=NO

10、done

 用FileZilla连接,一切OK。

11、vsftpd.conf主要参数

listen=[YES|NO]  是否以独立运行的方式监听服务
listen_address=IP 地址  设置要监听的 IP 地址
listen_port=21  设置 FTP 服务的监听端口
download_enable=[YES|NO]  是否允许下载文件
userlist_enable=[YES|NO] userlist_deny=[YES|NO] 设置用户列表为“允许”还是“禁止”操作
max_clients=0  最大客户端连接数,0 为不限制
max_per_ip=0  同一 IP 地址的最大连接数,0 为不限制
anonymous_enable=[YES|NO]  是否允许匿名用户访问
anon_upload_enable=[YES|NO]  是否允许匿名用户上传文件
anon_umask=022  匿名用户上传文件的 umask 值
anon_root=/var/ftp  匿名用户的 FTP 根目录
anon_mkdir_write_enable=[YES|NO] 是否允许匿名用户创建目录
anon_other_write_enable=[YES|NO] 是否开放匿名用户的其他写入权限(包括重命名、删除等操作权限)
anon_max_rate=0  匿名用户的最大传输速率(字节/秒),0 为不限制
local_enable=[YES|NO]  是否允许本地用户登录 FTP
local_umask=022  本地用户上传文件的 umask 值
local_root=/var/ftp  本地用户的 FTP 根目录
chroot_local_user=[YES|NO]  是否将用户权限禁锢在 FTP 目录,以确保安全
local_max_rate=0  本地用户最大传输速率(字节/秒),0 为不限制

12、登录模式

vsftpd 以三种认证模式登录到FTP服务器上。
1)是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到 FTP 服务器。
2)是通过Linux系统本地的账户密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来也很简单。上例就是使用本地账户进行认证的。
3)是这三种模式中最安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,
而这些账户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。

12.1、匿名登录模式参数:

anonymous_enable=YES  允许匿名访问模式
anon_umask=022  匿名用户上传文件的 umask 值
anon_upload_enable=YES  允许匿名用户上传文件
anon_mkdir_write_enable=YES  允许匿名用户创建目录
anon_other_write_enable=YES  允许匿名用户修改目录名称或删除目录

12.2、本地用户登录参数:

anonymous_enable=NO  禁止匿名访问模式
local_enable=YES  允许本地用户模式
write_enable=YES  设置可写权限
local_umask=022  本地用户模式创建文件的 umask 值
userlist_enable=YES  启用“禁止用户名单”,名单文件为 ftpusers 和 user_list
userlist_deny=YES 开启用户作用名单文件功能(default)
#vsftpd服务的目录里默认存放这两个文件ftpusers和user_list,默认情况下,在这两个文件列表里的用户是不允许使用ftp登录
[root@bigdata-senior01 vsftpd]# cat ftpusers
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

#user_list列表里的用户是允许登录还是不允许主要是看配置 [root@bigdata
-senior01 vsftpd]# cat user_list # vsftpd userlist # If userlist_deny=NO, only allow users in this file # If userlist_deny=YES (default), never allow users in this file, and # do not even prompt for a password. # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers # for users that are denied. root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody

 

相关推荐:

CentOS怎样替换系统图标

在CentOS上“替换系统图标”要看你指的是哪一类图标,不同场景做法不一样。下面按常见需求分别说明(以CentOS7/8/Stream+GNOME桌面为主,其他桌面类似)。 一、替换「应用程序图标」(最常见) 方法1:替换.desktop文件中的图标(推荐) 找到对应的.desktop文件 ls/u...

CentOS如何配置Jenkins

下面以CentOS7/CentOS8为例,说明如何安装并配置Jenkins(包含常见坑点),步骤清晰、可直接照做。 一、环境准备 1.系统更新 sudoyumupdate-y 2.安装Java(Jenkins依赖) Jenkins依赖Java8或Java11/17 CentOS7 sudoyumin...

Jenkins如何连CentOS

下面按最常见、最实用的方式给你讲:Jenkins如何连接(管理)CentOS服务器,包括SSH方式和Agent方式,适合新手一步步操作。 一、常见连接方式说明 Jenkins连接CentOS主要有3种方式: 方式 适用场景 ✅SSH插件(PublishOverSSH) Jenkins控制CentOS...

CentOS怎么安装Jenkins

在CentOS(7/8/Stream)上安装Jenkins,推荐使用官方YUM仓库,这是最稳定、最常用的方式。下面按步骤详细说明。 一、准备工作 1️⃣安装Java(Jenkins依赖) Jenkins需要Java8或Java11/17(推荐Java11或17) CentOS7 yuminstall...

CentOS如何卸载Jenkins

在CentOS上卸载Jenkins,通常分为停止服务→卸载软件包→清理残留文件几个步骤。下面按常见情况给你一个完整流程。 一、停止Jenkins服务 sudosystemctlstopjenkins sudosystemctldisablejenkins 确认状态: systemctlstatusj...

Jenkins在CentOS怎么配

在CentOS上配置Jenkins一般分为几个步骤: 安装Jenkins→启动服务→开放端口→初始化配置→安装插件&创建任务。下面给你一个从零到可用的完整流程(适用于CentOS7/8/Stream)。 一、前置条件 1️⃣确认Java已安装(Jenkins依赖Java) Jenkins需要...

如何修复CentOS Jenkins

“修复CentOS上的Jenkins”要看具体出了什么问题,但下面我按最常见故障场景给你一套系统化的排查与修复步骤,你可以对照使用。如果你愿意,也可以把报错日志贴出来,我可以更精准地帮你定位。 一、先确认Jenkins是否真的坏了 1️⃣查看Jenkins状态 systemctlstatusjenk...

CentOS装Jenkins难不难

CentOS上装Jenkins不算难,只要按步骤来,一般10~30分钟就能跑起来。对新手来说,难点主要在Java环境和端口/权限,而不是Jenkins本身。 下面给你一个清晰结论+安装思路+常见坑,看完基本就能装成功。 一、结论先说 ✅难度:低~中 ✅推荐方式:用Jenkins官方RPM(最稳) ❌...