私の専用サーバーはvmbr0にブリッジされており、2つのブリッジイーサネットカードeth0とeth1があります。
転送を有効にしましたnet.ipv4.ip_forward=1
。
ポート8006を443にリダイレクトしたいです。
ポート8006でWebアプリケーションにアクセスしており、443にリダイレクトを使用しようとしていますiptables
。
現在、転送にこの規則を使用していますが、機能しません。
iptables -t nat -I PREROUTING -d 192.168.1.100 -p tcp --dport 443 -j DNAT --to-destination 192.168.1.100:8006
このルールを適用すると、iptables
192.168.1.100:8006からページにアクセスできなくなります。
# Default filter
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# Loopback allows all.
iptables -I INPUT -i lo -j ACCEPT
iptables -I FORWARD -i lo -j ACCEPT
# Null packets are, simply said, recon packets. see how we configured the VPS and find out weaknesses.
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# Reject is a syn-flood attack
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# XMAS packets, also a recon packet
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
# Allow all Outgoing connection
iptables -A OUTPUT -j ACCEPT
# Ethernet allows established/related Except invalid.
iptables -A INPUT -i vmbr0 -m state --state ESTABLISHE,RELATED -j ACCEPT
iptables -A INPUT -i vmbr0 -m state --state INVALID -j DROP
# Allow TCP on Port 22 SSH with rate limiting
iptables -A INPUT -i vmbr0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT -i vmbr0 -p tcp -m state --state NEW -m tcp --dport 22 -m recent --set
iptables -I INPUT -i vmbr0 -p tcp -m state --state NEW -m tcp --dport 22 -m recent --update --seconds 10 --hitcount 5 -j DROP
# Allow Ping ICMP echo With Limiting
iptables -A INPUT -i vmbr0 -p icmp -m state --state NEW -m icmp --icmp-type echo-request -j ACCEPT
iptables -I INPUT -i vmbr0 -p icmp -m icmp --icmp-type echo-request -m recent --set
iptables -I INPUT -i vmbr0 -p icmp -m icmp --icmp-type echo-request -m recent --update --seconds 10 --hitcount 10 -j DROP
# Allow HTTP Requests for NON-secured 80
iptables -A INPUT -i vmbr0 -p tcp --dport 80 -m state --state NEW -m tcp -j ACCEPT
iptables -I INPUT -i vmbr0 -p tcp --dport 80 -m state --state NEW -m recent --set
iptables -I INPUT -i vmbr0 -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 5 --hitcount 20 -j DROP
# Allow HTTP Requests for SLL 443
iptables -A INPUT -i vmbr0 -p tcp --dport 443 -m state --state NEW -m tcp -j ACCEPT
iptables -I INPUT -i vmbr0 -p tcp --dport 443 -m state --state NEW -m recent --set
iptables -I INPUT -i vmbr0 -p tcp --dport 443 -m state --state NEW -m recent --update --seconds 5 --hitcount 20 -j DROP
# Enabling Logging
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A OUTPUT -j LOGGING
iptables -A LOGGING -m limit --limit 10/min -j LOG --log-prefix "IPTables-log:" --log-level 4
iptables -A LOGGING -j DROP
# DROP ALL Except Above Rules
iptables -A INPUT -j DROP
答え1
発言はたくさんありますが、尋ねるのは少なすぎます。リモートコンピュータがポート8006の何かにアクセスできるようにするには、ファイアウォールにポート8006の接続を受け入れるように指示する必要がありますが、まだそうしていません。
PREROUTINGのルールは、アドレス443のネットワークセグメントを変更し、宛先アドレスを8006に変更します。ポート443をポート8006にリダイレクトします。しかし、ポート8006を443にリダイレクトしたいと述べました。 PREROUTINGルールで数字を変更しても、必要に応じて機能しない場合があります。
注:ファイアウォールを再スクリプトする必要があります。明らかにインターネットで見つけた内容をコピーして貼り付けた組み合わせです。これがうまくいくと(今)、確実に動作が停止します。たとえば、INPUTのポリシーをDROPに設定しましたが、まだiptables -A INPUT -j DROP
スクリプトの最後にあります。それは重複し、あなたがその問題についてあまり考えていないことを示しています。もっと深刻な間違いは、配信を有効にしましたが、配信する意図がないということです…私の考えでは。