在CentOS系统上配置SFTP服务器的防火墙涉及几个关键步骤。以下是详细的指南:
安装和配置OpenSSH服务器
-
安装OpenSSH服务器:
sudo yum install openssh-server
-
启动并启用SSH服务:
sudo systemctl start sshd sudo systemctl enable sshd
-
检查SSH服务状态:
sudo systemctl status sshd
配置SFTP用户和目录权限
-
创建SFTP用户:
sudo useradd -m -s /sbin/nologin sftpuser
-
设置用户密码:
sudo passwd sftpuser
-
创建用户的SFTP根目录:
sudo mkdir /sftp
-
设置根目录的权限:
sudo chown root:root /sftp sudo chmod 755 /sftp
-
在根目录下创建子目录,并设置写入权限:
sudo mkdir /sftp/sharedata sudo chown sftpuser:sftpuser /sftp/sharedata sudo chmod 755 /sftp/sharedata
配置SSH配置文件
-
创建用户的SSH配置文件目录:
sudo mkdir /home/sftpuser/.ssh
-
复制系统SSH配置文件到用户目录:
sudo cp /etc/ssh/sshd_config /home/sftpuser/.ssh/sshd_config
-
编辑用户的SSH配置文件:
sudo nano /home/sftpuser/.ssh/sshd_config
在文件中添加以下配置:
Match User sftpuser ChrootDirectory /sftp ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
-
给新用户的用户目录递归设置归属:
sudo chown -R sftpuser:sftpuser /home/sftpuser
-
给配置文件设置读取权限:
sudo chmod 755 /home/sftpuser/.ssh/sshd_config
-
修改SSH服务启动选项(可选): 如果你需要为多个用户指定不同的配置,可以在SSH服务的启动选项中指定这些文件。
sudo systemctl daemon-reload sudo systemctl restart sshd
配置防火墙规则
-
启动并启用firewalld(如果尚未启动):
sudo systemctl start firewalld sudo systemctl enable firewalld
-
开放SSH端口(默认22):
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
-
配置SFTP子系统: 编辑
/etc/ssh/sshd_config
文件,确保以下配置存在:Subsystem sftp /usr/libexec/openssh/sftp-server
-
重新加载SSH服务:
sudo systemctl restart sshd
通过以上步骤,你可以在CentOS系统上成功配置SFTP服务器,并确保其安全性。