WireGuard Linux ядросына «келеді» - неге?

Шілде айының соңында WireGuard VPN туннелін әзірлеушілер ұсынды патч жинағы, бұл олардың VPN туннельдік бағдарламалық құралын Linux ядросының бөлігі етеді. Дегенмен, «идеяның» жүзеге асырылуының нақты күні белгісіз. Кесудің астында біз бұл құрал туралы толығырақ сөйлесетін боламыз.

WireGuard Linux ядросына «келеді» - неге?
/ фото Тамбако Ягуар CC

Жоба туралы қысқаша

WireGuard — Edge Security бас директоры Джейсон А. Доненфельд жасаған келесі буын VPN туннелі. Жоба ретінде әзірленді жеңілдетілген және OpenVPN және IPsec-ке жылдам балама. Өнімнің бірінші нұсқасында тек 4 мың жол код болды. Салыстыру үшін OpenVPN-де шамамен 120 мың жол бар, ал IPSec - 420 мың.

туралы сәйкес әзірлеушілер, WireGuard конфигурациялау оңай және протокол қауіпсіздігіне қол жеткізіледі дәлелденген криптографиялық алгоритмдер арқылы. Желіні өзгерту кезінде: Wi-Fi, LTE немесе Ethernet VPN серверіне әр уақытта қайта қосылуы керек. WireGuard серверлері, тіпті пайдаланушы жаңа IP мекенжайын алған болса да, қосылымды тоқтатпайды.

WireGuard бастапқыда Linux ядросы үшін жасалғанына қарамастан, әзірлеушілер қамқорлыққа алынды және Android құрылғыларына арналған құралдың портативті нұсқасы туралы. Қолданба әлі толық әзірленбеген, бірақ оны қазір пайдаланып көруге болады. Бұл үшін сізге қажет сынаушылардың бірі болыңыз.

Жалпы, WireGuard өте танымал және тіпті болды жүзеге асырылды Mullvad және AzireVPN сияқты бірнеше VPN провайдерлері. Желіде жарияланған үлкен сан орнату нұсқаулары бұл шешім. Мысалы, бағыттаушылар бар, пайдаланушылар жасаған және нұсқаулықтар бар, жоба авторлары дайындаған.

техникалық

В ресми құжаттама (18-бет) WireGuard өткізу қабілеті OpenVPN-тен төрт есе жоғары екені атап өтілген: 1011 Мбит/с, сәйкесінше 258 Мбит/с. WireGuard сонымен қатар Linux IPsec үшін стандартты шешімнен алда - 881 Мбит/с. Ол орнатудың қарапайымдылығы жағынан да асып түседі.

Кілттер ауыстырылғаннан кейін (VPN қосылымы SSH сияқты инициализацияланған) және қосылым орнатылғаннан кейін WireGuard барлық басқа тапсырмаларды өздігінен орындайды: маршруттау, күйді басқару және т.б. туралы алаңдаудың қажеті жоқ. Қосымша конфигурация әрекеттері тек симметриялық шифрлауды пайдаланғыңыз келсе қажет.

WireGuard Linux ядросына «келеді» - неге?
/ фото Андерс Хойбьерг CC

Орнату үшін сізге Linux ядросы 4.1-ден асқан дистрибутив қажет болады. Оны негізгі Linux дистрибутивтерінің репозиторийлерінен табуға болады.

$ sudo add-apt-repository ppa:hda-me/wireguard
$ sudo apt update
$ sudo apt install wireguard-dkms wireguard-tools

Xakep.ru редакторлары атап өткендей, бастапқы мәтіндерден өздігінен құрастыру да оңай. Интерфейсті ашып, жалпы және жеке кілттерді жасау жеткілікті:

$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey

WireGuard пайдаланбайды криптопровайдермен жұмыс істеуге арналған интерфейс КриптоАПИ. Оның орнына ағындық шифр қолданылады ChaCha20, криптографиялық имитация кірістіру Poly1305 және меншікті криптографиялық хэш функциялары.

Құпия кілт көмегімен жасалады Диффи-Хеллман протоколы эллиптикалық қисыққа негізделген Curve25519. Хэштеу кезінде олар пайдаланады хэш функциялары БЛЕЙК2 и SipHash. Уақыт белгісі пішіміне байланысты TAI64N хаттама уақыт белгісінің мәні аз пакеттерді алып тастайды, осылайша DoS алдын алу и шабуылдарды қайталау.

Бұл жағдайда WireGuard I/O басқару үшін ioctl функциясын пайдаланады (бұрын қолданылған желі сілтемесі), бұл кодты таза және қарапайым етеді. Мұны қарап шығу арқылы тексеруге болады конфигурация коды.

Әзірлеуші ​​жоспарлары

Әзірге WireGuard ағаштан тыс ядро ​​модулі болып табылады. Бірақ жобаның авторы Джейсон Доненфельд дейді, Linux ядросында толық енгізу уақыты келді. Өйткені ол басқа шешімдерге қарағанда қарапайым және сенімдірек. Осыған байланысты Джейсон қолдайды тіпті Линус Торвальдс WireGuard кодын «өнер туындысы» деп атады.

Бірақ WireGuard-ты ядроға енгізудің нақты күндері туралы ешкім айтпайды. ЖӘНЕ нашар бұл тамыз Linux ядросының 4.18 шығарылымымен болады. Дегенмен, бұл өте жақын болашақта орын алуы мүмкін: 4.19 немесе 5.0 нұсқасында.

WireGuard ядроға қосылғанда, әзірлеушілер келеді Android құрылғыларына арналған қолданбаны аяқтаңыз және iOS үшін қосымшаны жазуды бастаңыз. Сондай-ақ Go және Rust бағдарламаларында енгізуді аяқтау және оларды macOS, Windows және BSD жүйесіне көшіру жоспарлары бар. Сондай-ақ WireGuard-ты «экзотикалық жүйелер» үшін енгізу жоспарлануда: DPDK, FPGA, сондай-ақ басқа да көптеген қызықты нәрселер. Олардың барлығы тізімде көрсетілген тізім жасау жобаның авторлары.

PS Біздің корпоративтік блогымыздан тағы бірнеше мақала:

Біздің қызметіміздің негізгі бағыты бұлттық қызметтерді ұсыну болып табылады:

Виртуалды инфрақұрылым (IaaS) | PCI DSS хостинг | Бұлтты FZ-152 | SAP хостингі | Виртуалды сақтау орны | Бұлтта деректерді шифрлау | Бұлтты сақтау

Ақпарат көзі: www.habr.com

пікір қалдыру