Linux SFTP配置中的防火墙实践
一 基础放行与验证
sudo firewall-cmd --permanent --zone=public --add-service=sshsudo firewall-cmd --permanent --zone=public --add-port=2222/tcpsudo firewall-cmd --reloadsudo ufw allow ssh 或 sudo ufw allow 22/tcpsudo ufw enablesudo iptables -A INPUT -p tcp --dport 22 -j ACCEPTsudo firewall-cmd --list-allsudo ufw status verbosesudo iptables -L -v -nssh -p 22 your_user@your_server 或 sftp -P 22 your_user@your_server。二 限制来源IP
sudo firewall-cmd --permanent --zone=trusted --add-source=192.168.1.0/24sudo firewall-cmd --permanent --zone=trusted --add-service=sshsudo firewall-cmd --set-default-zone=trusted(变更前务必确保当前SSH会话不被中断)sudo firewall-cmd --reloadsudo ufw allow from 203.0.113.10 to any port 22sudo iptables -A INPUT -p tcp --dport 22 -s 203.0.113.10 -j ACCEPT/etc/ssh/sshd_config中使用Match Address对特定IP应用SFTP策略,作为防火墙的互补手段。三 修改SFTP端口后的防火墙配合
/etc/ssh/sshd_config:Port 22 与 Port 2222(建议先保留22以便回滚)sudo systemctl restart ssh,CentOS/RHEL 用 sudo systemctl restart sshdss -lntp | grep -E ':(22|2222)'sudo firewall-cmd --permanent --zone=public --add-port=2222/tcp && sudo firewall-cmd --reloadsudo ufw allow 2222/tcpsudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPTsudo semanage port -a -t ssh_port_t -p tcp 2222四 连接数限制与抗洪策略
sudo iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 50 --connlimit-mask 32 -j DROPsudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT--connlimit-mask 32表示按单个IP统计,如需按网段统计可改为24等掩码。sudo iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPTsudo iptables -A INPUT -p tcp --syn -j DROP五 安全加固清单
ss -lntp | grep ssh、sudo firewall-cmd --list-all、sudo ufw status、sudo iptables -L -v -n。