1、应用场景
服务器处于内网,需要离线安装。
2、下载安装包环境
先在能上网的系统上下载离线安装包。
3、yum是否支持只下载不安装
yum 是否支持
--downloadonly(该参数不会安装软件,只会下载软件)
--downloaddir(用于指定软件包下载后存储路径)
执行yum帮助命令:
yum --help
如果列表中出现 --downloadonly --downloaddir 参数
则表示目前yum已支持只下载不安装。
没有出现则还需安装一个插件yum-plugin-downloadonly
安装命令如下:
yum install -y yum-plugin-downloadonly
4、yum离线下载vsftpd安装包命令
yum install -y --downloadonly --downloaddir=. vsftpd
yum 最重要的两个参数
--downloadonly 该参数不会安装软件,只会下载软件。
--downloaddir 用于指定软件包下载后存储路径。
5、离线安装vsftpd服务器命令
一种方式: 执行命令:yum localinstall vsftpd-3.0.3-32.ky10.x86_64.rpm
另一种方式:执行命令:rpm -ivh vsftpd-3.0.3-32.ky10.x86_64.rpm
下载好后的软件包,使用yum localinstall
即可以离线安装。
注意事项:
yum localinstall 后面要指定安装所需的全部rpm包
[root@KylinV10 vsftpd]# yum localinstall vsftpd-3.0.3-32.ky10.x86_64.rpm vsftpd-help-3.0.3-32.ky10.x86_64.rpm
除了yum localinstall命令以外,还可以使用rpm -ivh命令安装rpm包。
6、验证初步安装vsftpd服务器成果
①查看vsftpd服务器状态命令:systemctl status vsftpd
②启动vsftpd命令:systemctl start vsftpd
③查看vsftpd服务器状态命令:systemctl status vsftpd
原文链接:https://blog.csdn.net/huxiaochao_6053/article/details/103661720
{/collapse-item}
{collapse-item label="详细配置"}
配置开机启动
(1)查看vsftp服务状态
# 查看状态
service vsftpd status
#开启
service vsftpd start
#停止
service vsftpd stop
#重启
service vsftpd restart
(2)设置开机启动
# 查看是否开机启动:
systemctl is-enabled vsftpd.service
# 设置开机自启动:
systemctl enable vsftpd.service
# 查看开机启动服务列表:
systemctl list-unit-files|grep enabled
# 查看启动失败的服务列表:
systemctl --failed
防火墙设置
方式一:关闭防火墙
# 1.查看防火墙状态
systemctl status firewalld.service
# 2.关闭防火墙
systemctl stop firewalld.service
方式二:防火墙开放端口
# 暂时开放
firewall-cmd --add-service=ftp
# 永久开放
firewall-cmd --add-service=ftp --permanent
# 使配置生效
firewall-cmd --reload
# 查看服务
firewall-cmd --list-service
vsftp.conf配置
查看原始配置:cat /etc/vsftpd/vsftpd.conf |grep -v ^#
# vsftp.conf原始配置
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
# 1.配置前先备份:
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup
# 2.编辑内容
vi /etc/vsftpd/vsftpd.conf
vsftpd.conf内容(此内容仅支持本地用户)如下:
#设置为NO代表不允许匿名
anonymous_enable=NO
#设定本地用户可以访问
local_enable=YES
#可以进行写的操作
write_enable=YES
#设定上传文件的权限掩码
local_umask=022
#设定上传文件的权限掩码
dirmessage_enable=YES
#设定端口20进行数据连接
connect_from_port_20=YES
listen=YES
listen_ipv6=NO
#设定pam服务下的vsftpd验证配置文件名,文件默认地址再/etc/pam.d/vsftpd
pam_service_name=vsftpd
userlist_enable=NO
userlist_deny=NO
tcp_wrappers=YES
#设定开启日志记录功能
xferlog_enable=YES
#设定vsftpd服务日志保存路劲
xferlog_file=/var/log/xferlog
#设定日志使用标准的记录格式
xferlog_std_format=YES
配置vsftpd文件
# 1.备份vsftpd文件:
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup
# 2.编辑vsftpd文件:
vi /etc/pam.d/vsftpd
# 3.修改内容:
pam_shells.so改为pam_nologin.so
# 4.重启服务
systemctl restart vsftpd.service
创建本地用户
# 1.创建不需要登录的本地用户
useradd -m -s /sbin/nologin ftp1
# 2.给新建用户设置密码
passwd ftp1
# 3.查询用户
getent passwd
# 4.删除用户
userdel -r user
配置 SFTP 限制(可选)
编辑 /etc/ssh/sshd_config
,添加以下内容以限制用户仅能使用 SFTP:
Match User ftp1
ForceCommand internal-sftp
ChrootDirectory /home/ftp1
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
然后重启 SSH 服务:
sudo systemctl restart sshd
设置目录权限(如果启用了 ChrootDirectory):
sudo chown root:root /home/ftp1 # Chroot 目录必须属于 root
sudo chmod 755 /home/ftp1 # 确保权限正确
sudo mkdir /home/ftp1/upload # 用户可上传的子目录
sudo chown ftp1:ftp1 /home/ftp1/upload
权限错误的补充
[root@KylinV10 vsftpd]# chown root:root /home/ftp1
[root@KylinV10 vsftpd]# chmod 755 /home/ftp1
[root@KylinV10 vsftpd]# chown ftp1:ftp1 /home/ftp1/upload
[root@KylinV10 vsftpd]# chmod 755 /home/ftp1/upload
[root@KylinV10 vsftpd]# sftp ftp1@192.168.0.204
The authenticity of host '192.168.0.204 (192.168.0.204)' can't be established.
ED25519 key fingerprint is SHA256:wFf1hZrzgheDFXybazHzXFCbniJCZcOvgMmrVOfrZT0.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.0.204' (ED25519) to the list of known hosts.
Authorized users only. All activities may be monitored and reported.
ftp1@192.168.0.204's password:
Connected to 192.168.0.204.
sftp> cd upload/
sftp> mkdir test123
sftp> ls
test123
sftp> bye
[root@KylinV10 vsftpd]#
登录验证
# 1.需要先安装ftp插件,检查
[root@localhost vsftpd]# ftp 192.168.17.88
-bash: ftp: command not found
# 2.安装ftp客户端
yum install ftp -y
# 3.登录
[root@CDH103 ~]# ftp 192.168.17.60
Connected to 192.168.17.60 (192.168.17.60).
220 (vsFTPd 3.0.2)
Name (192.168.17.60:root): ftp1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ?
# 4.ftp命令输入?可以查看命令;常用命令如下:
cd #切换目录
ls #查看列表
pwd #查看当前目录
get file #下载文件
put file #上传文件
mkdir file #创建文件或目录
rename file newfile #修改文件名
delete file #删除文件
quit #退出
bye #退出
测试 SSH 登录(应被拒绝):
根据测试结果,SFTP 用户 ftp1 的配置已经生效:
SSH 登录被拒绝(显示 This service allows sftp connections only)
仅允许 SFTP 连接
这说明配置是正确的,用户 ftp1 只能通过 SFTP 传输文件,而无法通过 SSH 登录服务器。
{/collapse-item}
评论 (0)