Здравствуйте!
Задача следующая: настроить сервер-шлюз для выхода в интернет напрямую и через openvpn.
На машине имеется:
#uname -a
Linux Ub-Server 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:18:00 UTC 2015 i686 i686 i686 GNU/Linux
#ifconfig -a
eth1 Link encap:Ethernet HWaddr 00:14:85:20:e7:24 inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::214:85ff:fe20:e724/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:27497 errors:0 dropped:2 overruns:0 frame:0 TX packets:55478 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2415091 (2.4 MB) TX bytes:78819982 (78.8 MB)
eth1:0 Link encap:Ethernet HWaddr 00:14:85:20:e7:24 inet addr:192.168.0.11 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
lo Link encap:Локальная петля (Loopback) inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:220 errors:0 dropped:0 overruns:0 frame:0 TX packets:220 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:60252 (60.2 KB) TX bytes:60252 (60.2 KB)
ppp0 Link encap:Протокол PPP (Point-to-Point Protocol) inet addr:10.111.108.15 P-t-P:10.64.64.64 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:2217 errors:0 dropped:0 overruns:0 frame:0 TX packets:1434 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:2159084 (2.1 MB) TX bytes:235499 (235.4 KB)
wwan0 Link encap:Ethernet HWaddr 00:1e:10:1f:00:00 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Т.е. два рабочих интерфейса - eth1(локальная сеть) и ppp0(свисток с оператором Скартел - через него и ходим в сеть). Стоит упомянуть одну из причин использования OpenVPN. На выбранном тарифе Скартел режет торренты - потому, приходится прятать трафик.
На машине запущен клиент openvpn, через который и планируется ходить всем из локальной сети. Сервер OpenVPN в сети Интернет свой - можно поправить конфиги.
Что реализовано:
1. Настроен доступ в сеть интернет через ppp;
2. Настроен форвардинг в локальной сети;
3. Клиент openvpn также настроен. Как известно, он переопределяет маршрут по умолчанию и тем самым просто выйти в сеть интернет не удается - все идет через vpn.
Собственно, главная проблема - как реализовать возможность одновременного доступа в сеть. Были мысли использовать proxy (например socks) для шифрованного трафика и уже только его заворачивать в openvpn, но реализовать не удалось.
***** Дополнение № 1
На клиенте ovpn все маршруты прописываются вручную, т.е. redirect-gateway - отключена.
Адреса, куда клиенты будут «ходить» через ovpn заранее не известны. Например, торрент, запрещенные сайты в РФ.
Мое представление как должно работать: по умолчанию весь трафик идет через isp. Если нужно, то в программе клиента указывается прокси, и уже трафик который пойдет через прокси нужно завернуть в opvn.