Лучше топологию сменить на такую
Втыкаем в сервер две сетевые карты.
Теперь адсл втыкаем в сетевую карту №1 (назовём её $if1)
А свитч втыкаем в сетевую карту №2 (назовём её $if2)
Затем к свитчу подключаем все локальные компы
Получается что твой сервер находится между твоими лоакльными машинами и адсл модемом.
Теперь создаём следующие правила #!/bin/sh
/sbin/ipfw -f flush
/sbin/ipfw add 30 allow all from any to any via lo
/sbin/ipfw add 500 divert natd all from 192.168.12.0/24 to any via $if1
/sbin/ipfw add 510 divert natd all from any to me via $if1
/sbin/ipfw add 700 allow all from 192.168.12.0/24 to any
/sbin/ipfw add 710 allow all from any to 192.168.12.0/24 via $if2
/sbin/ipfw add 720 allow all from me to any
/sbin/ipfw add 730 allow all from 192.168.12.1 to any
/sbin/ipfw add 10000 deny log logamount 10 all from any to any
После этого у тебя заработает интерент у локальных пользователей
далее тебе нужно настроить впн таким образом чтоб подключившиеся пользователи получали адрес из локальной сети 192.168.12.0/24 и имели своим шлюзом 192.168.12.1
По идее если ты такое сделаешь то у них тоже должен возникнуть интернет сразу после подключения к впн.
Если же делать по той топрологии что у тебя то я бы тогда сделал так
#!/bin/sh
/sbin/ipfw -f flush
/sbin/ipfw add 30 allow all from any to any via lo
/sbin/ipfw add 200 allow all from any to 192.168.12.0/24
/sbin/ipfw add 300 allow all from 192.168.12.1 to any
/sbin/ipfw add 400 allow all from $MyRealIP to any
/sbin/ipfw add 500 divert natd all from any to any via vr0
/sbin/ipfw add 10000 log logmount 10 deny all from any to any
и возможно у вас тоже всё будет работать, но если честно такие настройки крайне НЕ БЕЗОПАСНЫ ...