Роуты на бесплатные ресурсы
Роуты на бесплатные ресурсы
Помогите плиз. Есть самописный биллинг (писал не я, я в линуксе начинающий) необходимо прописать пути на некоторые адреса в обход биллинга. Могу предоставить содержимое нужных файлов конфигурации и скриптов. помогите плиз.
Вот файл rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
#/sbin/route del default
#/sbin/route add -host 213.184.238.20 gw 10.3.0.1 metric 1
#/sbin/route add -host 213.184.238.21 gw 10.3.0.1 metric 1
#/sbin/route add -host 213.184.238.22 gw 10.3.0.1 metric 1
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
/usr/bin/perl /var/mybilling/firewall.pl &
touch /var/lock/subsys/local
[root@server root]#
строки с gw10.3.0.1 содержат адреса на которые должен быть бесплатный доступ. но если их раз#ить то кроме этих адресов ничто не работает. Помогите плиз разобраться
Вот файл rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
#/sbin/route del default
#/sbin/route add -host 213.184.238.20 gw 10.3.0.1 metric 1
#/sbin/route add -host 213.184.238.21 gw 10.3.0.1 metric 1
#/sbin/route add -host 213.184.238.22 gw 10.3.0.1 metric 1
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
/usr/bin/perl /var/mybilling/firewall.pl &
touch /var/lock/subsys/local
[root@server root]#
строки с gw10.3.0.1 содержат адреса на которые должен быть бесплатный доступ. но если их раз#ить то кроме этих адресов ничто не работает. Помогите плиз разобраться
#/sbin/route del default
/sbin/route add -host 213.184.238.20 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.21 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.22 gw 10.3.0.1 metric 1
В этом варианте работают Только адреса 213.184.238.20 213.184.238.21 213.184.238.22. и то не в обход биллинга а через него.
В начале темы я скинул работоспособный конфиг (за исключением требуемых бесплатных ресурсов)
/sbin/route add -host 213.184.238.20 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.21 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.22 gw 10.3.0.1 metric 1
В этом варианте работают Только адреса 213.184.238.20 213.184.238.21 213.184.238.22. и то не в обход биллинга а через него.
В начале темы я скинул работоспособный конфиг (за исключением требуемых бесплатных ресурсов)
@nubis, чтобы работали остальные адреса - надо их прописать подобно этим трем, чтобы пропускать их мимо биллинга - надо знать как сделан биллинг, полагаю в /var/mybilling/firewall.pl самое интересное и находится, хотелось бы взглянуть на него...
Опыт растет прямо пропорционально выведенному из строя оборудованию
вот содержимое /var/mybilling/firewall.pl
-------------------------------------------------------
#!/usr/bin/perl
use DBI;
require "/var/mybilling/config.pl";
sub addrule {
`$iptables -I FORWARD -d $_[0] -j IN_$billname`;
`$iptables -I FORWARD -s $_[0] -j OUT_$billname`;
`$iptables -I IN_$billname -d $_[0]`;
`$iptables -I OUT_$billname -s $_[0]`;
}
`$iptables -N IN_$billname`;
`$iptables -N OUT_$billname`;
`$iptables -F IN_$billname`;
`$iptables -F OUT_$billname`;
#`$iptables -A INPUT -j IN_$billname`;
#`$iptables -A OUTPUT -j OUT_$billname`;
#`$iptables -A FORWARD -j IN_$billname`;
#`$iptables -A FORWARD -j OUT_$billname`;
my $dbh = DBI->connect("DBI:mysql:$db_name",$db_user,$db_pass);
my $query = "SELECT users_ip FROM users;";
my $sql = $dbh->prepare($query);
$sql->execute();
while(my ($ip) = $sql->fetchrow_array())
{
&addrule($ip);
}
$sql->finish;
$dbh->disconnect;
-------------------------------------------------------
#!/usr/bin/perl
use DBI;
require "/var/mybilling/config.pl";
sub addrule {
`$iptables -I FORWARD -d $_[0] -j IN_$billname`;
`$iptables -I FORWARD -s $_[0] -j OUT_$billname`;
`$iptables -I IN_$billname -d $_[0]`;
`$iptables -I OUT_$billname -s $_[0]`;
}
`$iptables -N IN_$billname`;
`$iptables -N OUT_$billname`;
`$iptables -F IN_$billname`;
`$iptables -F OUT_$billname`;
#`$iptables -A INPUT -j IN_$billname`;
#`$iptables -A OUTPUT -j OUT_$billname`;
#`$iptables -A FORWARD -j IN_$billname`;
#`$iptables -A FORWARD -j OUT_$billname`;
my $dbh = DBI->connect("DBI:mysql:$db_name",$db_user,$db_pass);
my $query = "SELECT users_ip FROM users;";
my $sql = $dbh->prepare($query);
$sql->execute();
while(my ($ip) = $sql->fetchrow_array())
{
&addrule($ip);
}
$sql->finish;
$dbh->disconnect;
@nubis, теперь /var/mybilling/config.pl 
В общем случае, думаю должно прокатить что-то типа:
iptables -I FORWARD 1 -d 213.184.238.20 -j ACCEPT
iptables -I FORWARD 1 -d 213.184.238.21 -j ACCEPT
iptables -I FORWARD 1 -d 213.184.238.22 -j ACCEPT
Если я правильно предполагаю, данные снимаются со счетчиков в цепочках, IN_$billname и OUT_$billname, где $billname - это некая переменная задання предположительная в /var/mybilling/config.pl

В общем случае, думаю должно прокатить что-то типа:
iptables -I FORWARD 1 -d 213.184.238.20 -j ACCEPT
iptables -I FORWARD 1 -d 213.184.238.21 -j ACCEPT
iptables -I FORWARD 1 -d 213.184.238.22 -j ACCEPT
Если я правильно предполагаю, данные снимаются со счетчиков в цепочках, IN_$billname и OUT_$billname, где $billname - это некая переменная задання предположительная в /var/mybilling/config.pl
Опыт растет прямо пропорционально выведенному из строя оборудованию
Llama: насколько я успел разобраться
/sbin/iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
кидает весь трафик на эту хрень 10.10.10.0/24 а с неё уже разбирается по адресам каким-нить скриптом.
Мне чел который биллинг писал предолжил попробовать заменить
замени там это /sbin/iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
на
/sbin/iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -j SNAT --to-source 10.3.7.194
где 10.3.7.194 - шлюз интернета. В итоге на сервере нэт есть. а на клиентских машинах VPN устонавливается но трафик не идёт
/sbin/iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
кидает весь трафик на эту хрень 10.10.10.0/24 а с неё уже разбирается по адресам каким-нить скриптом.
Мне чел который биллинг писал предолжил попробовать заменить
замени там это /sbin/iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
на
/sbin/iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -j SNAT --to-source 10.3.7.194
где 10.3.7.194 - шлюз интернета. В итоге на сервере нэт есть. а на клиентских машинах VPN устонавливается но трафик не идёт
тоесть мне прокатить эти строчки?
iptables -I FORWARD 1 -d 213.184.238.20 -j ACCEPT
iptables -I FORWARD 1 -d 213.184.238.21 -j ACCEPT
iptables -I FORWARD 1 -d 213.184.238.22 -j ACCEPT
и раз#ть
/sbin/route del default
/sbin/route add -host 213.184.238.20 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.21 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.22 gw 10.3.0.1 metric 1 Вот так?
Могут ли приведённые тобой строки стать причиной неработы нэта? в случае чего как их покилять из iptables?
iptables -I FORWARD 1 -d 213.184.238.20 -j ACCEPT
iptables -I FORWARD 1 -d 213.184.238.21 -j ACCEPT
iptables -I FORWARD 1 -d 213.184.238.22 -j ACCEPT
и раз#ть
/sbin/route del default
/sbin/route add -host 213.184.238.20 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.21 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.22 gw 10.3.0.1 metric 1 Вот так?
Могут ли приведённые тобой строки стать причиной неработы нэта? в случае чего как их покилять из iptables?
Извините, если задаю глупый вопрос но я хочу хотьб немного разобраться....
как эти строки в иптаблсах
iptables -I FORWARD 1 -d 213.184.238.20 -j ACCEPT
iptables -I FORWARD 1 -d 213.184.238.21 -j ACCEPT
iptables -I FORWARD 1 -d 213.184.238.22 -j ACCEPT
могут решить проблему если при раз#нии этих строк в rc.local
/sbin/route del default
/sbin/route add -host 213.184.238.20 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.21 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.22 gw 10.3.0.1 metric 1
не работают абсолютно все другие адтеса интернета?
------------------------------------
так ещё инфы: при подключении VPN мой серв раздаёт ip 10.10.10.*
шлюз провайдера 10.3.0.1 адрес сетевухи которая смотрит в нэт 10.3.7.194
при регистрации новых юзеров я прописываю в иптаблсах 4 строчки
например:
iptables -A FORWARD -s 10.10.10.3 -j OUT_BILLING
iptables -A FORWARD -d 10.10.10.3 -j IN_BILLING
iptables -A OUT_BILLING -s 10.10.10.3
iptables -A IN_BILLING -d 10.10.10.3
как эти строки в иптаблсах
iptables -I FORWARD 1 -d 213.184.238.20 -j ACCEPT
iptables -I FORWARD 1 -d 213.184.238.21 -j ACCEPT
iptables -I FORWARD 1 -d 213.184.238.22 -j ACCEPT
могут решить проблему если при раз#нии этих строк в rc.local
/sbin/route del default
/sbin/route add -host 213.184.238.20 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.21 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.22 gw 10.3.0.1 metric 1
не работают абсолютно все другие адтеса интернета?
------------------------------------
так ещё инфы: при подключении VPN мой серв раздаёт ip 10.10.10.*
шлюз провайдера 10.3.0.1 адрес сетевухи которая смотрит в нэт 10.3.7.194
при регистрации новых юзеров я прописываю в иптаблсах 4 строчки
например:
iptables -A FORWARD -s 10.10.10.3 -j OUT_BILLING
iptables -A FORWARD -d 10.10.10.3 -j IN_BILLING
iptables -A OUT_BILLING -s 10.10.10.3
iptables -A IN_BILLING -d 10.10.10.3
@nubis, гм, надеюсь в ближайшем будущем вы таки прочитаете: http://gazette.lrn.ru/rus/articles/ipta ... orial.html
Разбираемся:
/sbin/route del default - убирает шлюз по умолчанию из таблицы маршрутизации, естественно интернет работать не будет
/sbin/route add -host 213.184.238.20 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.21 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.22 gw 10.3.0.1 metric 1
Добавляет маршруты к узлам 213.184.238.20-213.184.238.22 через хост 10.3.0.1 - как я понимаю это и есть бесплатные ресурсы... Или я не прав? Т.е. если шлюз по умолчанию 10.3.0.1 - то эти строчки видимо не нужны.
Несколько не ясно с бесплатными ресурсами - это отдельные адреса к которым доступ через default gateway и к которым не надо считать траффик? Или достум к ним чсе же через другой шлюз?
Теперь по поводу всего биллинга:
У вас траффик считается путем снятия статистики с правил в цепочках:
iptables -A FORWARD -s 10.10.10.3 -j OUT_BILLING
Отправляем траффик исходящий (-s) от узла 10.10.10.3 в цепочку OUT_BILLING
iptables -A FORWARD -d 10.10.10.3 -j IN_BILLING
отправляем входящий (-d) на 10.10.10.3 траффик в цепочку IN_BILLING
iptables -A OUT_BILLING -s 10.10.10.3
Добавляем в цепочку OUT_BILLING правило для траффика идущего с хоста 10.10.10.3. Правило ничего не делает с траффиком, просто в данном случае пропускает его дальше к хосту.
iptables -A IN_BILLING -d 10.10.10.3
Аналогично для входящего траффика и цепочки IN_BILLING
В linux при прохождении траффиком определенного правила увеличивается соответсвующий эту правилу счетчик.
Вот у меня всего одно правило, через которое прошло 4772 байта со времени последнего снятия статистики.
Судя по всему у вас переодически снимается статистика с правил в цепочках OUT_BILLING и IN_BILLING и добавляется в базу или куда-то там еще...
Теперь собственно о том как вам сделать то, что вы хотите:
Закоменнтированные строчки не трогайте, мне лично неясно их предназначение, ИМХО они не нужны.
Для того чтобы траффик идущий на бесплатные ресурсы не попадал в биллинг надо что этот самый траффик не попадал в цепочки OUT_BILLING и IN_BILLING.
Допустим есть бесплатный ресурс с адресом 1.1.1.1
Тогда делаем так:
iptables -I FORWARD 1 -s 1.1.1.1 -j ACCEPT - вставляем в начало цепочки FORWARD правило для траффика идущего с 1.1.1.1 и отправлем его сразу же по назначению, минуя остальные правила прописаные в FORWARD, в частности минуя цепочки OUT_BILLING и IN_BILLING.
iptables -I FORWARD 1 -d 1.1.1.1 -j ACCEPT -аналогично поступаем с траффиком идущем а бесплатный ресурс.
PS: насчет ручного добавления правил - будьте осторожны, правила iptables вообще-то не сохраняются при перезагрузках если иное не предусмотрено производителем дистрибутива, судя по тому коду который вы показали, скрипт берет адреса из таблицы в mysql...
Для того чтобы "покилять строчки" из цепочки используйте что-то типа iptables -D FORWARD 1 - удаляет первое правило в цепочке FORWARD. Просмотреть содержимое цепочки iptables -nL
PS: надеюсь вы таки доберетесь почитать мануал который я упоминал в самом начте этого поста...
Разбираемся:
/sbin/route del default - убирает шлюз по умолчанию из таблицы маршрутизации, естественно интернет работать не будет

/sbin/route add -host 213.184.238.20 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.21 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.22 gw 10.3.0.1 metric 1
Добавляет маршруты к узлам 213.184.238.20-213.184.238.22 через хост 10.3.0.1 - как я понимаю это и есть бесплатные ресурсы... Или я не прав? Т.е. если шлюз по умолчанию 10.3.0.1 - то эти строчки видимо не нужны.
Несколько не ясно с бесплатными ресурсами - это отдельные адреса к которым доступ через default gateway и к которым не надо считать траффик? Или достум к ним чсе же через другой шлюз?
Теперь по поводу всего биллинга:
У вас траффик считается путем снятия статистики с правил в цепочках:
iptables -A FORWARD -s 10.10.10.3 -j OUT_BILLING
Отправляем траффик исходящий (-s) от узла 10.10.10.3 в цепочку OUT_BILLING
iptables -A FORWARD -d 10.10.10.3 -j IN_BILLING
отправляем входящий (-d) на 10.10.10.3 траффик в цепочку IN_BILLING
iptables -A OUT_BILLING -s 10.10.10.3
Добавляем в цепочку OUT_BILLING правило для траффика идущего с хоста 10.10.10.3. Правило ничего не делает с траффиком, просто в данном случае пропускает его дальше к хосту.
iptables -A IN_BILLING -d 10.10.10.3
Аналогично для входящего траффика и цепочки IN_BILLING
В linux при прохождении траффиком определенного правила увеличивается соответсвующий эту правилу счетчик.
Код: Выделить всё
Chain POSTROUTING (policy ACCEPT 4187 packets, 261K bytes)
pkts bytes target prot opt in out source destination
78 4772 MASQUERADE all -- * * 192.168.168.0/24 !192.168.168.0/24
Судя по всему у вас переодически снимается статистика с правил в цепочках OUT_BILLING и IN_BILLING и добавляется в базу или куда-то там еще...
Теперь собственно о том как вам сделать то, что вы хотите:
Закоменнтированные строчки не трогайте, мне лично неясно их предназначение, ИМХО они не нужны.
Для того чтобы траффик идущий на бесплатные ресурсы не попадал в биллинг надо что этот самый траффик не попадал в цепочки OUT_BILLING и IN_BILLING.
Допустим есть бесплатный ресурс с адресом 1.1.1.1
Тогда делаем так:
iptables -I FORWARD 1 -s 1.1.1.1 -j ACCEPT - вставляем в начало цепочки FORWARD правило для траффика идущего с 1.1.1.1 и отправлем его сразу же по назначению, минуя остальные правила прописаные в FORWARD, в частности минуя цепочки OUT_BILLING и IN_BILLING.
iptables -I FORWARD 1 -d 1.1.1.1 -j ACCEPT -аналогично поступаем с траффиком идущем а бесплатный ресурс.
PS: насчет ручного добавления правил - будьте осторожны, правила iptables вообще-то не сохраняются при перезагрузках если иное не предусмотрено производителем дистрибутива, судя по тому коду который вы показали, скрипт берет адреса из таблицы в mysql...
Для того чтобы "покилять строчки" из цепочки используйте что-то типа iptables -D FORWARD 1 - удаляет первое правило в цепочке FORWARD. Просмотреть содержимое цепочки iptables -nL
PS: надеюсь вы таки доберетесь почитать мануал который я упоминал в самом начте этого поста...
Опыт растет прямо пропорционально выведенному из строя оборудованию
за мануал спасибо завтра обязательно почитаю. И вообще спасибо что взялись мне помочь. но вот что по поводу вашего совета мне сказали на канале #Unix.
Anubis, 22.01.2006 23:51 :
iptables -I FORWARD 1 -d 213.184.238.20 -j ACCEPT
iptables -I FORWARD 1 -d 213.184.238.21 -j ACCEPT
iptables -I FORWARD 1 -d 213.184.238.22 -j ACCEPT
что-то вроде этого надо?
ugenka, 22.01.2006 23:51 :
ну смотри
ugenka, 22.01.2006 23:51 :
тут разрешается выход на эти ip
Anubis, 22.01.2006 23:51 :
так
ugenka, 22.01.2006 23:51 :
а дальше стоит правило по умолчанию
ugenka, 22.01.2006 23:52 :
которое запрещает все остальное тем, кто не вышел по vpn
ugenka, 22.01.2006 23:53 :
это фаервол
Anubis, 22.01.2006 23:53 :
так
ugenka, 22.01.2006 23:53 :
ну так блин
ugenka, 22.01.2006 23:54 :
я ж говорю
Anubis, 22.01.2006 23:54 :
эти строки разрешать выход на эти адреса без VPN
ugenka, 22.01.2006 23:54 :
,--8<-
ugenka, 22.01.2006 23:54 :
|23:52 <ugenka> а дальше стоит правило по умолчанию
ugenka, 22.01.2006 23:54 :
|23:52 <ugenka> которое запрещает все остальное тем, кто не вышел по vpm
ugenka, 22.01.2006 23:54 :
|23:52 <ugenka> vpn
Anubis, 22.01.2006 23:54 :
ну
Anubis, 22.01.2006 23:54 :
вроде так и надо
ugenka, 22.01.2006 23:54 :
и?
ugenka, 22.01.2006 23:54 :
да
ugenka, 22.01.2006 23:55 :
так это ты не обойдешь
Anubis, 22.01.2006 23:55 :
=))))
ugenka, 22.01.2006 23:55 :
да забей ты блин
Anubis, 22.01.2006 23:55 :
тоесть всёравно через билл будет если VPN подключен
Anubis, 22.01.2006 23:55 :
так?
ugenka, 22.01.2006 23:55 :
ну конечно
Anubis, 22.01.2006 23:55 :
а если не подключен?
Anubis, 22.01.2006 23:56 :
то никак не выйдешь
Anubis, 22.01.2006 23:51 :
iptables -I FORWARD 1 -d 213.184.238.20 -j ACCEPT
iptables -I FORWARD 1 -d 213.184.238.21 -j ACCEPT
iptables -I FORWARD 1 -d 213.184.238.22 -j ACCEPT
что-то вроде этого надо?
ugenka, 22.01.2006 23:51 :
ну смотри
ugenka, 22.01.2006 23:51 :
тут разрешается выход на эти ip
Anubis, 22.01.2006 23:51 :
так
ugenka, 22.01.2006 23:51 :
а дальше стоит правило по умолчанию
ugenka, 22.01.2006 23:52 :
которое запрещает все остальное тем, кто не вышел по vpn
ugenka, 22.01.2006 23:53 :
это фаервол
Anubis, 22.01.2006 23:53 :
так
ugenka, 22.01.2006 23:53 :
ну так блин
ugenka, 22.01.2006 23:54 :
я ж говорю
Anubis, 22.01.2006 23:54 :
эти строки разрешать выход на эти адреса без VPN
ugenka, 22.01.2006 23:54 :
,--8<-
ugenka, 22.01.2006 23:54 :
|23:52 <ugenka> а дальше стоит правило по умолчанию
ugenka, 22.01.2006 23:54 :
|23:52 <ugenka> которое запрещает все остальное тем, кто не вышел по vpm
ugenka, 22.01.2006 23:54 :
|23:52 <ugenka> vpn
Anubis, 22.01.2006 23:54 :
ну
Anubis, 22.01.2006 23:54 :
вроде так и надо
ugenka, 22.01.2006 23:54 :
и?
ugenka, 22.01.2006 23:54 :
да
ugenka, 22.01.2006 23:55 :
так это ты не обойдешь

Anubis, 22.01.2006 23:55 :
=))))
ugenka, 22.01.2006 23:55 :
да забей ты блин

Anubis, 22.01.2006 23:55 :
тоесть всёравно через билл будет если VPN подключен
Anubis, 22.01.2006 23:55 :
так?
ugenka, 22.01.2006 23:55 :
ну конечно
Anubis, 22.01.2006 23:55 :
а если не подключен?
Anubis, 22.01.2006 23:56 :
то никак не выйдешь
Дело в том, что на эти адреса юзер должен попасть даже если у него не подключен VPN тоесть он у себя в роутах прописывает эти адреса и сетевуху сервера которая смотрит в локалку как шлюз а сервер должен автоматически перекидывать для этих адресов пакеты с одной сетевухи на другую. (просто как роутер)Llama писал(а):
/sbin/route add -host 213.184.238.20 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.21 gw 10.3.0.1 metric 1
/sbin/route add -host 213.184.238.22 gw 10.3.0.1 metric 1
Добавляет маршруты к узлам 213.184.238.20-213.184.238.22 через хост 10.3.0.1 - как я понимаю это и есть бесплатные ресурсы... Или я не прав? Т.е. если шлюз по умолчанию 10.3.0.1 - то эти строчки видимо не нужны.
Несколько не ясно с бесплатными ресурсами - это отдельные адреса к которым доступ через default gateway и к которым не надо считать траффик? Или достум к ним чсе же через другой шлюз?
Как я понимаю, и для юзеров подключенных через VPN и для тех, кто идет на бесплатные ресурсы шлюз по умолчанию один и тот же?
Т.е. теоретически - все должно работать и без этих строчек. Допустим юзера которые без VPN имею адреса из диапазона 192.168.0.0/24, внутрений интерфейс - 192.168.0.1. Тогда у юзеров надо прописать либо default gateway 192.168.0.1 либо отдельно маршруты для бесплатных ресурсов опять же со шлюзом 192.168.0.1, у провайдера надо прописать маршрут для доступа к сети 192.168.0.0/24 через 10.3.7.194. Если нет возможности прописать маршруты у провайдера, то используйте SNAT/MASQUERADE
Т.е. теоретически - все должно работать и без этих строчек. Допустим юзера которые без VPN имею адреса из диапазона 192.168.0.0/24, внутрений интерфейс - 192.168.0.1. Тогда у юзеров надо прописать либо default gateway 192.168.0.1 либо отдельно маршруты для бесплатных ресурсов опять же со шлюзом 192.168.0.1, у провайдера надо прописать маршрут для доступа к сети 192.168.0.0/24 через 10.3.7.194. Если нет возможности прописать маршруты у провайдера, то используйте SNAT/MASQUERADE
Опыт растет прямо пропорционально выведенному из строя оборудованию