Компресија у OpenVPN-у: одбити, само примати или пуни LZO?
comp-lzo no није строго одбијање. Упоредите одбијање компресије, једнострано прихватање током миграције и његово задржавање, па проверите шта offload ради.
Три линије у профилу изгледају као да све искључују компресију, а само једна то заиста чини. Разлика је важна јер је упозорење које желите да утишате симптом, док политика одлучује да ли друга страна још може да компресује. Поређење опција на једној оси, наиме шта свака дозвољава после промене, уклања већину нејасноће. Коју желите зависи од тога да ли мигрирате или се смештате.
Три политике које у конфигурационој датотеци изгледају слично
Свака опција одговара на друго питање. allow-compression no одбија компресоване товаре одмах, allow-compression asym декомпресује оно што стиже и никада не компресује оно што одлази, а стара comp-lzo no оставља простор за push друге стране да укључи компресију. Само је прва политика коју сервер не може да надјача.
Запишите те три у табелу пре избора, јер су имена довољно близу да заведу рецензента. Две од њих још извршавају код за декомпресију на примљеним пакетима, а управо о томе говори безбедносни аргумент. Трећа уклања способност уместо да ограничава њен смер. Ако запис о промени каже да је компресија искључена, тачно један ред испуњава ту реченицу.
Упозорење које је покренуло истрагу није циљ. Његово утишавање док дозвољавајућа политика остаје на месту даје чист дневник и непромењену изложеност.
| Setting | What it permits | When it is the right answer |
|---|---|---|
allow-compression no | No compressed payloads, and no compression framing under offload | Both ends can be changed now |
allow-compression asym | Decompress inbound only | A dated migration while peers catch up |
comp-lzo no | Off locally, still pushable by a peer | Legacy compatibility you can still justify |
Шта no значи код старе LZO опције
Код застареле LZO опције no искључује компресију за локалну страну, али не забрањује другој страни да је укључи тамо где политика то дозвољава. Због те асиметрије премештање профила на строго одбијање мења понашање на начине које лабораторијски тест са једним сервером можда никада неће открити.
Безбедносна брига је условна, а не апсолутна. Када нападач може да постави изабрани отворени текст поред тајне и посматра како компресија мења величину шифрованог саобраћаја, информациони канал постоји. Прелазак са LZO на LZ4 мења алгоритам и уоквиривање, не тај механизам.
Дакле, искрен оквир тиче се онога што сте спремни да дозволите, а не тога који се алгоритам тренутно препоручује. Строго одбијање је једина опција која не зависи од сарадње друге стране.
Само примање је стање миграције, а не одредиште
Асиметрично прихватање постоји да би једна страна могла да престане да компресује док друга то још очекује. То је мост, а мостови траже крајњи датум и власника. Забележите који партнери још шаљу компресован саобраћај, јер политика дозвољава управо такав саобраћај. Без тог списка стање миграције инерцијом постаје трајна конфигурација.
Клијент не може да присили некомпатибилан сервер да напусти старо уоквиривање уређивањем сопствене датотеке. Смер push-а одлучује се на серверу, па се миграција заправо завршава у конфигурацији сервера и његовим датотекама по клијенту.
Stub режими чувају уоквиривање, али прескачу сам посао компресије и нису директан еквивалент старије опције. Тестирајте их на најстаријем партнеру који још морате да подржавате пре него што се одлучите за један.
Где offload податочног канала мења одговор
Offload податочног канала премешта обраду пакета у језгро, а профил који још зависи од уоквиривања компресије можда се не уклапа у тај пут. Квар није увек гласан: клијент се повеже и затим се понаша другачије од тунела који сте тестирали.
Проверите која је имплементација активна пре и после промене, а не само да ли веза успева. Када пут са offload-ом одбија уоквиривање компресије, строга политика одбијања и распоређивање са offload-ом се слажу, док се дозвољавајућа политика и распоређивање са offload-ом не слажу.
Та комбинација заслужује сопствени тест, јер се управо ту датотека која изгледа исправно тихо претвара у ону која се не користи. Упоредите преговарано стање са намером записаном у профилу, јер је само једно од њих видљиво у дневнику.
Изаберите политику, па проверите преговарани резултат
Изаберите строго одбијање када можете да промените обе стране, асиметрично прихватање када још не можете, а пуну компресију само када можете да објасните зашто је изложеност прихватљива. Затим проверите шта је преговарано, а не шта датотека каже. Тиши дневник је доказ само када се поклапа са политиком коју сте намеравали да примените.
Држите одлуку поред профила на који се односи, са датумом и партнерима који су још изузети. После пола године та белешка је разлика између намерног изузетка и незгоде којој нико не може да одреди датум. Напишите је у истом репозиторијуму као профил, да следећи уредник види разлог пре директиве.