Oracle在Linux上如何配置防火墙
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 Linux 7及以上默认使用firewalld,6及以下使用iptables。升级系统时需注意防火墙工具的变化。
- 规则优先级:firewalld的区域规则优先级高于富规则,iptables的规则顺序从上到下依次匹配(第一条匹配的规则生效)。
- 测试规则:修改规则后,建议通过
telnet或nc命令测试端口连通性(如telnet < IP> 1521),确保规则配置正确。 - 备份规则:修改前务必备份现有规则,避免误操作导致网络中断。
通过以上步骤,可根据Oracle Linux版本和需求配置防火墙,确保数据库(如Oracle Database)或其他服务的安全访问。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Oracle在Linux上如何配置防火墙
本文地址: https://pptw.com/jishu/735719.html
