Ответ 1
Я бы начал, посмотрев OpenVPN исходный код. Это не java, но должно быть достаточно, чтобы понять принципы.
Я решил написать свой собственный легкий VPN-сервер в Java. С точки зрения программирования мне кажется, что VPN-сервер - это просто прокси-сервер, который шифрует трафик от клиента и расшифровывает его на сервере. Может ли кто-нибудь указать мне на скелет написания такого сервера?
Я знаю, что есть много из коробки и даже с открытым исходным кодом, но, к сожалению, хотя я знаю несколько языков веб-программирования, примеры кода C, которые я видел, не документированы/структурированы таким образом, что я могу это понять.
Части, которые я хотел бы представить себе:
Части, на которых я планирую использовать общие модули для (и создания адаптеров), являются Криптографическими Алгоритмами (AES предпочтительно, хотя кажется, что такие окна, как DES/3DES - Noobs)
Если кто-то может добавить дополнительные детали к частям, которые необходимы для сервера IPSec vpn, не стесняйтесь вносить свой вклад. Поскольку это необходимо для запуска этого на более раннем аппаратном обеспечении Linux из того, что я могу сказать, сервер должен быть IPSec, а не горячей SSLVPN. Целевая платформа - это старая коробка с 1,5 ГГц, которую я нагнетал с 2 ГБ оперативной памяти DDR2, зеркальным жестким диском на 100 ГБ и 2 гигабитными никами.
С яркой стороны, поскольку существует так много типов VPN на стороне клиента, я уверен, что не нужно делать это для моих нужд.
Я бы начал, посмотрев OpenVPN исходный код. Это не java, но должно быть достаточно, чтобы понять принципы.