Rose debug info
---------------

Прозрачный nat нескольких сетей FreeBSD

Этот способ устарел. Лучше делать вот так

В первую очередь нужно поднять OpenVPN клиента через который мы будем пускать адреса в обход. В конфиге клиента следует закомментировать диррективу redirect-gateway, чтобы основной траффик у нас шел через провайдера.
Создаем скрипт который загрузит заблокированные ip в таблицу ipfw

#!/bin/sh

rm /root/bin/reestr.txt
/usr/local/bin/wget -O - https://api.reserve-rbl.ru/api/v2/ips/json|tr ',' '\n'|tr -d '"'|tr -d ']'|tr -d '['  > /root/bin/reestr.txt
file="/root/bin/reestr.txt"

ipfw table 1 flush
while read line
do
ipfw table 1 add $line
done < $file

file="/root/bin/useriplist" # В этот файл можно вписать свои ip которые тоже нужно пустить через VPN
while read line
do
ipfw table 1 add $line
done < $file

Запустим natd на порту 8673

/sbin/natd -a 10.8.1.6 -p 8673

Зарулим все ip из таблицы 1 в VPN

lan="192.168.0.0/24" #локалка
vpnip="10.8.1.6" #ip vpn интерфейса
vpngw="10.8.1.7" #vpn шлюз
ipfw add divert 8673  ip from ${lan},${vpnip} to table\(1\)
ipfw add fwd ${vpngw}  ip from ${vpnip} to table\(1\)
ipfw add divert 8673  ip from table\(1\) to ${vpnip}
Поделиться
Отправить
2019   Freebsd   ipfw   nat   table