使用如下脚本可以保护运行Oracle数据库的Linux主机
测试环境:服务器 RHEL AS3u3 +Oracle 10g, 客户端windows 2000 sp4+Oracle 9i
################oraclefirewall.sh##############################
#!/bin/bash
LC_ADDR=192.168.1.99
LO_ADDR=127.0.0.1
iptables -F
#清除现有的规
iptables -P INPUT DROP
#iptables -P OUTPUT DROP
#设置INPUT和OUTPUT链的默认规则为DROP,既不答应任何包到达本机,也不答应本机向外发包
iptables -A INPUT -p ALL -s $LC_ADDR -d $LC_ADDR -j ACCEPT
iptables -A OUTPUT -p ALL -s $LC_ADDR -d $LC_ADDR -j ACCEPT
iptables -A INPUT -p ALL -s $LO_ADDR -d $LO_ADDR -j ACCEPT
iptables -A OUTPUT -p ALL -s $LO_ADDR -d $LO_ADDR -j ACCEPT
#答应本机和本机联系,必须打开,否则listener无法正常启动
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
#添加规则,答应入站的ssh连接
iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1521 -j ACCEPT
#添加规则,答应入站的1521端口的连接,也就是答应其他主机通过监听器访问本机的数据库。
#假如listener监听的不是1521端口,则要做相应的修改
iptables -A INPUT -p tcp --dport 5560 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 5560 -j ACCEPT
#添加规则,答应入站的5560端口的连接,也就是答应其他主机访问本机的isqlplus
iptables -A INPUT -p tcp --dport 5500 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 5500 -j ACCEPT
#添加规则,答应入站的55600端口的连接,也就是答应其他主机访问本机的em
################end of here##############################