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