配置CentOS的SFTP防火墙需要确保SSH端口(默认是22)对客户端开放,同时限制其他不必要的端口。以下是一个基本的步骤指南:
首先,确保你已经安装了OpenSSH服务器。
sudo yum install openssh-server
启动并启用SSH服务:
sudo systemctl start sshd
sudo systemctl enable sshd
CentOS 7及以上版本使用firewalld作为默认防火墙管理工具。如果你使用的是CentOS 6或其他防火墙工具,请相应调整。
确保SSH端口(默认22)在防火墙中开放。
sudo firewall-cmd --permanent --zone=public --add-service=ssh
sudo firewall-cmd --reload
你可以拒绝所有其他端口的入站连接,或者只允许特定的端口。
sudo firewall-cmd --permanent --zone=public --remove-service=http
sudo firewall-cmd --permanent --zone=public --remove-service=https
sudo firewall-cmd --permanent --zone=public --remove-service=ftp
sudo firewall-cmd --reload
如果你需要允许其他特定端口(例如,SFTP使用的端口),可以这样做:
sudo firewall-cmd --permanent --zone=public --add-port=22/tcp
sudo firewall-cmd --permanent --zone=public --add-port=2222/tcp # 假设你想使用2222作为SFTP端口
sudo firewall-cmd --reload
如果你启用了SELinux,可能需要配置它以允许SFTP连接。
sudo setsebool -P sftp_home_dir on
sudo setsebool -P ssh_sysadm_login on
编辑SSH配置文件/etc/ssh/sshd_config,确保以下行存在并正确配置:
Subsystem sftp /usr/libexec/openssh/sftp-server
最后,重启SSH服务以应用所有更改。
sudo systemctl restart sshd
使用SFTP客户端连接到你的服务器,确保一切正常。
sftp username@your_server_ip
通过以上步骤,你应该能够成功配置CentOS的SFTP防火墙,确保只有必要的端口开放,并且SFTP连接正常工作。