プロバイダーからの動的IP、およびiptablesのポート転送

こんにちは、カブロビテス。

私のようなあなたの多くは、Iptablesを介して仮想/物理マシンにポートを転送する必要があるときに同じ問題に直面していますが、プロバイダーは次のような実際の(灰色ではない)動的IPアドレスを提供しますVPNまたはPPPoEの場合。

PPPoEがあり、3日ごとにプロバイダーによってIPが変更されます。 同時に、外部IPが何であれ、テストサーバーは常に利用可能である必要があります。

この問題に対する独自の解決策を提案します。


Ubuntu 10.04上のサーバー: (Linux nwserver 2.6.32-40-server#87-Ubuntu SMP Tue Mar 6 02:10:02 UTC 2012 x86_64 GNU / Linux、iptables v1.4.4)と2番目のサーバーポートを転送する必要があります。

私たちの行動:

1.)スクリプトが動作するために必要なファイルを作成します(好きなように呼び出すことができます。スクリプト内でのみ名前を変更することを忘れないでください) 。 動的な実際のIPが書き込まれ、スクリプトによって使用されます。
touch /tmp/ip_old

2.現在、スクリプトを作成しています。0iptupと呼びます。
IPT="/sbin/iptables -v"
REAL_IP=`cat /tmp/ip_old`

#
VSERV_IP=192.168.200.2

# , , 80 81 , -

$IPT -t nat -A PREROUTING -d $REAL_IP -p tcp -m tcp --dport 81 -j DNAT --to-destination $VSERV_IP:80
$IPT -t nat -A POSTROUTING -d $VSERV_IP -p tcp -m tcp --dport 81 -j SNAT --to-source $REAL_IP

# , , ssh,

$IPT -t nat -A PREROUTING -d $REAL_IP -p tcp -m tcp --dport 22 -j DNAT --to-destination $VSERV_IP:22
$IPT -t nat -A POSTROUTING -d $VSERV_IP -p tcp -m tcp --dport 22 -j SNAT --to-source $REAL_IP

# , ( )

# IP ppp0, ,
ip addr show ppp0 | grep "inet" | grep "peer" | awk '{print $2}' > /tmp/ip_old
#
REAL_IP=`cat /tmp/ip_old`

3.)スクリプトが実行可能になります:chmod + x 0iptup
/etc/init.d/フォルダーに配置し、update-rc.dを使用してダウンロードする許可を与えます:update-rc.d 0iptup defaults
/etc/ppp/ip-up.d/にシンボリックリンクを作成します

4.)/etc/init.d/の同じ場所に、2番目のスクリプト0iptdownを作成します。
#!/bin/sh
iptables-restore < /etc/iptables.up.rules

実行可能にし、update-rc.dを使用してダウンロードする許可を与えます:update-rc.d 0iptdown defaults
/etc/ppp/ip-down.d/にシンボリックリンクを作成します

Iptablesのルールはすべてのユーザーで異なり、構成ファイルへのパスを指定しますが、フィルターテーブルで転送されたポートのアクセス許可を指定することを忘れないでください。
*filter
-A FORWARD -i ppp0 -p tcp -m tcp --dport 22 -j ACCEPT
-A FORWARD -i ppp0 -p tcp -m tcp --dport 81 -j ACCEPT
COMMIT


実際の動作:ppp0インターフェースが発生すると、スクリプトが自動的に起動され、ppp0インターフェースがアクティブになるまでルールをファイアウォールテーブルに追加し、非アクティブ化されるとすぐにスクリプトが設定を元の設定に戻します。これは動的IPアドレスで非常に便利です。

さらに、dyn-dns、no-ip、または好きなものを使用して、仮想マシン/テストマシンにいつでもアクセスできます。

考えられるデメリット:たとえば、戦闘車両でVPNサーバーが回転し、人々がそこからppp1、ppp2などを受信し、プロバイダーとの接続が失敗した場合、誰かがppp0インターフェースを引き継ぐ場合-クライアントに転送が行われます。

ここでは、実際に1週間半の苦痛と喫煙者iptablesの実。
追加や改善を歓迎します。

Source: https://habr.com/ru/post/J140959/


All Articles