ubuntu

ubuntu sftp安全设置如何做

小樊
47
2025-06-11 22:05:11
栏目: 智能运维

在Ubuntu系统上设置SFTP服务器时,确保文件传输的安全性至关重要。以下是一些关键的安全设置要点:

安装OpenSSH服务器

首先,确保系统上安装了OpenSSH服务器软件包,这是SFTP服务的基础。

sudo apt update
sudo apt install openssh-server

创建专属用户组

创建一个专门的SFTP用户组,以便更好地控制权限和隔离。

sudo groupadd sftpusers

创建SFTP用户

创建SFTP用户并将其添加到专门的用户组中。

sudo useradd -s /sbin/nologin -g sftpusers -d /sftp/sftpuser sftpuser
sudo passwd sftpuser

配置SSHD配置文件

编辑SSH配置文件(通常是 /etc/ssh/sshd_config),添加或修改以下配置:

# 禁用密码认证
PasswordAuthentication no
# 启用公钥认证
PubkeyAuthentication yes
# 配置ChrootDirectory
Match Group sftpusers
    ChrootDirectory /home/%u
# 禁止TCP转发和X11转发
AllowTcpForwarding no
X11Forwarding no

调整目录权限

确保用户的家目录及其上级目录的权限设置正确。所有权应属于root,权限设置为755。

sudo chown root:root /home/sftpusers
sudo chmod 755 /home/sftpusers

为用户创建一个用于存放文件的目录,并设置相应的权限:

sudo mkdir /home/sftpuser/files
sudo chown sftpuser:sftpusers /home/sftpuser/files
sudo chmod 755 /home/sftpuser/files

启用公钥认证

为了提高安全性,建议使用公钥认证而不是密码认证。首先,生成SSH密钥对(如果还没有的话):

ssh-keygen -t rsa -b 4096

将公钥添加到服务器的 authorized_keys 文件中:

cat ~/.ssh/id_rsa.pub | sudo tee -a /etc/ssh/authorized_keys

然后,修改SSH配置文件以启用公钥认证:

PubkeyAuthentication yes
PasswordAuthentication no

保存并退出编辑器,然后重启SSH服务以应用更改:

sudo systemctl restart ssh

配置防火墙

确保防火墙允许SFTP连接。你可以使用UFW(Uncomplicated Firewall)来配置防火墙规则:

sudo ufw allow ssh
sudo ufw enable

测试SFTP服务

使用SFTP客户端连接到服务器,验证配置是否正确。

sftp sftpuser@your_server_ip

输入密码进行身份验证,如果一切配置正确,你将成功登录到SFTP服务器。

0
看了该问题的人还看了