web-dev-qa-db-ja.com

iptablesはポート80/443を8080/8181にリダイレクトします

Centos 6.4では、22、80、および443を除くすべての着信ポートをブロックします。80(外部)は8080(内部)にリダイレクトする必要があります。 443(外部)は8181(内部)にリダイレクトされます。次のコマンドを使用しました。

service iptables stop
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8181
service iptables save
service iptables restart

ただし、ポート8080および8181には引き続きアクセスできます。ポート8080および8181を外部でブロックし、80および443からのリダイレクト用に内部的に開いている方法はありますか?

3
Distortum

パケットをドロップするルールはありません。これを行うには、INPUTチェーンのデフォルトポリシーをDROPに設定します。デフォルトではACCEPTです。

iptables -P INPUT DROP

これを行うと、発信接続が機能しなくなることに気付く場合があります。

INPUTチェーンの上部で、すでに確立されているACCEPTトラフィックにルールを追加できます。

次のようにしてください。

iptables -A INPUT -m state --state ESTABLISHED,RELATED

RELATED部分は、他の関連するトラフィックを通過させます(たとえば、ESTABLISHED接続で発生した何かの結果として送信されたICMPパケット)

5
gparent

新しいチェーンを作成してから、このチェーンにルールを追加する方がよいでしょう。あなたはそれを行うことができます:最初のDROP着信/転送/発信トラフィック

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

次に、判断がACCEPTのチェーンを作成し、内部にルールを追加します。

iptables -N myrules # Create a new chain
iptables -A myrules -m state --state ESTABLISHED,RELATED
iptables -A myrules -j LOG --log-prefix="Myrules: " # Just a log prefix
iptables -A myrules -j ACCEPT # Packets matching this rule will be ACCEPTed
iptables -A INPUT -i eth0 -p tcp --dport 22 -j myrules

次に、リダイレクトルールを追加します。

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8181
0
philippe