温馨提示×

centos ssh防火墙如何设

小樊
64
2026-09-17 21:32:08
栏目: 智能运维

在 CentOS 上设置 SSH 防火墙,通常分为两种情况:firewalld(CentOS 7/8/Stream) 和 iptables(CentOS 6 或手动关闭 firewalld)。下面按常见场景说明。


一、CentOS 7 / 8 / Stream(使用 firewalld)

1. 确认 SSH 服务端口

默认 SSH 端口是 22

grep ^Port /etc/ssh/sshd_config

2. 开放 SSH 端口(22)

sudo firewall-cmd --permanent --add-service=ssh
# 或指定端口
sudo firewall-cmd --permanent --add-port=22/tcp

3. 重新加载防火墙

sudo firewall-cmd --reload

4. 查看已开放规则

sudo firewall-cmd --list-all

二、修改 SSH 端口后如何设防火墙

例如改成 2222

1. 修改 SSH 配置

sudo vi /etc/ssh/sshd_config
Port 2222
sudo systemctl restart sshd

2. 防火墙放行新端口

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

三、限制只允许特定 IP 访问 SSH(安全推荐)

只允许 192.168.1.100 访问 22 端口

sudo firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="192.168.1.100"
port protocol="tcp" port="22" accept'
sudo firewall-cmd --reload

四、CentOS 6 / 使用 iptables

开放 SSH(22)

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
service iptables save
service iptables restart

只允许某 IP

iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

五、常见注意事项

  • 修改 SSH 端口后 务必先放行防火墙再重启 sshd
  • 云服务器还要在 安全组 放行端口
  • 建议:
    • 禁用 root 登录
    • 使用密钥登录
    • 修改默认端口

如果你告诉我 CentOS 版本 + 是否云服务器 + 是否改过 SSH 端口,我可以给你更精确的一条命令配置。

0 踩