linux

Oracle在Linux上如何配置防火墙

小樊
38
2025-10-27 00:23:23
栏目: 云计算

Oracle Linux防火墙配置指南(iptables与firewalld)

Oracle Linux系统默认集成firewalld(动态防火墙管理工具,适用于RHEL 7及以上版本,包括Oracle Linux 7/8/9)作为主要防火墙解决方案,部分旧版本(如Oracle Linux 6)仍使用iptables(传统静态防火墙工具)。以下是两种工具的具体配置流程:

一、firewalld配置(Oracle Linux 7及以上推荐)

firewalld采用“区域(Zone)”概念,将网络接口划分为不同信任级别(如public、trusted、work),通过服务(Service)或端口(Port)规则控制流量。

1. 检查firewalld状态

systemctl status firewalld

若输出显示“active (running)”,则表示防火墙已启用;若未启用,执行sudo systemctl enable --now firewalld启动并设置开机自启。

2. 开放端口(以1521端口为例,Oracle数据库默认端口)

# 添加永久规则(--permanent表示重启后仍生效)
sudo firewall-cmd --permanent --zone=public --add-port=1521/tcp
# 重新加载配置使规则立即生效
sudo firewall-cmd --reload
# 验证端口是否开放
sudo firewall-cmd --zone=public --list-ports

若输出包含“1521/tcp”,则表示规则生效。

3. 开放服务(更推荐,自动关联端口和协议)

# 添加Oracle数据库服务(需firewalld预定义,若未定义可使用--add-port替代)
sudo firewall-cmd --permanent --zone=public --add-service=oracle-database
# 重新加载配置
sudo firewall-cmd --reload
# 验证服务是否开放
sudo firewall-cmd --zone=public --list-services

firewalld预定义了常见服务(如http、ssh),可通过firewall-cmd --get-services查看所有可用服务。

4. 允许特定IP访问(如仅允许192.168.1.100访问1521端口)

# 添加富规则(rich rule,支持IP、端口、协议等高级条件)
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="1521" accept'
# 重新加载配置
sudo firewall-cmd --reload
# 验证富规则
sudo firewall-cmd --zone=public --list-rich-rules

此规则仅允许指定IP访问1521端口,提升安全性。

二、iptables配置(Oracle Linux 6或旧环境)

iptables是传统静态防火墙工具,通过规则链(Chain)和策略(Policy)控制流量,适用于需要精细调整的场景。

1. 备份现有规则

sudo iptables-save > /etc/iptables.backup

修改前备份可避免规则丢失导致网络中断。

2. 清除现有规则

sudo iptables -F  # 清空所有规则
sudo iptables -X # 删除自定义链
sudo iptables -Z # 重置计数器

清除现有规则以确保从干净状态开始配置。

3. 设置默认策略

sudo iptables -P INPUT DROP    # 拒绝所有入站流量(默认拒绝)
sudo iptables -P FORWARD DROP  # 拒绝所有转发流量
sudo iptables -P OUTPUT ACCEPT # 允许所有出站流量(默认允许)

默认策略应遵循“最小权限原则”,仅允许可信流量。

4. 允许本地回环接口

sudo iptables -A INPUT -i lo -j ACCEPT

本地回环接口(lo)用于本机进程间通信,必须允许,否则可能导致系统服务异常。

5. 允许特定IP或网段访问

# 允许192.168.1.100访问所有端口
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
# 允许192.168.1.0/24网段访问1521端口
sudo iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 1521 -j ACCEPT

根据需求添加规则,优先匹配具体IP或网段,减少规则冲突。

6. 允许已建立的连接

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

允许已建立的连接(如客户端与服务器之间的响应流量)和相关的流量(如FTP数据连接),确保正常通信不受影响。

7. 保存并重启iptables

# 保存规则(Oracle Linux 6默认使用iptables-services包)
sudo service iptables save
# 重启服务使规则生效
sudo service iptables restart

保存规则后,重启服务确保规则持久化(重启系统后仍有效)。

注意事项

通过以上步骤,可根据Oracle Linux版本和需求配置防火墙,确保数据库(如Oracle Database)或其他服务的安全访问。

0
看了该问题的人还看了