83-85 - Index of

advertisement
Вопрос №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 сервера.В общем-то, все. Сервер работает и принимает несколько соединений.З.Ы. Если есть чем
дополнить или где поправить - милости просим.
Download