我用 iptables 打开了一个端口,但端口 5500 上与 Oracle 的连接仍然无法工作

我用 iptables 打开了一个端口,但端口 5500 上与 Oracle 的连接仍然无法工作

我安装了 CentOS 作为带有 VirtualBox 的来宾虚拟机。我有两个以太网接口,eth0 带有 NAT 和 DHCP,eth1 带有 Host-only 适配器和静态 IP。

我在这个 CentOS 中安装了 Oracle,我想打开数据库的端口 1521 和 Oracle 管理器的端口(这取决于数据库 - 在本例中为 5500)。所以我的

    # Firewall configuration written by system-config-firewall
    # Manual customization of this file is not recommended.
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 1158 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 5500 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 465 -j ACCEPT
    -A INPUT -j REJECT --reject-with icmp-host-prohibited
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    COMMIT

sudo iptables -nvL来宾虚拟机中显示:

            Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
     266K  103M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
        1    84 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
     4749  285K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
        3   192 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:1521
        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:1158
     1001  143K REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

    Chain OUTPUT (policy ACCEPT 220K packets, 92M bytes)
     pkts bytes target     prot opt in     out     source               destination

看起来 iptables 显示的条目比我在文件中定义的条目少。

sudo netstat -apnt | grep 5500显示该进程确实在 5500 上运行:

    tcp        0      0 192.168.56.11:25500         192.168.56.11:1521          ESTABLISHED 3332/emagent
    tcp        0      0 :::5500                     :::*                        LISTEN      3323/java
    tcp        0      0 ::ffff:192.168.56.11:1521   ::ffff:192.168.56.11:25500  ESTABLISHED 3891/oraclesampleDM

我做了好几个telnet oracleserver XXX。它可以连接22和1521,这似乎是我在iptables中添加的前两个。它拒绝连接所有其余的内容 - 看起来它正在使用旧版本的文件。

但在我的主机上,如果我打开浏览器并键入,https://oracleserver:5500/em/则会收到错误。

sudo iptables restart修改文件后我已经完成了,甚至重新启动了操作系统。

我已经评论了拒绝行(以查看是否可能存在路由问题),甚至service iptables stop.我仍然有同样的问题。有趣的是 ssh 从主机到访客都有效!

route -n在来宾虚拟机输出中:

    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
    192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
    169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
    169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
    0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0

有什么奇怪的吗?

答案1

这条评论byott--似乎是正确的。如果上面的屏幕转储完成,则该服务仅侦听 IPv6 上的 5500,而根本不侦听 1158。

相关内容