centos7 启用sftp(CentOS7服务搭建----搭建SFTP)
SFTP协议服务器
简介:sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp有着几乎一样的语法和功能,但注意:sftp和ftp(vsftpd)一点关系都没有。SFTP 是 SSH的一部份,是一种传输文件数据至sftp服务器的协议。本身没有守护进程,是包含在ssh中,同样使用ssh端口22。
目标:实现sftp多个用户可上传下载文件,并且各个用户都拥有不同的根目录实现安全隔离。
脚本演示:sftp服务搭建,本人已经写成脚本,一起来看看脚本执行得效果先
sftp自动化脚本执行效果
注意⚠️:要实现邮件发送,老猴将抽时间在接下来的下一篇实践操刀
远程登录操作:
SFTP远程登录操作
实操搭建:版本说明:
OS系统版本:CentOS 7.7
SSH版本:OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
系统版本及ssh版本
sftp服务器搭建方式:
1、sftp本事植根于ssh,有ssh就有sftp,所以直接在系统上新建一个用户即可完成搭建,这种方式最简单,但最不安全,sftp用户登陆之后可以随意切换目录,很不安全,生产环境中绝对是不能接受的安全威胁。
2、标准的、安全的sftp的搭建
第一步:新建sftp用户组(任意组名,为便于识别,此例用户组取名sftp)
groupadd sftp
第二部:新建sftp用户(任意用户名,为便于识别,此例用户组取名sftpu01)
useradd -g sftp -s /bin/false sftpu01
注意⚠️:安全考虑,需要禁止sftp用户ssh登陆到系统,所以新建用户有-s/bin/false选项
第三部:为sftp用户设置12位随机密码(位数和复杂度按需设置)
PassWd=$(strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 12 | tr -d "\n";echo)
echo -e "${PassWd}"|passwd --stdin sftpu01
注意⚠️:生成复杂随机密码的方式很多,此例使用urandom实现
第四部:为sftp用户建立根目录和可读写数据目录并设置用户和用户组(sftp用户的根目录此例为/data_sftp/sftpu01)
新建目录及修改所属组/主
mkdir -p /data_sftp/sftpu01 && chown root:sftp /data_sftp/sftpu01
修改用sftp用户根目录
usermod -d /data_sftp/sftpu01 sftpu01
建立sftp用户可读写的数据目录
mkdir -p /data_sftp/sftpu01/data01
为sftp用户可读写的数据目录设置用户及用户组权限
chown -R sftpu01:sftp /data_sftp/sftpu01/data01
chmod 755 /data_sftp/sftpu01/data01
第五部:修改/etc/ssh/sshd_config文件(注意⚠️,此步骤只在首次部署sftp操作,后期新加sftp用户不需要在执行)
将Subsystem sftp /usr/libexec/openssh/sftp-server这一行修改为:
#Subsystem sftp /usr/libexec/openssh/sftp-server,即在行前添加#号或删除
新添加内容:
Subsystem sftp internal-sftp -l INFO -f AUTH #这行指定使用sftp服务使用系统自带的internal-sftp
Match Group sftp #这行用来匹配用户组
ChrootDirectory /data_sftp/sftpu01%u #用chroot将用户的根目录指定到/data_sftp/sftpu01 ,这样用户就只能在/data/sftp下活动
AllowTcpForwarding no #这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
X11Forwarding no #这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
ForceCommand internal-sftp -l INFO -f AUTH #指定sftp命令
第六步:重启ssh,使之生效
service sshd restart
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com