温馨提示×

linux oracle如何配防火墙

小樊
39
2026-10-16 04:08:26
栏目: 云计算

在 Linux + Oracle 数据库 环境中配置防火墙,核心目标是:
只开放 Oracle 需要的端口,并限制可访问的 IP。

下面分 firewalld(CentOS/RHEL 7+) 和 iptables(老版本) 两种常见情况说明。


一、Oracle 常用端口

用途 默认端口
Oracle 监听(Listener) 1521
EM Express(12c+) 5500
实例 VIP / RAC 可选
自定义监听端口 视配置

如果不确定,查看:

lsnrctl status

二、使用 firewalld(推荐,CentOS 7 / RHEL 7+)

1️⃣ 启动并启用防火墙

systemctl start firewalld
systemctl enable firewalld

2️⃣ 开放 Oracle 端口(1521)

firewall-cmd --permanent --add-port=1521/tcp
firewall-cmd --reload

3️⃣ 限制只允许特定 IP 访问(强烈推荐)

例如只允许 192.168.1.100:

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

4️⃣ 查看规则

firewall-cmd --list-all

三、使用 iptables(CentOS 6 / 老系统)

1️⃣ 允许 Oracle 端口

iptables -A INPUT -p tcp --dport 1521 -j ACCEPT

2️⃣ 限制 IP(推荐)

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

3️⃣ 保存规则

service iptables save

四、Oracle 本身也要注意

✅ 监听只绑定必要 IP

listener.ora 示例:

LISTENER =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))

✅ 数据库鉴权不能只靠防火墙

  • 使用强密码
  • 限制 SYSDBA 远程登录
  • 启用审计

五、常见错误

❌ 防火墙开了,但监听没起
❌ SELinux 拦截(可临时测试):

setenforce 0

正式环境应配置 SELinux 而非关闭。


六、快速检查清单

✅ 防火墙开放 1521
✅ 只允许业务 IP
✅ 监听正常
✅ 本地能连,远程能连
✅ 非必要端口不开放


如果你能告诉我:

  • Linux 发行版(CentOS / RHEL / Oracle Linux / Ubuntu)
  • Oracle 版本(11g / 12c / 19c)
  • 是否 RAC / 单机

我可以给你 精准命令模板。

0 踩