我安装了 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。