Ubuntu pppoe

apt install pppoeconf
pppoeconf
ifconfig
ens160: 
	inet 192.168.150.172  netmask 255.255.255.0  broadcast 192.168.150.255
...
ens192: 
...
ppp0:
	inet ...
ens160 смотрит в локальную сеть
ens192 смотрит в сеть провайдера
ppp0 смотрит в Интернет

Все настройки pppoe будут находиться в /etc/ppp/

ls -l  /etc/ppp/
chap-secrets  
ip-down  
ip-down.d  
ip-pre-up  
ip-pre-up.d  
ip-up  
ip-up.d  
ipv6-down  
ipv6-down.d  
ipv6-up  
ipv6-up.d  
options  
pap-secrets  
peers  
resolv.conf

Перезапуск pppoe, чтобы сменился IP

/usr/bin/killall pppd
/usr/sbin/pppd call dsl-provider >/dev/null 2>&1

Ubuntu iptables

apt install iptables-persistent

Включаем форвардинг пакетов

mcedit /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p /etc/sysctl.conf

Создаем файл конфигурации для iptables подключаемый при включении системы.
Там настраиваем следующее:

Входящие пакеты в локальную машину Разрешить 22 порт для ssh и icmp
на ens160, остальное блокировать
Исходящие пакеты с локальной машиныРазрешить
Проходящие пакеты с локальной сети Разрешить с подсети 192.168.150.0/24,
остальное блокировать
NAT Включить маскарадинг для 192.168.150.0/24
mcedit /etc/iptables/rules.v4
*filter
:INPUT ACCEPT 
:FORWARD ACCEPT 
:OUTPUT ACCEPT 
-A INPUT -m state --state INVALID -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -i ens160 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i ens160 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -m state --state NEW -j DROP
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -s 192.168.150.0/24 -i ens160 -o ppp0 -j ACCEPT
-A FORWARD -m state --state NEW -j DROP
-A OUTPUT -m state --state INVALID -j DROP
-A OUTPUT -o lo -j ACCEPT
COMMIT

*nat
:PREROUTING ACCEPT 
:INPUT ACCEPT 
:OUTPUT ACCEPT 
:POSTROUTING ACCEPT 
-A POSTROUTING -s 192.168.150.0/24 -o ppp0 -j MASQUERADE
COMMIT
iptables-restore < /etc/iptables/rules.v4

Смотрим правила

iptables-save
iptables -L -n -v --line-numbers
iptables -t nat -L -n -v --line-numbers
iptables -t filter -L -n -v --line-numbers
iptables -t mangle -L -n -v --line-numbers

Это тоже самое что и ранее (если вам нужен будет отдельный файл, например /etc/iptables.rules):

iptables -P INPUT ACCEPT
iptables --flush INPUT
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i ens160 -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -i ens160 -p icmp -m icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -m state --state NEW -j DROP

iptables -P OUTPUT ACCEPT
iptables --flush OUTPUT
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -o lo -j ACCEPT

iptables -P FORWARD ACCEPT
iptables --flush FORWARD
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A FORWARD -s 192.168.150.0/24 -i ens160 -o ppp0 -j ACCEPT
iptables -A FORWARD -m state --state NEW -j DROP

iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat --flush POSTROUTING
iptables -t nat -A POSTROUTING -s 192.168.150.0/24 -o ppp0 -j MASQUERADE