Вопрос №83 Подключение удаленного VPN клиента по протоколу PPTP Решение для Linux, FreeBSD, NetBSD и OpenBSD. (Microsoft Point-to-Point Tunneling Protocol, PPTP). Для использования VPN туннеля необходимо: 1. включить поддержку протокола PPP в ядре 2. установить программное обеспечение поддержки протокола PPP (ppp-ВЕРСИЯ.АРХИТЕКТУРА.rpm) 3. установить программное обеспечение поддержки PPTP (pptp-linux-ВЕРСИЯ.АРХИТЕКТУРА.rpm) Установить PPTP Client: apt-get install pptp-linux Конфигурация в ручную 1.Получить от PPTP Server администратора: IP адрес или имя хоста ($SERVER), имя туннеля ($TUNNEL), имя домена для авторизации ($DOMAIN), имя пользователя ($USERNAME), пароль ($PASSWORD), 2. Создать или добавить в файл /etc/ppp/options.pptp, который задает параметры для всех туннелей lock noauth nobsdcomp nodeflate 3. Создать строчку в файле с именем пользователя и паролем $DOMAIN\\$USERNAME PPTP $PASSWORD * 4. Создать /etc/ppp/peers/$ TUNNEL файл: pty "pptp $SERVER --nolaunchpppd" name $DOMAIN\\$USERNAME remotename PPTP require-mppe-128 file /etc/ppp/options.pptp ipparam $TUNNEL 5. Запустить туннель используя pon команду: pon $TUNNEL 6.Остановить туннель используя poff команду: poff $TUNNEL 7.Для автоматического перезапуска туннеля, если он упал, добавляем опцию persist в файл /etc/ppp/peers/$TUNNEL . Вопрос №84 Подключение удаленного VPN клиента по протоколу L2TP/IPSec Запуск ipsec: Code: # ipsec start Starting strongSwan 4.5.3 IPsec [starter]... Запуск соединения: Code: # ipsec up l2tp-psk-client Далее: Code: # /etc/init.d/xl2tpd start redirecting to systemctl Туннелирование данных средствами L2TP - такое туннелирование осуществляется путем многоуровневого инкапсулирования. Инкапсуляция L2TP - изначальные полезные данные РРР инкапсулируются с использованием РРР- и L2TP-заголовков. Инкапсуляция UDP - пакет, инкапсулированный L2TP, инкапсулируется в сообщение с UDPзаголовком, а порты отправителя и получателя устанавливаются как 1701. Инкапсуляция IPSec - UDP-сообщение зашифровывается на основе политики IP-безопасности и инкапсулируется в пакет с заголовком и концевой частью ESP (Encapsulating Security Payload); кроме того, добавляется концевая часть ESP Authentication, необходимая для аутентификации по IPSec-протоколу ESP. Вопрос №85 Подключение удаленного VPN клиента по протоколу SSL/TLS (разные строки кода разделены ****) OpenVPN - это отличная программа для создания виртуальных частных сетей (Virtual Private Network) с широкими возможностями по защите передаваемого трафика криптографическими методами. Установка: Код: # apt-get update****# apt-get install openvpn Цифровой сертификат - документ, удостоверяющий принадлежность ключей конкретному лицу. Код: openssl req -new -x509 -keyout my-ca.pem -out my-ca.crt Открываем файл /usr/lib/ssl/openssl.cnf и меняем значение параметра policy на: Код: policy = policy_anything Это для того, чтобы можно было подписывать любые сертификаты. После чего создаем следующие папки и файлы (все в той же директории): Код: mkdir -p ./demoCA/newcerts****touch ./demoCA/index.txt****echo '1' > ./demoCA/serial Теперь генерируем запрос на сертификат для каждого пользователя: Код: openssl req -new -nodes -keyout user_1.pem -out user_1.crs И подписываем запрос на сертификат своим самоподписанным: m user_*.crs Настройка клиента. Чтобы клиент мог подключиться, ему нужно иметь у себя пару "ключ-сертификат", которую мы ранее сгенерировали и наш самоподписанный сертификат (передаем их клиенту в запароленном архиве). Файлы: Код: my-ca.crt и client_N.pem и client_N.crt На стороне клиента создаем конфиг /etc/openvpn/client.conf: Код: user nobody****group nogroup****ca /etc/openvpn/my-ca.crt****cert /etc/openvpn/client_1.crt****key /etc/openvpn/client_1.pem****dev tap****persisttun****persist-key****ifconfig 192.168.0.2 255.255.255.0 # Адрес устройства клиента маска подсети (должна совпадать с маской сервера) topology subnet****nobind # использовать динамический порт для подключения proto tcp-client**** proto tls-client********port 10000****comp-lzo yes Подключаемся к серверу: openvpn --remote АЙПИСЕРВЕРА --config /etc/openvpn/client.conf, где АЙПИСЕРВЕРА - внешний белый IP сервера.В общем-то, все. Сервер работает и принимает несколько соединений.З.Ы. Если есть чем дополнить или где поправить - милости просим.