В этой статье рассказывается, как получить IPv6 подключение на OpenVPN с использованием Debian Linux. Процесс апробирован на Debian 7 на KVM VPS с IPv6 возможность подключения как к серверу, так и к рабочему столу Debian 7. Команды следует запускать от имени пользователя root.
OpenVPN - это программа VPN, которая использует SSL / TLS для создания безопасных, зашифрованных VPN-подключений, для маршрутизации вашего интернет-трафика, тем самым предотвращая слежку. Open VPN обладает высокой способностью прозрачно проходить через брандмауэры. Фактически, если этого требует ситуация, вы можете запустить его на том же TCP-порту, что и HTTPS (443), что сделает трафик неразличимым и, следовательно, практически невозможно заблокировать.
OpenVPN может использовать различные методы, такие как общие секретные ключи, сертификаты или имена пользователей / пароли, чтобы позволить клиентам аутентифицироваться на сервере. OpenVPN использует протокол OpenSSL и реализует множество функций безопасности и контроля, таких как вызов проверка подлинности ответа, возможность единого входа, функции балансировки нагрузки и аварийного переключения, а также мультидемон служба поддержки.
Думайте о безопасном общении - подумайте об OpenVPN. Если вы не хотите, чтобы кто-либо отслеживал ваш интернет-трафик, используйте OpenVPN для маршрутизации всего вашего трафика через надежно зашифрованный безопасный туннель.
Это особенно важно при подключении к общедоступным сетям WIFI в аэропортах и других местах. Никогда нельзя быть уверенным в том, кто следит за вашим трафиком. Вы можете направлять свой трафик через собственный сервер OpenVPN, чтобы предотвратить слежку.
Если вы находитесь в любой из стран, которые регулярно отслеживают весь ваш трафик и по желанию блокируют веб-сайты, вы можете использовать OpenVPN через порт TCP. 443, чтобы сделать его неотличимым от HTTPS-трафика. Вы даже можете комбинировать OpenVPN с другими стратегиями безопасности, такими как туннелирование трафика OpenVPN через туннель SSL, чтобы превзойти методы глубокой проверки пакетов, которые могут идентифицировать OpenVPN подписи.
OpenVPN требует минимальных требований для работы. Система с 64 МБ RAM и 1 ГБ HDD места достаточно для запуска OpenVPN. OpenVPN работает практически во всех основных операционных системах.
Выполните следующую команду, чтобы установить OpenVPN.
# apt-get install openvpn
По умолчанию сценарии easy-rsa устанавливаются в папке «/usr/share/easy-rsa/‘Каталог. Итак, нам нужно скопировать эти скрипты в желаемое место, т.е. /root/easy-rsa.
# mkdir / root / easy-rsa. cp -prv /usr/share/doc/openvpn/examples/easy-rsa/2.0 / root / easy-rsa
Открыть файл 'варс‘И внесите следующие изменения, но перед внесением изменений я предлагаю вам сделать резервную копию исходного файла.
# cp vars {,. orig}
Используя текстовый редактор, установите значения по умолчанию для easy-rsa. Например.
KEY_SIZE = 4096. KEY_COUNTRY = "В" KEY_PROVINCE = "ВВЕРХ" KEY_CITY = "Нойда" KEY_ORG = "Дом" KEY_EMAIL = "[электронная почта защищена]"
Здесь я использую 4096 битовый ключ. Вы можете использовать 1024, 2048, 4096 или 8192 битовый ключ по желанию.
Экспортируйте значения по умолчанию, выполнив команду.
# source ./vars
Удалите все сертификаты, которые были созданы ранее.
./clean-all
Затем выполните следующую команду, чтобы сгенерировать CA сертификат и CA ключ.
# ./build-ca
Сгенерируйте сертификат сервера, выполнив команду. Замените «имя сервера» своим именем сервера.
# ./build-key-server имя-сервера
Создать Диффи Хеллман PEM сертификат.
# ./build-dh
Сгенерируйте сертификат клиента. Замените «имя клиента» своим именем клиента.
# ./build-key имя-клиента
Сгенерируйте код HMAC.
# openvpn --genkey --secret /root/easy-rsa/keys/ta.key
Скопируйте сертификаты на клиентский и серверный машины следующим образом.
Чтобы настроить ключи и сертификаты на сервере, выполните команды.
# mkdir -p / etc / openvpn / certs. # cp -pv /root/easy-rsa/keys/{ca.{crt, key}, имя-сервера. {crt, key}, ta.key, dh4096.pem} / etc / openvpn / certs /
Теперь вам нужно настроить сервер OpenVPN. Открыть файл '/etc/openvpn/server.conf‘. Пожалуйста, внесите изменения, как описано ниже.
скрипт безопасности 3 системы. порт 1194. прото udp. dev нажмите ca /etc/openvpn/certs/ca.crt. сертификат /etc/openvpn/certs/server-name.crt. ключ /etc/openvpn/certs/server-name.key. dh /etc/openvpn/certs/dh4096.pem. tls-auth /etc/openvpn/certs/ta.key 0 сервер 192.168.88.0 255.255.255.0. ifconfig-pool-persist ipp.txt. нажмите "redirect-gateway def1 bypass-dhcp" нажмите "dhcp-option DNS 8.8.8.8" нажмите "dhcp-option DNS 8.8.4.4" keepalive 1800 4000 cipher DES-EDE3-CBC # Triple-DES. comp-lzo max-clients 10 пользователь никто. группа nogroup персист-ключ. persist-tun # журнал openvpn.log. #status openvpn-status.log. глагол 5. немой 20
Включите переадресацию IP на сервере.
# эхо 1> / proc / sys / net / ipv4 / ip_forward
Выполните следующую команду, чтобы настроить OpenVPN для запуска при загрузке.
# update-rc.d -f openvpn по умолчанию
Запустите службу OpenVPN.
# перезапуск службы openvpn
Выполните следующую команду, чтобы установить OpenVPN на клиентском компьютере.
# apt-get install openvpn
Используя текстовый редактор, настройте конфигурацию клиента OpenVPN в ‘/etc/openvpn/client.conf‘, На клиенте. Пример конфигурации выглядит следующим образом:
скрипт безопасности 3 системы. клиент. удаленный vpn_server_ip. ca /etc/openvpn/certs/ca.crt. сертификат /etc/openvpn/certs/client.crt. ключ /etc/openvpn/certs/client.key. шифр DES-EDE3-CBC. comp-lzo да. разработчик тап. прото udp. tls-auth /etc/openvpn/certs/ta.key 1. nobind. auth-nocache. постоянный ключ. настойчиво-тун. пользователь никто. группа nogroup
Выполните следующую команду, чтобы настроить OpenVPN для запуска при загрузке.
# update-rc.d -f openvpn по умолчанию
Запустите службу OpenVPN на клиенте.
# перезапуск службы openvpn
Как только вы убедитесь, что OpenVPN работает нормально на IPv4, вот как получить IPv6 работает через OpenVPN.
Добавьте следующие строки в конец конфигурации сервера ‘/etc/openvpn/server.conf' файл.
клиентское соединение /etc/openvpn/client-connect.sh. отключение клиента /etc/openvpn/client-disconnect.sh
Эти два скрипта создают / уничтожают IPv6 туннель каждый раз, когда клиент подключается / отключается.
Вот содержимое client-connect.sh.
#! / bin / bash. BASERANGE = "2a00: dd80: 003d: 000c" ifconfig $ dev вверх. ifconfig $ dev add $ {BASERANGE}: 1001:: 1/64. ip -6 neigh добавить прокси 2a00: dd80: 003d: 000c: 1001:: 2 dev eth0. выход 0
Мой хозяин назначает меня IPV6 адреса из 2a00: dd80: 003d: 000c:: / 64 блокировать. Следовательно, я использую
2a00: dd80: 003d: 000c как БАЗЕРАНЖ. Измените это значение в соответствии с тем, что вам назначил ваш хост.
Каждый раз, когда клиент подключается к OpenVPN, этот скрипт назначает адрес 2a00: dd80: 003d: 000c: 1001:: 1 как IPV6 адрес tap0 интерфейс сервера.
Последняя строка устанавливает Neighbor Discovery для нашего туннеля. Я добавил IPv6 адрес клиентской стороны tap0 подключение в качестве адреса прокси.
Вот содержание client-disconnect.sh.
#! / bin / bash. BASERANGE = "2a00: dd80: 003d: 000c" / sbin / ip -6 addr del $ {BASERANGE}:: 1/64 dev $ dev. выход 0
Это просто удаляет IPv6 туннельный адрес сервера, когда клиент отключается. Измените значение BASERANGE соответствующим образом.
Сделайте скрипты исполняемыми.
# chmod 700 /etc/openvpn/client-connect.sh. # chmod 700 /etc/openvpn/client-disconnect.sh
Добавьте следующие записи в «/etc/rc.local» (вы также можете изменить соответствующие sysctls в /etc/sysctl.conf).
эхо 1> / proc / sys / net / ipv6 / conf / all / proxy_ndp. эхо 1> / proc / sys / net / ipv4 / ip_forward. echo 1> / proc / sys / net / ipv6 / conf / all / forwarding. /etc/init.d/firewall stop && /etc/init.d/firewall start
Эти записи активируют обнаружение и пересылку соседей. Я также добавил брандмауэр.
Создавать '/etc/init.d/firewall‘И вставьте следующее содержание.
#! / bin / sh. # описание: Межсетевой экран. IPT = / sbin / iptables. IPT6 = / sbin / ip6tables. case "$ 1" в. Начало) $ IPT -F ВХОД. $ IPT -A INPUT -i eth0 -m state --state ESTABLISHED, RELATED -j ACCEPT. $ IPT -A ВХОД -i eth0 -p tcp --dport 22 -j ПРИНЯТЬ. $ IPT -A ВХОД -i eth0 -p icmp -j ПРИНЯТЬ. $ IPT -A ВХОД -i eth0 -p udp --dport 1194 -j ПРИНЯТЬ. $ IPT -A INPUT -i tap + -j ACCEPT. $ IPT -A FORWARD -i tap + -j ACCEPT. $ IPT -A FORWARD -m state --state УСТАНОВЛЕН, СВЯЗАН -j ПРИНЯТЬ. $ IPT -t nat -F РАЗМЕЩЕНИЕ. $ IPT -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE. $ IPT -A INPUT -i eth0 -j DROP. $ IPT6 -F ВХОД. $ IPT6 -A INPUT -i eth0 -m state --state ESTABLISHED, RELATED -j ACCEPT. $ IPT6 -A ВХОД -i eth0 -p tcp --dport 22 -j ПРИНЯТЬ. $ IPT6 -A ВВОД -i eth0 -p icmpv6 -j ПРИНЯТЬ. $ IPT6 -A FORWARD -s 2a00: dd80: 003d: 000c:: / 64 -i tap0 -o eth0 -j ПРИНЯТЬ. $ IPT6 -A INPUT -i eth0 -j DROP. выход 0.;; останавливаться) $ IPT -F. $ IPT6 -F. выход 0.;; *) echo "Использование: /etc/init.d/firewall {start | stop}" выход 1.;; esac
Запустить ‘/Etc/rc.local‘И запустите брандмауэр.
# sh /etc/rc.local
На этом модификации на стороне сервера завершены.
Добавьте следующие строки в последние строки файла конфигурации вашего клиента ‘/etc/openvpn/client.conf‘.
# создать туннель ipv6. вверх /etc/openvpn/up.sh. вниз /etc/openvpn/down.sh. # это нужно, чтобы когда клиент отключается, он сообщает серверу. явное-выход-уведомление
Скрипты up и down создают / уничтожают клиентские конечные точки IPV6 клиентского соединения tap0 каждый раз, когда клиент подключается / отключается от сервера OpenVPN или от него.
Вот содержание up.sh.
#! / bin / bash. IPV6BASE = "2a00: dd80: 3d: c" ifconfig $ dev вверх. ifconfig $ dev add $ {IPV6BASE}: 1001:: 2/64. ip -6 маршрут добавить по умолчанию через $ {IPV6BASE}: 1001:: 1. выход 0
Скрипт назначает IPV6-адрес 2a00: dd80: 3d: c: 1001:: 2 в качестве IPV6-адреса клиента и устанавливает маршрут IPV6 по умолчанию через сервер.
Измените IPV6BASE, чтобы он был таким же, как BASERANGE в конфигурации сервера.
Вот содержимое down.sh.
#! / bin / bash. IPV6BASE = "2a00: dd80: 3d: c" / sbin / ip -6 addr del $ {IPV6BASE}:: 2/64 dev $ dev. / sbin / ip link установить dev $ dev вниз. / sbin / ip route del:: / 0 через $ {IPV6BASE}:: 1. выход 0
Это просто удаляет IPV6-адрес клиента и разрывает маршрут IPV6, когда клиент отключается от сервера.
Измените IPV6BASE, чтобы он был таким же, как BASERANGE в конфигурации сервера, и сделайте скрипт исполняемым.
# chmod 700 /etc/openvpn/up.sh. # chmod 700 /etc/openvpn/down.sh
При желании измените «/etc/resolv.conf» и добавьте серверы имен Google IPV6 для разрешения DNS.
сервер имен 2001: 4860: 4860:: 8888. сервер имен 2001: 4860: 4860:: 8844
Перезапустите openvpn на сервере, а затем подключитесь к нему с клиента. Вы должны быть связаны. Визит test-ipv6.com чтобы убедиться, что ваше соединение IPV6 через OpenVPN работает.
Домашняя страница OpenVPN
Источник: Ставровский