Difference between revisions of "Create Custom NAT Instance in AWS VPC"
| Line 6: | Line 6: | ||
== Preparation == | == Preparation == | ||
| − | |||
| − | |||
| − | |||
== Disable Source/Dest. Check for the NAT Server == | == Disable Source/Dest. Check for the NAT Server == | ||
| Line 19: | Line 16: | ||
== Configure System == | == Configure System == | ||
| + | |||
| + | First, update the system : | ||
| + | |||
| + | <pre> | ||
| + | [root@nat-server ~]# yum update | ||
| + | </pre> | ||
In /etc/sysctl.conf enable ip forwarding : | In /etc/sysctl.conf enable ip forwarding : | ||
| Line 60: | Line 63: | ||
</pre> | </pre> | ||
| − | And add this iptables command | + | And add this iptables command at the end of the file : |
<pre> | <pre> | ||
| − | |||
| − | |||
iptables -t nat -A POSTROUTING -o eth0 -s 172.31.158.0/24 -j MASQUERADE | iptables -t nat -A POSTROUTING -o eth0 -s 172.31.158.0/24 -j MASQUERADE | ||
exit 0 | exit 0 | ||
| − | |||
| − | |||
</pre> | </pre> | ||
Revision as of 13:44, 14 November 2019
Contents
Purpose
Build a NAT instance using CentOS to propose internet access for private subnet in AWS VPC.
In this tutorial, we assume that we already have a VPC with public and prvate subnet like below picture.
Preparation
Disable Source/Dest. Check for the NAT Server
In AWS EC2 Dashboard → Select the Instance → Action → Networking → Change Source/Dest. Check :
Yes. Disable.
Configure System
First, update the system :
[root@nat-server ~]# yum update
In /etc/sysctl.conf enable ip forwarding :
[root@nat-server ~]# vi /etc/sysctl.conf
Add this :
# For NAT Server net.ipv4.ip_forward = 1
Reboot now for good measure :
[root@nat-server ~]# reboot
Test our config :
[centos@nat-server ~]$ cat /proc/sys/net/ipv4/ip_forward 1
Set Iptables for Masquerade
Issue iptables command below :
[centos@nat-server ~]$ iptables -t nat -A POSTROUTING -o eth0 -s 172.31.158.0/24 -j MASQUERADE
Edit the /etc/rc.local file to make masquerade will automatically enable at boot time :
[centos@nat-server ~]$ vi /etc/rc.local
And add this iptables command at the end of the file :
iptables -t nat -A POSTROUTING -o eth0 -s 172.31.158.0/24 -j MASQUERADE exit 0
Run 'chmod +x /etc/rc.d/rc.local' to ensure the script will be executed during boot :
[centos@nat-server ~]$ chmod +x /etc/rc.d/rc.local
Modify the NAT Instance Security Group
Create Custom Route to Associate the Private Subnet
In AWS VPC Dashboard → Route Tables → Create Route Table
Name tag : [name the route table] VPC : [choose the VPC]
In Route Table which early created → Routes → Edit Route → Add Route
Destination : 0.0.0.0/0 Target : Instance [choose the nat server instance]