如何设置Linux防火墙只开放必要端口?
美国、香港服务器
如何设置Linux防火墙只开放必要端口?
06-02 来源:
CentOS9 firewalld 配置:默认全拦、只放行必要端口(推荐)
一、基础启用防火墙
bash
运行
# 开机自启+立即开启
systemctl enable --now firewalld
二、设置默认入站全部丢弃(关键)
bash
运行
# 默认区域drop:所有入站默认拒绝
firewall-cmd --permanent --set-default-zone=drop
firewall-cmd --reload
zone=drop:没有放行规则全部丢包,符合最小权限。
三、放行端口两种写法
1. 业务端口(80/443 全网放行)
bash
运行
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
2. 远程 SSH 22 只放行你的固定公网 IP(替换为你的 IP)
bash
运行
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=你的公网IP port port=22 protocol=tcp accept"
示例:
bash
运行
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=122.135.XX.XX port port=22 protocol=tcp accept"
四、重载生效
bash
运行
firewall-cmd --reload
五、查看已放行规则
bash
运行
firewall-cmd --list-all
六、常用补充
删除错误端口
bash
运行
firewall-cmd --permanent --remove-port=xxx/tcp && firewall-cmd --reload
删除白名单 IP 规则
bash
运行
firewall-cmd --permanent --remove-rich-rule="rule family=ipv4 source address=xx.xx.xx.xx port port=22 protocol=tcp accept" && firewall-cmd --reload
备选:使用 ufw(Debian/Ubuntu)
bash
运行
# 先放SSH,避免失联
ufw allow from 你的IP to any port 22
# 默认入站拒绝
ufw default deny incoming
ufw default allow outgoing
# 放网站
ufw allow 80/tcp
ufw allow 443/tcp
# 启用
ufw enable
# 查看规则
ufw status numbered
安全准则
数据库 3306、6379 只监听 127.0.0.1 或内网,不进防火墙
21、23、135、139、445 一律不放行
云服务器:安全组 + 系统防火墙两层限制
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快