搭建sftp服务器及ftp服务器

一.搭建sftp服务器

实现目标:实现两个用户admin和usr的sftp传输,其中admin可以上传下载,usr只可以下载。sftp端口改为22222

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

1.创建sftp用户组

useradd sftp

2.创建不可登录用户admin及usr并加入sftp组

useradd -g sftp -s /sbin/nologin admin
useradd -g sftp -s /sbin/nologin usr

3.给用户设置密码

passwd admin

passwd usr

4.配置sshd_config文件

在sshd_config文件中找到Subsystem开头的行,用#符号注释掉。并添加以下内容
vim /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server

Subsystem sftp internal-sftp 
AllowTcpForwarding no
X11Forwarding no

Match Group sftp
ChrootDirectory /home/sftp/ 
ForceCommand internal-sftp

其中ChrootDirectory指定的是用户目录,用ChrootDirectory指定的用户目录这一层和上面其他层的拥有着必须为root用户。

5.设置目录权限

#创建目录并修改权限为root用户拥有
mkdir /home/sftp/
chown root /home/sftp/
chmod 755 /home/sftp/
#在用户目录下建立子目录,让sftp中admin的用户可读写文件
我们现在在/home/sftp目录下新建一个data文件夹用于下载和上传:
mkdir -p /home/sftp/data
#授权data文件夹读写,让子文件夹data属于admin
chown admin:sftp /home/sftp/data
#设置属主可读可写,其他用户可读
chmod 750 /home/sftp/data

6.关闭selinux

vim /etc/selinux/config 

SELINUX=disabled

setenforce 0

7.修改sftp端口号

sftp与ssh端口一致均为22端口,如果不想用22端口,则可以在sshd_config中进行修改

vim  /etc/ssh/sshd_config
Port 22222

8.重启sshd服务

systemctl restart sshd 
systemctl enable sshd 
若要加入其他可读账号:只需要将新账号user1加入sftp组中。
useradd -g sftp -s /sbin/nologin user1
要自动修改上传文件的权限,则要修改配置文件中的 local_umask 的值
vim /etc/profile
umask 0027

source
/etc/profile

umask值       目录        文件

022             755         644

027             750         640

002             775         664

006             771         660

007             770         660

9.额外需求:添加一个sftp可以访问/home/sftp/data/CITI 管理权限的账号,但是这个账号不能向前查看其他文件夹,而不需要ftp功能。其中/home/sftp/data/CITI为已建文件夹
#创建用户
useradd -G sftp -s /sbin/nologin Citiadm
#修改密码
passwd Citiadm
xxxxxx
#修改目录权限
chown Citiadm:sftp /home/sftp/data/CITI
#属主读写,属组可读
chmod -R 770 /home/sftp/data/CITI
systemctl restart sshd 

#改家目录,Citiadm账户使用sftp登录进去之后就是家目录/home/sftp/data/CITI
sudo vi /etc/passwd
sudo usermod -d /home/sftp/data/CITI -u 1005 Citiadm
#设置新建文件的权限,使新建文件权限为660,gwadm和gwusr都可读可写
umask 007

 

二.搭建ftp服务器

ftp服务为vsftpd,默认端口为21,改完2121

1.开启FTP服务

yum install -y vsftpd

2.修改配置文件,设定ftp上传家目录,与上方sftp一致

端口设置为2121 

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO

local_enable=YES
local_root=/home/sftp
chroot_local_user=YES
listen_port=2121
use_localtime=YES

allow_writeable_chroot=YES

3.在/etc/services中修改ftp

vim /etc/services
ftp             2121/tcp
ftp             2121/udp

4.注释掉仅允许用户的shell为 /etc/shells 文件内的shell命令时,才能够成功

否则ftp登录时会有530 Login incorrect.530 Please login with USER and PASS.报错

vim /etc/pam.d/vsftpd
#注释掉
#auth       required    pam_shells.so

5.重启vsftpd服务

systemctl restart vsftpd

三.测试

1.window测试:在文件目录输入
sftp://xx.xx.xx.xx:22222
ftp://xx.xx.xx.xx:2121

2.linux测试

sftp测试

sftp -oPort=22222 admin@xx.xx.xx.xx

ftp测试

#安装ftp
yum install ftp -y
ftp xx.xx.xx.xx 2121

 四.开启日志

vim /etc/vsftpd/vsftpd.conf
#传输日志:记录文件传输活动(上传、下载)的详细信息,如文件名、传输字节数、传输时间等。 xferlog_enable
=YES xferlog_file=/var/log/xferlog xferlog_std_format=YES dual_log_enable=YES #协议日志:记录更详细的 FTP 协议交互信息,包括客户端发送的每个命令和服务器的响应。 vsftpd_log_file=/var/log/vsftpd.log

 重启

systemctl restart vsftpd

三.需求:再建一个spain账户 要求通过sftp访问且与之前的用户权限隔离

途径:在/etc/ssh/sshd_config中添加多个sftp组

创建用户组及用户

groupadd sftp_spaindata
useradd -g sftp_spaindata -s /sbin/nologin spain

创建目录及授权

mkdir -p /data/spain/data
chmod 755 /data/spain/
chmod 750 /data/spain/data
chown root:root /data/spain/
chown spain:sftp_spaindata  /data/spain/data

添加ssh配置

vim  /etc/ssh/sshd_config
# 第二个匹配组
Match Group sftp_spaindata
ChrootDirectory /data/spain/
ForceCommand internal-sftp
AllowUsers spain # 限制只有 spain 能访问 /spaindata

修改用户密码

passwd spain

重启ssh

systemctl restart sshd

验证权限

 四.若ftp需求使用不同账户有不同目录的权限

编辑/etc/vsftpd.conf ,添加配置:

vim /etc/vsftpd/vsftpd.conf
#添加配置
user_config_dir=/etc/vsftpd/user_conf

添加配置,需要给spain账户授权/data/spain的权限,具体权限在sftp中已经配置了,此处的配置只是给ftp的访问权限

mkdir /etc/vsftpd/user_conf

vim /etc/vsftpd/user_conf/spain

local_root=/data/spain

重启ftp

systemctl restart vsftpd

没有特殊配置的用户仍然使用/etc/vsftpd.conf中配置的local_root

 

posted @ 2023-12-20 13:57  潇潇暮鱼鱼  阅读(1182)  评论(0)    收藏  举报