雲のメモ帳

猫とクラウドと旅行が好きなインフラエンジニアです。 日々の調べたことや興味が持ったことをこのブログにアウトプットします。

NATインスタンスをAmazonLinux2で構築する

これはなに?

AmazonLinuxのサポートが2020年12月31日で終了するため、これまでAmazonLinuxでAWSより提供されていたNATインスタンスをAmazonLinux2で構築してみました。

Amazon Linux AMI のサポート期間終了に関する更新情報 | Amazon Web Services ブログ

環境

  • Amazon Linux 2 AMI (HVM), SSD Volume Type - ami-034968955444c1fd9 (64 ビット x86)

構築

AmazonLinux2でNATインスタンスを構築していきます。
NATは、iptables で行います。基本的にコマンドのコピペでいけるはずです。

1. iptablesのインストール

AmazonLinux2には、Iptablesを利用するためには、 iptables-services が必要なため、インストールします。

yum -y install iptables-services

2. iptabelsの設定初期化

念の為、iptabelsの設定を全て削除します。

iptables -L
iptables -F

3. IPフォワード設定

echo 1 > /proc/sys/net/ipv4/ip_forward
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf

4. IPマスカレード設定&設定保存

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -L
service iptables save

5. iptablesの起動、自動起動設定

systemctl start iptables
systemctl enable iptables
systemctl status iptables

6. 送信元/送信先 チェックの無効化

結構忘れがちですが、設定が有効になっているとパケット転送できないので、無効化。

f:id:ykoomaru:20201119211146p:plain

7. ルーティング設定

最後にルートテーブルでデフォルトゲートウェイ(0.0.0.0/0)をNATインスタンスに向けて上げればOKです。 もし、通信が通らない場合は、セキュリティグループの設定などを見直してみてください。

最後に

AWSの公式としてAmazonLinux2のNATインスタンスは2020年11月時点では提供されていないため、環境の制約でNATインスタンスが必要な場合は今回のように自前で作る必要がありますね。ただ、結構簡単にできるのでAWSから提供されなくてもそこまで困らなそう。

squidを使ったプロキシの構築は以下を参照してください。 www.cloudnotes.tech