<返回更多

FTP、SFTP部署

2022-10-17    沪飘运维
加入收藏

FTP服务

软件安装包: vsftpd

默认发布目录: /var/ftp

协议接口: 21/tcp

服务配置文件: /etc/vsftpd/vsftpd.conf

报错id的解析:

500 ##文件系统权限过大

530 ##用户认证失败

550 ##服务本身功能未开放

553 ##文件权过小

FTP(File Transfer Protocol),是文件传输协议的简称。用于Inte.NET上的控制文件的双向传输。同时,
它也是一个应用程序(Application),用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,
访问服务器上的大量程序和信息。
FTP的主要功能是实现各种操作系统之间的文件交流,建立一个统一的文件传输协议。
ftp://      ##文件传输协议
vsftpd      ##FTP服务器包

安装包

服务端: vsftd

客户端: lftp

 

服务端部署ftp服务

yum install -y vsftpd

systemctl start vsftpd

systemctl enable vsftpd

 

添加防火墙策略

##添加防火墙策略,让火墙允许ftp服务; --permanent表示永久添加

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

Success

##重新加载;必须执行,否则不生效

firewall-cmd --reload

success

firewall-cmd --list-all

 

关闭selinux

##查看selinux的状态

getenforce Enforcing

vim /etc/sysconfig/selinux

SELINUX=disabled

reboot

 

客户端部署

yum -y install lftp

 

连接命令:

lftp 172.25.254.234 -u chunyu

 

基本命令使用

##本地用户登陆
[kIOSk@foundation34 ~]$  lftp 172.25.254.234 -u westos
Password: 
lftp westos@172.25.254.234:~> ls       
-rw-r--r--    1 0        0               0 Oct 31 15:18 westosfile1
-rw-r--r--    1 0        0               0 Oct 31 15:18 westosfile2
-rw-r--r--    1 0        0               0 Oct 31 15:18 westosfile3
##上传文件
lftp westos@172.25.254.234:~> put /etc/passwd
3190 bytes transferred
lftp westos@172.25.254.234:~> ls
-rw-r--r--    1 1001     1001         3190 Oct 31 15:19 passwd
-rw-r--r--    1 0        0               0 Oct 31 15:18 westosfile1
-rw-r--r--    1 0        0               0 Oct 31 15:18 westosfile2
-rw-r--r--    1 0        0               0 Oct 31 15:18 westosfile3
##删除文件
lftp westos@172.25.254.234:~> rm passwd
rm ok, `passwd' removed
lftp westos@172.25.254.234:~> ls
-rw-r--r--    1 0        0               0 Oct 31 15:18 westosfile1
-rw-r--r--    1 0        0               0 Oct 31 15:18 westosfile2
-rw-r--r--    1 0        0               0 Oct 31 15:18 westosfile3
##新建目录
lftp westos@172.25.254.234:~> mkdir hello
mkdir ok, `hello' created
lftp westos@172.25.254.234:~> ls
drwxr-xr-x    2 1001     1001            6 Oct 31 15:20 hello
-rw-r--r--    1 0        0               0 Oct 31 15:18 westosfile1
-rw-r--r--    1 0        0               0 Oct 31 15:18 westosfile2
-rw-r--r--    1 0        0               0 Oct 31 15:18 westosfile3
##但不能用使用touch命令  因为ftp服务界面并非支持所有shell中的所有命令
lftp westos@172.25.254.234:~> touch file
Unknown command `touch'.
lftp westos@172.25.254.234:~> exit

 

连接后使用命令错误提示

Fatal error: Certificate verification: Not trusted

解决办法:

临时解决

直接在lftp命令提示符下输入:set ssl:verify-certificate no 回车

永久生效:

编辑/etc/lftp.conf,加入下面内容:

set ssl:verify-certificate no

SFTP服务

sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多

本次使用系统自带的internal-sftp搭建sftp,因为需要用到chroot,所以openssh 版本不能低于4.8p1

ssh -V检查版本

 

要创建的sftp用户和组

user: BigData1 BigData2

groups:sftpusers

 

创建组

groupadd sftpusers

创建用户

useradd -g sftpusers -s /sbin/nologin BigData1

useradd -g sftpusers -s /sbin/nologin BigData2

 

修改密码

passwd BigData1

passwd BigData2

 

创建目录

mkdir -p home/Sftp/BigData2FTP

mkdir -p home/Sftp/BigData1FTP

 

修改属主和属主(该目录为sftp用户的home目录,属主必须为root,权限最高为755)

chown root:root BigData2FTP

chown root:root BigData1FTP

 

修改权限

chmod 755 /home/Sftp/BigData2FTP

chmod 755 /home/Sftp/BigData1FTP

 

创建文件传输目录

mkdir /home/Sftp/BigData2FTP/BigData2

mkdir /home/Sftp/BigData1FTP/BigData1

 

更改权限(此目录权限随意)

chmod 777 /home/Sftp/BigData2FTP/BigData2

chmod 777 /home/Sftp/BigData2FTP/BigData1

 

修改home目录

usermod -d /home/Sftp/BigData2FTP BigData2

usermod -d /home/Sftp/BigData1FTP/ BigData1

 

修改配置文件

vim /etc/ssh/sshd_config

注释

#Subsystem sftp /usr/libexec/openssh/sftp-server

添加

Subsystem sftp internal-sftp

Match Group sftpusers

ChrootDirectory %p

ForceCommand internal-sftp

AllowTcpForwarding no

X11Forwarding no

 

重启sshd服务

systemctl restart sshd.service

 

登陆测试

sftp BigData2@ip

sftp -oPort=8000 BigData1@172.31.50.111

参数说明:

Subsystem sftp internal-sftp:指定使用sftp服务使用系统自带的internal-sftp

Match Group sftp:用来匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割。

注:当然也可以匹配用户,如:【Match User mysftp】,多个用户名

之间也是用逗号分割。

ChrootDirectory /sftp/%u:用chroot将用户的根目录指定到/sftp/%u,%u代表用户名,这

样用户就只能在/sftp/%u下活动。

ForceCommand internal-sftp:指定sftp命令

更改工作目录权限

chown root:sftp /sftp

chown root:sftp /sftp/tom

chmod 755 /sftp

chmod 755 /sftp/tom

权限说明:

目录的权限设定有两个要点:

1、由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者,都只能是 root,群组可以是第一步创建的组,这里是sftp

2、由ChrootDirectory指定的目录开始一直往上到系统根目录为止,目录所属的群组都不可以 具有写的权限。

注:读(r,权限值为4)、写(w,权限值为2)、执行(x,权限值为1)。

 

连接命令

sftp -oPort=32676 upload_pat@ip

 

连接后ls提示错误

Fatal error: Certificate verification: Not trusted (94:0C:C5:11:EE:74:05:7E:6C:CD:63:97:4D:A7:DB:F4:58:FE:4A:61)

 

解决方法

编辑/etc/lftp.conf,加入下面内容:

set ssl:verify-certificate no

或直接在lftp命令提示符下输入:set ssl:verify-certificate no 回车。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>