12
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ubuntu の ufw で NAT サーバを作る

Last updated at Posted at 2017-10-31

Ubuntu では ufw という「簡単に iptables を扱えるようにラップしたツール」が入っていて、iptables を使ってよくやることはおよそ ufw で設定することができる。

今回は ufw を使って Ubuntu が NAT1 サーバとして動くように設定したのでその手順をメモしておく。

NAT の設定

OS は Ubuntu 18.04 でやった。

SSH を許可する

ufw を有効にした際に SSH が拒否されるとログインできなくなってしまうので許可しておく。

# ufw allow ssh

フォワーディングを許可する

/etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"
/etc/ufw/sysctl.conf
net/ipv4/ip_forward=1

ルーティングの方法を定義する

/etc/ufw/before.rules
*nat
:POSTROUTING ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
-F
-A POSTROUTING -s 10.0.0.0/16 -j MASQUERADE
COMMIT

-F があると ufw reload を複数回やっても NAT 設定が重複しなくなる。

NIC が複数ある場合は -o eth0 のように指定する。

ufw を有効にする

# ufw enable

ちゃんと設定されているか確認する

# iptables -t nat -nL

AWS の場合

  • NAT 用の EC2 インスタンスを作る
    • パブリックサブネットに作る (= グローバル IPv4 アドレスを割り当てる)
    • インスタンスサイズは t2.nano でも動くっちゃ動く
    • ネットワーク設定で「送信元/送信先の変更チェック」を無効にする
  • 送信元となるリソースが所属するプライベートサブネットのルートテーブルを設定する
    • デフォルトルート 0.0.0.0/0 を NAT 用 EC2 インスタンス (の NIC) 宛に飛ばす

Azure の場合

  • NAT 用の VM を作る
    • VM は NAT 用のサブネット内に作る (少なくとも NAT のアクセス元となるリソースとは別のサブネットにする必要がある)
    • グローバル IPv4 アドレスを割り当てる
    • NIC の設定で IP 転送を有効にする
    • NIC の NSG (ネットワークセキュリティグループ) で以下の2つの通信を許可する
      • 受信: VirtualNetwork → Internet
      • 送信: Internet → VirtualNetwork
  • アクセス元となるリソースが所属するサブネットのルートテーブルを設定する
    • デフォルトルート 0.0.0.0/0 を NAT 用 VM (プライベート IPv4 アドレス) 宛に飛ばす
  1. 正確には NAPT (IP マスカレード)

12
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?