четверг, июля 17, 2008

Проброс VPN туннеля внутрь корпоративной сети

Сегодня я расскажу Вам как пробросить VPN-туннель через шлюз внутрь сети. Опишу текущую ситуацию: имеется корпоративная локальная сеть и удаленные клиенты с динамическими адресами. Клиенты подключается к pptp-серверу, находящемуся внутри сети. Пробросить туннель средствами iptables проблематично. Дело в том, что файерволу трудно корректно обработать GRE туннель, если бы мы настроили DNAT.

Для реализации вышеприведенной схемы мы будем использовать pptpproxy (http://www.mgix.com/pptpproxy/).

Первым делом распаковываем архив с pptpproxy:

[root@srv1 tmp]# tar jxvf pptpproxy-2.9.tar.bz2


Далее переходим в каталог распакованного архива:

[root@srv1 tmp]# cd pptpproxy-2.9


Приступаем к компиляции pptpproxy. Для компиляции потребуется gcc-c++ .

[root@srv1 pptpproxy-2.9]# perl ./make


Создаем каталог для бинарного файла pptpproxy:

[root@srv1 pptpproxy-2.9]# mkdir /opt/pptpproxy


И копируем туда скомпилированый бинарник pptpproxy:

[root@srv1 pptpproxy-2.9]# cp pptpproxy /opt/pptpproxy/


Теперь запускаем pptpproxy:

[root@srv1 pptpproxy-2.9]# /opt/pptpproxy/pptpproxy -p 192.168.254.200 -a 255.255.255.255/0.0.0.0

В нашем случае мы использовали следующую схему: пробрасываем все соединения на адрес VPN-сервера. В Вашем случае схема может быть иной.


Добавляем в правила файервола следующие правила:

/sbin/iptables -A INPUT -p GRE -j ACCEPT
/sbin/iptables -A INPUT -p TCP --dport 1723 -j ACCEPT
/sbin/iptables -A INPUT -p TCP --sport 1723 -j ACCEPT

И проверяем работу pptpproxy, настроив соединение на адрес шлюза.


Если все успешно, то добавляем pptpproxy в автозапуск:

[root@srv1 pptpproxy-2.9]# echo /opt/pptpproxy/pptpproxy -p 192.168.254.200 -a 255.255.255.255/0.0.0.0 >> /etc/rc.local


Вот и все.

Комментариев нет: