sftp与vsftp使用
sftp简单配置
sftp是ssh内含协议,也就是说只要sshd服务器启动了,sftp就可使用,不需要额外安装,它的默认端口和SSH一样为22。
sftp如何配置
- sftp版本需要大于4.8
rpm -qa|grep opensshd | ssh -V 都可以查看版本信息
- 创建用户组与用户
groupadd sftpgroup |创建用户组
useradd -g sftpgroup -M -s /sbin/nologin sftpuser |创建sftp用户,用户组为sftpgroup。不生成家目录。
passwd sftpuser |创建密码
- 修改配置文件,启用sftp
vim /etc/ssh/sshd_config
#Subsystem sftp internal-sftp -l INFO -f AUTH |打开此行,取消注释
添加以下配置:
Match user sftpuser |sftp用户名
ChrootDirectory /home/data/sftp/ |指定sftp远程共享目录
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -l INFO -f AUTH
重启sshd服务:
systemctl restart sshd
修改sftp目录权限:
chmod 755 -R /data/sftp
修改属主属组:
chown sftpuser:sftpuser -R /data/sftp
现在sftp就配置成功了,可以使用下面命令登录尝试:
sftp sftpuser@127.0.0.1
vsfttp安装配置
安装vsftp
yum install -y vsftpd pam* db4*
systemctr start vsftpd
配置vsttp
vim /etc/vsftpd/vuser_passwd | 用来报存虚拟用户账号密码文件
user
passwd
注:单行为账号,双行为密码。不需要隔空行,写完报存退出。
#生成虚拟用户口令认证文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
#编辑vsftp的PAM认证文件(将文件内所有已存在的注释掉,新添加下面两行)
vim /etc/pam.d/vsftpd
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
#建立本地映射用户并设置宿主目录权限,所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码。
useradd –d /home/vftpsite –s /sbin/nologin vftpuser
编辑主配置文件,并打开虚拟用户登录
# cat vsftpd.conf
write_enable=YES
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_user_name=ftpuser
virtual_use_local_privs=NO
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/vuser_conf #虚拟用户配置文件路径
ftpd_bammer=Welcome to xxxxxxxx FTP server #xxx表示名字(可以是公司或者个人)
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_dowmload_enable=YES
tcp_Lwrappers=NO
setproctitle_enable=YES
1istenport=21
comnect_from_port_20=YES
idle_session_timeout=600
data_comnection_timeout=120
max_clients=0
max_per_ip=3
local_max_rate=512000
allow_writeable_chroot=YES
修改虚拟用户配置文件,以限制权限
#admin开启所有权限
# cat admin
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
#为customer_01只开启上传权限
# cat customer 01
anon_world_readable_only=YES
write_enable=YES
anon_upload_enable=YES
virtual_use_local_prius=NO
#为user用户开启查看下载权限
# cat user
anon_world_readable_only=NO
重启服务测试:
systemctl restart vsftpd
#客户端连接测试:
yum install ftp -y
ftp 0.0.0.0
配置文件权限说明:
注:只开通上传权限是不能开启查看权限的。
#设定根目录
local_root=/var/data/ftp/develop
# 设定权限,不拥有和代理系统用于同样的权限
virtual_use_local_privs=NO
#设定写权限
write_enable=YES
#设定权限:可以上传文件
anon_upload_enable=YES
#设定权限:不能新建目录
anon_mkdir_write_enable=NO
#设定权限:不能删除/重命名文件
anon_other_write_enable=NO
#设定权限:可以浏览目录下的文件
anon_world_readable_only=NO
#设定上传文件权限
anon_umask=022
#理解虚拟用户设定权限,vsftp差不多就够用了
“笔记是为了更好的复制--,”