LoginSignup
15
19

More than 5 years have passed since last update.

ufwでNATとポートフォーワード

Posted at

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
15
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
19