2017-02-08 22 views
-3

私は以下のiptablesを持つクラウド上のサーバを持っています。iptablesを使用したリダイレクト

iptables -A INPUT -i lo -j ACCEPT 
iptables -A INPUT -p tcp --dport 80 -j ACCEPT 
iptables -A INPUT -p tcp --dport 443 -j ACCEPT 
iptables -A INPUT -j DROP 

iptables -A OUTPUT -o lo -j ACCEPT 
iptables -A OUTPUT -p tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -p tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -p tcp --sport 9200 -m state --state New,RELATED,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -j DROP 

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2900 -j DNAT --to-destination 127.0.0.1:9200 

私は2900ポートで私のサービスにアクセスできるように他のチェーンに追加する必要があります。

答えて

1

ルールは上から下に適用されます。

6.2の宛先NAT

これは、パケットが入って来同じように、PREROUTINGチェーンで行われます。これは、Linuxボックス自体(ルーティング、パケットフィルタリング)上の何かが

はあなたがでPREROUTINGラインをしたいパケットが `本当の」目的地に行く参照することを意味しますtop、NATが最初に起こります。

NATの後、宛先ポートで着信接続を許可するINPUTエントリ。

あなたのINPUTルールは、RELATEDとESTABLISHEDを受け入れず、特定の送信元ポートを設定する出力ルールは何ですか?通常、アウトバウンドトラフィックはランダムに高いポートから送信されます。

https://serverfault.com/a/578781/57144およびhttps://serverfault.com/a/578787/57144は、着信ポート用の新しい接続を明示的に指定したい場合は、パフォーマンスのルール(該当する場合)を少なくする必要があります。

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2900 -j DNAT --to-destination 127.0.0.1:9200 

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -A INPUT -i lo -j ACCEPT 
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT 
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 9200 -j ACCEPT 

# or 
# iptables -A INPUT -p tcp -m state --state NEW -m tcp -m multiport --dports 80,443,9200 -j ACCEPT 

iptables -A INPUT -j DROP 
+0

ありがとうTessellatingHeckler。 – Goforseeking

関連する問題