Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

iptablesでポートフォワーディング

      2013/07/15

通常Linuxのデフォルトはパケットのフォワーディングが無効になっているので、まずは有効にします。

# echo 1 > /proc/sys/net/ip_forward

これはOSを再起動すると戻ってしまうため、恒久的に有効にするには/etc/sysctl.confに以下を追記します。

 net.ipv4.ip_forward=1

ここでは、SSHのフォワーディングを例に説明します。以下のようなサーバ・ネットワーク構成だとします。

接続元端末     10.1.1.200
設定対象サーバ  10.1.1.1, 192.168.0.1
SSHサーバIP   192.168.0.2

まずは端末から対象サーバに入ってくるパケットをSSHサーバにDNATでフォワーディングします。待ち受けポートは5555とします。

# iptables -t nat -A PREROUTING -p tcp --dst 10.1.1.1 --dport 5555 -j DNAT --to-destination 192.168.0.2:22

SSHサーバのデフォルトゲートウェイが設定対象サーバになっていれば、上記だけの設定で動くのですが、なっていない場合や、接続元端末とSSHサーバが同一のセグメントにあると、戻るパケットが設定対象サーバを経由しないためうまく動きません。

よって、SSHサーバに出て行くパケットの送信元を設定対象サーバのIPに書き換えます。

# iptables -t nat -A POSTROUTING -p tcp --dst 192.168.0.2 --dport 22 -j SNAT --to-source 192.168.0.2

設定対象サーバに戻ってきたパケットは自動的に逆DNATされるため、以上で正常に動くはずです。

参考 : http://www.asahi-net.or.jp/~AA4T-NNGK/ipttut/output/dnattarget.html

 - IT技術, サーバ構築 ,

336px

Message

メールアドレスが公開されることはありません。

  関連記事

GO言語1.12の新機能モジュールを使う

GO 1.12から、公式にmoduleが使えるようになるようなので、一足先に1. …

no image
ATOK 2009@Windows 7

Windows7 に ATOK 2009を入れてみた。何事もなく普通に使えました …

no image
JavascriptエンジンRhinoを入れてみる@WindowsXP

Ajaxの実装や、OpenOfficeなどのマクロ用、ThunderbirdやF …

no image
CentOS 7からWindowsにリモートデスクトップ接続で変換キーや無変換キーを使う

CentOS 7にデフォルトで同梱されているリモートデスクトップクライアント(f …

no image
CodeReadingWiki 改造版でソースコード解読

etherさん作成のCodeReadingWiki が、ソースコードを読むのにす …

no image
VMware 2.0 を専用クライアントで使う (msiからファイルの抽出)

VMware 2.0 は基本的にWebインタフェースしか使えないと思っていました …

no image
rubyのexitの終了コード@1.8.5 and 1.8.7

最近rubyを使い始めて、いざプログラムを書いたところ、終了ステータスがうまく戻 …

no image
gitで過去のコミットを書き換える方法まとめ

コミットしてしまった後に恥ずかしい間違いに気づいて書き換えたい時の対処方法。 ま …

no image
CPU数を動的に変更する@CentOS 5.5

カーネルにパラメータ(maxcpus)を与えて、OSで使うCPU数を変更できるこ …

no image
sshでのXフォワーディング@RHEL5

sshって-XオプションつけるとXフォワーディングしてくれるんですね。 昔put …