配置Debian系统的SFTP防火墙主要涉及设置SSH(Secure Shell)服务器的防火墙规则,因为SFTP是通过SSH协议运行的。以下是详细的步骤:
首先,确保你的Debian系统上已经安装了SSH服务器。如果没有安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install openssh-server
编辑SSH配置文件 /etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
确保以下配置项正确设置:
Port 22
:默认端口是22,你可以根据需要更改。PermitRootLogin no
:禁止root用户直接登录。PasswordAuthentication yes
:允许密码认证(如果你使用密钥认证,可以设置为no
)。AllowUsers your_username
:只允许特定用户登录(可选)。保存并退出编辑器,然后重启SSH服务:
sudo systemctl restart sshd
Debian默认使用ufw
(Uncomplicated Firewall)作为防火墙管理工具。如果没有安装,可以使用以下命令进行安装:
sudo apt install ufw
启用ufw
:
sudo ufw enable
设置默认策略为拒绝所有流量,然后允许SSH连接:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
你可以查看当前的防火墙规则:
sudo ufw status
如果你只想允许特定IP地址访问SFTP,可以使用以下命令:
sudo ufw allow from 192.168.1.1 to any port 22
将192.168.1.1
替换为你允许的IP地址。
为了提高安全性,可以限制SFTP用户的权限。编辑SSH配置文件 /etc/ssh/sshd_config
,添加或修改以下内容:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
创建一个组sftpusers
并将需要限制的用户添加到该组:
sudo groupadd sftpusers
sudo usermod -aG sftpusers your_username
确保用户的主目录权限正确:
sudo chown root:root /home/your_username
sudo chmod 755 /home/your_username
创建用户的SFTP目录并设置权限:
sudo mkdir /home/your_username/uploads
sudo chown your_username:sftpusers /home/your_username/uploads
sudo chmod 755 /home/your_username/uploads
最后,重启SSH服务以应用所有更改:
sudo systemctl restart sshd
现在,你的Debian系统应该已经配置好了SFTP防火墙,并且只允许特定IP地址访问SFTP服务。