80から8080へのポートルーティングを維持


23

私は、ubuntu経由で機能するAmazon EC2インスタンスを使用します。デフォルトでは、セキュリティ制限に従って、アプリケーションをポート80にバインドできないため、ポート8080にバインドし、次のコマンドを使用してポート80から8080にルーティングリダイレクトを設定します。

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080

しかし、サーバーを再起動すると、このコマンドを再度呼び出すまで、この設定はアクティブではなくなっていることがわかりました。

だから私の質問は、システムが再起動された場合でもポートのリダイレクト作業を有効にする方法ですか?

回答:


18

このコマンドを追加して/etc/rc.local、再起動後に自動的に実行されるようにすることができます。


すでにそれをしたが、それでも答えてくれてありがとう
Ph0en1x

私の友人は良いトリックthatsの、歓迎
NUX

2
これは動作しますが、本当の答えは以下の@MeOMyの答えです。
ダークグルーネフェルド

15

代わりにiptables-saveコマンドを使用してください。ファイアウォールルールをrc.localスクリプトに入れないでください。rc.localは最後に実行されるものです。ブロックルールがrc.localに配置されている場合、攻撃者が適切でないルールを悪用できる短い時間枠があります。この状況ではおそらく重要ではありませんが、後であなたに噛み付くかもしれない悪い習慣に入らないことが最善です。


1
「sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080」および「sudo iptables-save」を実行しました。しかし、ルーティングは再起動時にリセットされました。これを行う方法を誤解しましたか?
gromit190

2
答えは不完全です。 iptables-save > some-file-pathルールを保存してからiptables-restore < some-file-path、でそれらを復元しますrc.local。またはiptables-persistent、サービスとして起動中にこれを行うインストール。
トーマス・ウォード

これを行う方法を理解したいと思います。もっと具体的にしてください
gromit190

4

公式のipttableのドキュメントがどのように教えてくれるかを以下に示します。こちらをご覧ください

/ etc / network / interfacesに次の2行を追加します。
pre-up iptables-restore < /etc/iptables.rules post-down iptables-save > /etc/iptables.rules

「post-down iptables-save> /etc/iptables.rules」という行は、次回のブートで使用されるルールを保存します。


このタスクを完了するために公式に推奨されている方法、この場合は最も簡単な方法を使用したことに対する称賛。KISSメソッドを使用できる場合は、+ 2にします。
ディージェイ

0

Ubuntu 16.04で/etc/network、ネットワークの初期化とシャットダウン中のさまざまな時点でスクリプトを実行する一連のディレクトリを発見しました。

if-down.d
if-post-down.d  
if-pre-up.d  
if-up.d
interfaces.d

だから私はいつものように設定をダンプできることがわかりました:

$ sudo sh -c "iptables-save > /etc/iptables.rules"

次に、ファイル `/etc/network/if-pre-up.d/restoreを作成しました。

#!/bin/sh

iptables-restore < /etc/iptables.rules

...実行可能フラグ

$ sudo chmod 755 /etc/network/if-pre-up.d/restore
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.