EC2にNATサーバ構築
本文
AmazonからはNAT Gatewayというマネージドサービスが提供されているが、お金が少しかかる。 そこで自前で用意する方法を説明する。
NATサーバの設定
NATサーバを構築するEC2インスタンスはパブリックIPがあり、外につながっているとする。 以下を設定。IPアドレスに関する部分は適宜、読み替えて設定すること。
# NATのログを出力する場合。ログは /var/log/messages に出力される sudo iptables -t nat -A POSTROUTING -j LOG # 設定 sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE # 設定の確認 sudo iptables -t nat -nL # 設定の保存(保存しないと再起動で設定が初期化される) sudo service iptables save # forwardingの設定 vi /etc/sysctl.conf #—————————————————- #net.ipv4.ip_forward = 0 #↓ #net.ipv4.ip_forward = 1 #—————————————————- # 設定の適用 sysctl -p
ブラウザでAWSのマネジメントコンソールにログインし、該当EC2インスタンスを右クリック→ネットワーキング→送信元/送信先の変更チェックを無効にする。
クライアントの設定
クライアントとなるEC2はパブリックIPがなく、プライベートIPのみとする。以下を設定。
# デフォルトゲートウェイをNATサーバに設定 sudo route del default gw 192.168.0.1 sudo route add default gw 192.168.0.8 sudo vim /etc/sysconfig/network GATEWAY=192.168.0.8を追記設定 sudo service network restart ※少し時間がかかる # 接続テスト wget www.google.co.jp index.htmlが作成されれば成功
ちなみに、各インスタンスの基本的なポートの開閉などはAWSのセキュリティグループでやればよい。
参考サイト(もっと詳しい説明があります):習うより慣れろ! iptablesテンプレート集(2):natテーブルを利用したLinuxルータの作成 (2/6) - @IT
以下の方法もあるらしい。