私はlinode.comを使用していますが、それらは各vpsにプライベートIPを割り当てる機能を提供します。私がやろうとしていることは、ネットワーク上の他のノードからのアクセスを許可するように各ノードのファイアウォールを設定することですが、あまり成功していないようです。
たとえば、server2からserver1:1337へのアクセスを許可しようとしています。どちらも次のように設定されています。
server1:
ifcfg-eth0:
DEVICE="eth0"
IPADDR="1.1.1.1"
NETMASK="255.255.255.0"
ifcfg-eth0:0:
DEVICE="eth0:0"
IPADDR="192.168.132.96"
NETMASK="255.255.128.0"
server2:
ifcfg-eth0:
DEVICE="eth0"
IPADDR="1.1.1.2"
NETMASK="255.255.255.0"
ifcfg-eth0:0:
DEVICE="eth0:0"
IPADDR="192.168.132.97"
NETMASK="255.255.128.0"
そして、server1のIPTablesルールセット:
#-----
# Flush all current rules from iptables#
#-----
iptables -F
iptables -F -t nat
#-----
#-----
# Set access for localhost
#-----
iptables -A INPUT -i lo -j ACCEPT
# !! Tried to allow all nodes on the subnet access to everything, but still didn't work !!
iptables -A INPUT -s 192.168.132.0/17 -j ACCEPT
#-----
#-----
# Accept packets belonging to established and related connections
#-----
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#-----
# !! Tried to allow access to the port directly !!
iptables -A INPUT -i eth0:0 -p tcp -s 192.168.132.0/17 --dport 1337 -j ACCEPT
#-----
# Lock everything down
#-----
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#-----
仮想設定が親設定を共有しているため、iptablesが-i eth0:0
呼び出しを使用できないと述べたいくつかの古いフォーラムを偶然見つけましたが、これを完全に確認することはできませんでした。
-編集-
また、プライベートサブネット(192.168.132.0/17)をserver2に追加しましたが、接続できません。
コメントからの提案とlinodeテクニカルサポートからの情報のおかげで、接続の問題を解決することができました。
この問題を解決するには、server1とserver2の両方に、iptablesの適切なプライベートサブネットエントリがあることを確認する必要がありました。
iptables -A INPUT -s 192.168.132.0/17 -j ACCEPT
両方のサーバーでこのエントリを作成した後、(server1から)server2:1337にtelnetで接続し、iptablesを介してバイト/パケットを監視し、実際にパケットが受け入れられていることを確認します。
$ -> telnet 192.168.132.97 1337
Trying 192.168.132.97...
Connected to 192.168.132.97.
Escape character is '^]'.
$ -> iptables -L -vn
Chain INPUT (policy DROP 337 packets, 18695 bytes)
pkts bytes target prot opt in out source destination
56 30019 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
53 40539 ACCEPT all -- * * 192.168.128.0/17 0.0.0.0/0
今問題は、ロードバランサーとしてnginxを使用しており、server2 dnsエントリを使用していたことです。これは、デフォルトでパブリックIPであると想定しています。これは、iptablesルールセットの一部ではありません。プライベートネットワーク上のすべての単一IPでポート1337へのアクセスを許可します。ただし、OPが解決されたため、この問題は別の質問です。
-更新-
他の誰かが将来この問題に遭遇した場合に備えて、この回答を更新します。私はこのソリューションを選択しました。 DNSステルス 。私のVPSの1つにDNS機能を追加することで、すべての内部IPと外部IPを追加できるため、内部IPテーブルのすべての構成が期待どおりに機能し、パブリックIPを介して任意のVPSにリモートアクセスできます。