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 の場合
- プライベートサブネットのルートテーブルを設定する
- デフォルトルート
0.0.0.0/0
が NAT インスタンスに飛ぶようにする
- デフォルトルート
- NAT インスタンスはパブリックサブネットに立てる
- NAT インスタンスは t2.nano でも問題ない
- NAT インスタンスの設定で「送信元/送信先の変更チェック」を無効にする
-
正確には NAPT (IP マスカレード) ↩