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

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

  関連記事

no image
evalで変数名を変数にする@bash

シェルスクリプトで変数を使用していると、変数名を変数にしたい場合が出てきます。 …

no image
ログの転送@Cisco 2960

Ciscoのスイッチでログの転送(syslog)をする設定の覚え書き。syslo …

no image
lxc-cloneでoverlayfsを使ってみる@Ubuntu 14.04

既存Linuxコンテナのディレクトリをコピーして、LXCのクローン環境を作るので …

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

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

no image
Cisco IOSエミュレータDynamipsを使ってみる@CentOS 5

Ciscoのスイッチやルータの設定の勉強をしたくて、DynamipsというCis …

no image
ログインシェルを変更する@さくらインターネット

今までLinuxを使ってたので、ログインシェルをデフォルトから変えようと思ったこ …

no image
ソースコードのインデントを整形する@vim

vimでソースコードを編集していてインデントが崩れてしまった場合の整形の方法。 …

no image
IEのproxy.pac@Windows 7

IE11 から、どうもローカルにあるProxy.pacが読み込まれてないように思 …

no image
MP3のジャケット自動取得と埋め込み

今までアルバムのジャケットにそれほど興味はなく、MP3プレーヤにその機能があって …

no image
Windowsで空のイメージファイル作成@WindowsXP

Linux上でのddコマンドのように、Windows上で空のファイルを作成する方 …