Ubuntu 18.04のufwでNATを作成する方法です。
それと、一部のPCへポートフォーワードを設定し、リモートからのsshも出来るようにしています。
環境
- NATサーバー
- WAN側:xxx.xxx.xxx.xxx
- WAN側ゲートウェイ:yyy.yyy.yyy.yyy
- LAN側:192.168.50.1
- LAN内
- 192.168.50.0/24
NATサーバーのIPアドレスを固定に
NATサーバーはUbuntu 18.04ですので、50-cloud-init.yaml変更します。
/etc/netplan/50-cloud-init.yaml
network:
ethernets:
eth0:
addresses:
- xxx.xxx.xxx.xxx/24
dhcp4: false
gateway4: yyy.yyy.yyy.yyy
nameservers:
addresses:
- 8.8.8.8
search: []
eth1:
addresses:
- 192.168.50.1/24
dhcp4: false
gateway4: xxx.xxx.xxx.xxx
nameservers:
addresses:
- 8.8.8.8
search: []
version: 2
LAN内のPCは、192.168.50.2から振ってください。
ufwの設定
ポートフォーワードを有効にします。
/etc/default/ufw. (ファイル名の.はいりません)
DEFAULT_FORWARD_POLICY=“ACCEPT"
/etc/ufw/sysctl.conf
net/ipv4/ip_forward=1
ufwコマンドから、ログの記録と、各ポートの通信を有効にします。
特にsshは、忘れないでください。
$ sudo ufw logging low
$ sudo ufw allow ssh
$ sudo ufw allow 53
$ sudo ufw allow 443
$ sudo ufw allow 80
NATとポートフォーワードの設定をします。
「*filter」より上か COMMIT より下に追加します。
*natの下の「-F」は、「ufw reload」のたびにnatテーブルが増えて行くのを防ぐために入れています。
「外側から内側」が文字通り、リモートからのsshでつなげるポートフォーワードの部分になります。
ここでは、WANの50001ポートにアクセスされたものを、LANの192.168.50.100に転送する設定をしています。
/etc/ufw/before.rules
# NAT
*nat
-F
:POSTROUTING ACCEPT [0:0]
# 内側から外側
-A POSTROUTING -s 192.168.50.0/24 -o eth0 -j MASQUERADE
# 外側から内側
-A PREROUTING -i eth0 -d xxx.xxx.xxx.xxx -p tcp --dport 50001 -j DNAT --to-destination 192.168.50.100:22
COMMIT
最後に、ufwを有効にします。
$ sudo ufw enable