SFTP介绍与配置

SFTP介绍与配置

  • SFTP介绍与配置
    • SFTP简介
    • SFTP配置过程
    • SFTP使用及规范

SFTP介绍与配置

SFTP简介

sftp是一种安全的文件传送协议,是ssh内含协议,也就是说只要sshd服务器启动了,sftp就可使用,不需要额外安装,它的默认端口和SSH一样为22。

SFTP配置过程

1、使用root用户执行”ssh -V“命令查看openssh的版本:版本需大于4.8p1

ssh -V

SFTP介绍与配置_第1张图片如果版本过低,请更新openssh到符合要求的版本。

2、修改配置文件sshd_config

vi /etc/ssh/sshd_config

修改如下:
a、 在下面这行的行首添加”#”号,表示注释掉该行:

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

b、在文件末尾添加如下几行:
#强制执行内部sftp
Subsystem sftp internal-sftp
#限定只有sftpfroup组的才能访问
Match Group sftpgroup
#是否允许进行 X11 转发
X11Forwarding no
#是否允许TCP转发
AllowTcpForwarding no
#设定属于用户组sftp的用户访问的根目录
ChrootDirectory %h
#强制执行这里指定的命令而忽略客户端提供的任何命令
ForceCommand internal-sftp

也可使用如下命令添加:

echo -e "Subsystem sftp internal-sftp\nMatch Group sftpgroup\nX11Forwarding no\nAllowTcpForwarding no\nChrootDirectory %h\nForceCommand internal-sftp" >> /etc/ssh/sshd_config

3、sftp用户使用配置

a、使用root用户执行下面的命令创建用户组,组名为sftpgroup;创建sftp用户,用户名为sftpuser,并设置密码:
// 创建sftpgroup组

groupadd sftpgroup 

// 创建sftpuser用户

useradd -g sftpgroup -M -s /sbin/nologin sftpuser 	

// 修改sftp用户密码

passwd sftpuser 			

注:为保障系统安全,添加用户的时候建议添加如下参数:
-M                        // 表示创建用户时不生成对应home目录
-s /sbin/nologin    // 表示sftp用户不能登录系统

也可以复制下面的命令完成上述的操作,并将命令中的“123456“,改为自己需要设置的密码:

groupadd sftpgroup && useradd -g sftpgroup -M -s /sbin/nologin sftpuser && echo "123456" | passwd --stdin sftpuser

b、使用root用户执行下面的命令新建目录/opt/sftpfile(此目录应该为sftp默认工作目录),将其设置为sftpuser的家目录,并指定目录权限:

mkdir -p /opt/sftpfile               //-p 表示即递归创建目录
usermod -d /opt/sftpfile sftpuser 	//	-d 表示修改用户home目录
chown root:sftpgroup /opt/sftpfile	//	设置目录的所有者和所属组
chmod 755 /opt/sftpfile			    //	设置目录权限,请根据实际情况要求设置权限

操作后查看目录权限:
SFTP介绍与配置_第2张图片
注:权限数字表示示例:
r=4,w=2,x=1;755表示文件的所有者权限为可读可写可执行(rwx),所属组的权限为可读可执行(r-x),其他人的权限为可读可执行(r-x)。

4、重启SSH

systemctl restart sshd.service

5、验证:客户端登录sftp

sftp [email protected]

SFTP使用及规范

1、SFTP常用命令

a、成功登陆sftp后,输入命令”help”,可以查看到sftp所有支持的命令,截图如下:
SFTP介绍与配置_第3张图片
b、 sftp常用命令使用介绍

ls				// 查看远程sftp服务器下当前目录下的文件和目录
lls				// 查看本机当前目录下的文件和目录
cd				// 切换远程sftp服务器的路径
lcd				// 切换本机路劲
pwd				// 查看远程sftp服务器的当前路径
lpwd			// 查看本机的当前路径
put				// 上传本机文件到远程sftp服务器
get				// 下载远程sftp服务器中的文件到本机
!command		// 在本机执行’!’号后面的命令
exit/quit		// 退出

2、SFTP安全使用规范

a、SSH服务禁用root用户登陆

vim /etc/ssh/sshd_config
PermitRootLogin no

b、合理设置用户权限
sftp服务使用过程中可能会遇到需要新增用户来使用sftp,新增用户和用户的工作目录请参考此文档前面的内容,目录权限设置上要遵循以下2点:

1、ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;
2、ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755。

SFTP目录权限应当严格按照项目实际需求来设置,如果不能遵循以上2点,即使是该目录仅属于某个用户,也可能会影响到所有的SFTP用户。

c、其他规范及安全要求包括:
1、 定时检查软件漏洞,即时修补漏洞或升级到安全的软件版本。
2、 对于文件数据,应该定期备份,或按重要程度设置备份计划策略。
3、 每天检查sftp数据存放磁盘容量,或通过脚本、监控软件实现磁盘容量超限告警,二十四小时监控磁盘使用情况。
4、 对使用人员进行培训和严格的使用规范要求。
5、 即时有效的处理sftp运行过程中遇到的各种故障和问题
等…

你可能感兴趣的:(Linux,linux,centos,运维,ssh,服务器)