В принципе многим известно такое понятие как VPN (Virtual Private Network – виртуальная частная сеть). За счет vpn подключений многие провайдеры предоставляют доступ клиентов к сети интернет. Так же эта технология позволяет организовывать защищенные удаленные соединения к локальным сетям или отдельным компьютерам поверх общедоступных сетей интернет.
Можно выделить основные преимущества виртуальных частных сетей:
- шифрование,
- аутентификация,
- контроль доступа. Чем удобен VPN? К примеру, можно безопасно подключить к локальной сети организации удаленные офисы для работы с базами данных, файлами, всеми необходимыми сервисами. Так же можно за счет VPN-подключения настроить доступ к своему рабочему компьютеру или файловому серверу из дому. Т.е. вы фактически расширяете локальную сеть.
Для таких построений во-первых нужен vpn-сервер, во-вторых vpn-клиенты. VPN-сервер можно поднять на разных ОС: на роутерных ОС (наподобие Mikrotik), Windows Server, Linux, FreeBSD и т.д.
Довольно просто это сделать на Linux. В качестве VPN-сервера я остановился на pptpd, можно выбрать и что-то другое, например, OpenVPN.
Настраивал на SUSE Linux, на других дистрибутивах настройки практически одинаковы.
1) Устанавливаем pptpd: zypper install pptpd
2) Настраиваем файл конфигурации /etc/pptpd.conf, вносим изменения:
-----------------------
#IP, который присваивается локальному VPN-серверу
localip 192.168.110.1
# IP которые выдаются удаленным клиентам
remoteip 192.168.110.100-110
#Этот параметр указывает на файл, конфигурации PPP
option /etc/ppp/options.ppp0
-----------------------
3) Файла /etc/ppp/options.ppp0 не оказалось , потому можно его создать и скопировать уже существующий, если есть /etc/ppp/options.pptp и отредактировать его, например:
-----------------------
# Lock the port
lock
# Включаем автoризацию
auth
# Имя сервера VPN
name pptpd
#Отключаем все протоколы кроме chap
refuse-pap
refuse-mschap
refuse-eap
nobsdcomp
nodeflate
#Выставляем MTU
mtu 1400
mru 1400
lcp-echo-failure 5
lcp-echo-interval 30
-----------------------
4) Далее открываем файл /etc/ppp/chap-secrets и прописываем логины и пароли, например
# login <имя сервера> password IP
pupkin pptpd mypA$$word *
Вместо "*", можно прописать для каждого клиента IP из пула адресов прописанного в /etc/pptpd.conf. Но будьте осторожны, если вы допустим прописали адрес 192.168.110.100 для vasya, а этот адрес был выдан уже для другого коннекта, то при подключении vasya, предыдущей пользователь будет отключен.
5) Все настроено, запускаем демон
/etc/init.d/pptpd start
6) Осталось настроить VPN-соединения клиентов MS Windows: Создание нового подключения->подключить к сети на рабочем месте->подключение к виртуальной частной сети->вводим название организации->белый IP адрес машины на которой запущен VPN сервер. После создания подключения в свойствах на вкладке "Безопасность" выбираем "Дополнительно" и указываем следующие параметры: Шифрование - "необязательное", Отключаем все протоколы и включаем CHAP соединяемся и проверяем коннект.
7) Обязательно нужно на файерволе открыть необходимые порты и прописать маршруты. В SUSE настройки хранятся в файле /etc/sysconfig/SuSEfirewall2, те значения которые нужны для обеспечения работы VPN и разадчи интернета, где eth0 - внешний интерфейс, eth1 -локальный.
-----------------------
#Назначем интерфесы
FW_DEV_EXT="any dsl0 eth0"
FW_DEV_INT="eth1"
#Включаем роутинг и маскарадинг
FW_ROUTE="yes"
FW_MASQUERADE="yes"
#Даем неограниченный доступ в интернет из внутренней сети
FW_MASQ_NETS="0/0"
#Открываем порт для VPN
FW_SERVICES_EXT_TCP="1723"
#Открываем протокол GRE=47
FW_SERVICES_EXT_IP="47"
#Открываем доступ на сервер 192.168.10.3 из нашей сети VPN 192.168.110.0/24
FW_FORWARD="192.168.110.0/24,192.168.10.3 192.168.10.3,192.168.110.0/24"
-----------------------
8) Так же на клиентской машине свойствах Протокола Интернета (TCP/IP) VPN-подключения можно убрать опцию "Использовать основной шлюз в удаленной сети" и прописать маршрут в удаленную сеть, чтобы выход в интернет был не через VPN, а через свой локальный.
В принципе VPN-сеть на этом создана. Детально в теоретические нюансы и многие реализации VPN не вдавался - добавляйте свои комментарии, думаю многим будет интересно.
Так же на той же машине с VPN-сервером можно поднять прокси-сервер squid.
Ссылки:
http://ru.wikipedia.org/wiki/VPN
http://open-suse.ru/modules/smartsection/item.php?itemid=101