VirtualBox를 사용하여 CentOS를 게스트 가상 머신으로 설치했습니다. NAT와 DHCP가 있는 eth0과 호스트 전용 어댑터와 고정 IP가 있는 eth1이라는 두 개의 이더넷 인터페이스가 있습니다.
이 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
. iptables에 추가한 처음 두 개인 22와 1521을 연결할 수 있습니다. 나머지 모든 연결을 거부합니다. 이전 버전의 파일을 사용하는 것 같습니다.
하지만 내 호스트에서 브라우저를 열고 입력하면 https://oracleserver:5500/em/
오류가 발생합니다.
sudo iptables restart
파일 수정이 완료되고 OS를 다시 시작하기도 했습니다.
라우팅 문제가 있는지 확인하기 위해 거부 줄을 주석 처리했는데 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
이 댓글로 ott--
맞는 것 같습니다. 위의 화면 덤프가 완료되면 서비스는 IPv6의 5500에서만 수신 대기하고 1158에서는 전혀 수신하지 않습니다.