FTP服务-vsftp协议实现
我们常用的是FTP协议,主要是通过VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。
SFTP服务-ssh协议实现
由于vsftp采用明文传输,用户名密码可通过抓包得到,为了安全性,需使用sftp,锁定目录且不允许sftp用户登到服务器。由于sftp使用的是ssh协议,需保证用户只能使用sftp,不能ssh到机器进行操作,且使用密钥登陆、不是22端口。
- 创建sftp服务用户组,创建sftp服务根目录,通过groupadd指令进行创建对应的sftp服务用户组。
- 常见对应的sftp服务器的目录地址。
- 此目录及上级目录的所有者必须为root,权限不高于755,此目录的组最好设定为sftp
- 备份sshd_config配置文件
- 修改sshd配置文件
保证原来22端口可以
注释掉/etc/ssh/sshd_config文件中的此行代码:
添加如下代码:
凡是在用户组sftp里的用户,都可以使用sftp服务;使用sftp服务连接上之后,可访问目录为/data/sftp/username
案例说明
- test是一个sftp组的用户,它通过sftp连接服务器上之后,只能看到/data/sftp/test目录下的内容
- test2也是一个sftp组的用户,它通过sftp连接服务器之后,只能看到/data/sftp/test2目录下的内容
- 创建sftp用户,此例将创建一个名称为test的sftp帐号
#创建test sftp家目录:test目录的所有者必须是root,组最好设定为sftp,权限不高于755
- 创建test用户密钥对:
在test目录下创建一个可以写的upload目录
注:sftp服务的根目录的所有者必须是root,权限不能超过755(上级目录也必须遵循此规则),sftp的用户目录所有者也必须是root,且最高权限不能超过755。
- 测试sftp