Принтерът на бюрото спира да отговаря в момента, в който тунелът се вдигне, и нищо в конфигурацията на тунела не споменава принтера. Обикновено се е случило това, че защитен диапазон е бил записан достатъчно широко, за да го включи, така че машината сега се опитва да криптира трафик, който е трябвало да остане в локалния сегмент. Четенето на инсталираната политика обяснява прихващането; стесняването ѝ на правилното място запазва защитата на отдалечения трафик. Пътят от неуспешната заявка до съответната политика отнема няколко минути.

Проследете потока, преди да смените селектор

Започнете от неуспешната заявка и запишете четири стойности: адреса на източника, който машината използва, точната дестинация, маршрута, който ядрото избира, и политиката, която отговаря на тази двойка.

Тези четири факта решават дали прихващането е умишлено, или случайно. Дестинация, която попада в отдалечения селектор, е защитена по замисъл, дори замисълът да е бил грешен. Дестинация извън него, която все пак се прихваща, означава, че съвпада нещо друго, и смяната на селектора няма да помогне. И двата случая са чести и ги различава една единствена команда.

Направете това, преди да редактирате каквото и да е, защото интересният случай е локалната подмрежа, която се припокрива с частен диапазон, защитаван от връзката. Познати префикси като 192.168.0.0/16 се срещат в много мрежи, а селектор, написан за един от тях, може тихо да покрие вашия.

Три вида локално, които се държат различно

Дестинация, назначена на този хост, дестинация на същата връзка и дестинация зад друг интерфейс са три различни случая. Ядрото третира всеки от тях различно, когато решава дали трафикът се нуждае от защита.

Трафикът, генериран от самия шлюз, също не е същото като трафик, препратен от клиент. Политика, която изглежда правилна за препратен трафик, може да прихване собствената административна сесия на шлюза, и така администраторът губи достъп, докато поправя тунела.

Полезната навичка е да назовете случая на глас: този пакет идва ли от мен, към моята връзка или през мен? Всеки отговор сочи към различно място за стесняване. Записването на случая също пречи на следващия човек да повтори същата работа.

Когато защитеният диапазон е цяло частно пространство, и трите случая могат да попаднат в него наведнъж и симптомът става машина, която не достига нищо освен крайната точка на тунела.

Четете инсталираната политика, а не файла

Конфигурационните файлове описват намерението; ядрото държи политиките, които действително съвпадат. Покажете и двете и третирайте несъответствието като първа находка.

Тези команди показват избрания маршрут до дестинацията и инсталираните политики във всяка посока:

ip route get 192.168.50.20
ip xfrm policy list
sudo swanctl --list-conns

Маршрутът ви казва кой интерфейс би използвал пакетът. Списъкът с политики ви казва дали след това към този пакет се прилага шаблон, а списъкът с връзки показва кои селектори демонът смята, че е инсталирал. Ако дестинацията се появи в отдалечен селектор, намерили сте прихващането, без да гадаете.

Стеснете селектора или заобиколете дестинацията

Има две поддържани поправки и те отговарят на различни въпроси. Стесняването на селектора казва, че тази връзка защитава само по-малък диапазон, което е правилно, когато по-широкият диапазон е бил грешка. Добавянето на заобикаляне казва, че тази конкретна дестинация никога не трябва да бъде защитавана, което е правилно, когато защитеният диапазон наистина е широк и една дестинация е изключение.

Изберете първата, когато можете, защото по-малкият селектор е по-лесен за осмисляне и се вижда в дефиницията на връзката. Изберете втората, когато широкият диапазон е умишлен и изключението е един хост или подмрежа, която можете да назовете.

И двете принадлежат на конфигурацията, която притежава връзката. Правило по време на изпълнение, добавено на ръка, изчезва при следващото повторно свързване и отказът се връща в момент, когато никой вече не помни заобиколното решение.

Изключения, безопасни при преинсталиране

След промяната повторете същата безобидна заявка и погледнете същите броячи. Локалната дестинация трябва да отговори, а желаната отдалечена дестинация трябва да продължи да показва криптиран трафик.

Тези две проверки потвърждават, че изключението е оцеляло, а защитата не:

ip xfrm policy list | grep -c out
ping -c 3 192.168.50.20

След това умишлено прекъснете и отново свържете тунела и повторете двете. Изключение, което работи преди повторното свързване и се проваля след него, е било приложено на грешния слой, и това е най-честият начин този проблем да се върне.

Подобни статии