knqyf263's blog

記憶力の悪いエンジニアが自分のためのメモとして残しておくためのブログ。

DebianでのIPマスカレード設定

以前の記事(KVM環境でVMを作成 - knqyf263's blog)でVMを作成しましたが、これでは192.168.122.0/24というプライベートなネットワーク内でしか通信できないので、外に出れるようにホストOSにIPマスカレード(NAT)の設定を入れてみたいと思います。

環境

ホストOSはDebian 7.3を使っています。 ホストOSにはインタフェースが2つあって、グローバルIPアドレスx.x.x.xとして、ブリッジインタフェースについているプライベートなIPアドレス192.168.122.1とします。

ホストOS:Debian 7.3(wheezy)
ホストOSのIPアドレス:192.168.122.1
ゲストOS:Ubuntu 13.10 server
ゲストOSのIPアドレス:192.168.122.11
ネットワーク:192.168.122.0/24

参考サイト

http://devnull.synergy-marketing.co.jp/2013/07/iptables-ip-masquerade/
Debian 7 の iptables と sshd の設定と IPv6 無効化メモ - 破棄されたブログ
Debian(squeeze)でのiptablesの設定 - epian-wiki

IPマスカレードの設定

今回の設定は全てroot権限で行っています。

iptablesの設定

iptablesにnatの設定

iptablesで設定を行います。 まず、iptables に nat テーブルを設定します。 -sオプションで送信元 IP アドレスを指定しています。 今回の設定では192.168.122.0/24の送信元IPアドレスの場合はアドレスが変換されます。

# iptables -t nat -A POSTROUTING -s 192.168.122.0/24 -j MASQUERADE
iptablesの設定確認

正しく設定が反映されているかを確認します。 通常はfilterテーブルが表示されるので、-t natでnatテーブルを表示します。

# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  192.168.122.0/24     anywhere
iptablesの設定削除

設定が間違っていた場合や、不要になった場合は削除できます。 最後の数字は、チェインの中の番号(最初のルールを 1 とする)です。

# iptables -t nat -D POSTROUTING 1

iptables ルールファイルの作成

iptables-persistentを使って、iptablesの設定を保存します。

iptables-persistentのインストー

まずiptables-persistentをインストールします。

# apt-get install iptables-persistent

この時、/etc/iptables/rules.v4に現在の設定を保存するか聞かれるので、保存を選択すれば/etc/iptables/rules.v4に設定が保存されます。

iptablesの設定保存

更新があった場合や、インストール時に保存し忘れた場合などの設定は以下になります。 一応バックアップを取ってから設定を保存しています。不要であれば最初から下のコマンドを打ってください。

# mv /etc/iptables/rules.v4 /etc/iptables/rules.v4.bak  
# iptables-save > /etc/iptables/rules.v4
iptables-persistentの再起動
# service iptables-persistent restart

以上で終わりです。