Замислете медиумска кутија на домашна врска што треба да стигне до интернет само преку тунел. Кога тунелот ќе падне, апликацијата треба да застане наместо тивко да продолжи преку физичкиот интерфејс. Постигнувањето такво однесување е проблем на огнен ѕид, а не на рутирање, и разликата сѐ уште е важна бидејќи рутата може да се замени со рестартирање на демонот, додека филтерот останува таму каде што го поставивте. Следува како патеката на пакетот навистина одлучува, а потоа како да се ограничат исклучоците што го држат тунелот при повторно поврзување.

Локалниот излез е друга кука од препраќањето

Пакет што излегува од апликација на машината поминува низ излезната кука; пакет што машината го рутира за друг домаќин поминува низ препраќање. Политика што споменува само forward го ограничува второто и го остава првото широко отворено, затоа толку многу заклучувања на излезот изгледаат исправно и не прават ништо. Совпаѓањето на интерфејсот припаѓа на истото правило: oifname "tun0" accept пропушта сообраќај што веќе е рутиран низ тунелот. Рутирањето и филтрирањето исто така остануваат одделни одлуки, па рута кон провајдерот може да постои додека филтерот го одбива пакетот. На тоа раздвојување се потпирате.

Портата што препраќа за други уреди ги бара двете куки. Заклучувањето само на излезот ја штити самата машина и го остава секој клиент подолу слободен да истече.

Списокот на исклучоци напишете го од крајната точка нанадвор

Почнете од крајната точка на тунелот: една целна адреса или мал одобрен збир, транспортниот протокол и целната порта, на пример udp dport 1194 ip daddr 203.0.113.7 accept. Ако клиентот решава име на домаќин, почетната DNS размена бара свое правило ограничено на решавачот и на портата 53, а не општа дозвола за адресата на тој решавач. Секој исклучок треба да ја наведе причината поради која постои. Дозволата за целиот UDP сообраќај кон VPN портата покрива многу повеќе од едната автентицирана услуга што ја имавте на ум.

Почетното решавање е местото каде заклучувањата обично гнијат. Збирот адреси што се освежува со тајмер бара определено однесување кога освежувањето нема да успее, и тоа однесување не може да биде отворање на врската додека не успее. Освежувајте низ тунелот додека тунелот стои, а инаку вратете се на последната позната здрава крајна точка.

Локалната администрација бара ист третман. Управувачката подмрежа не е доверлива само затоа што нејзините адреси се приватни, а правило што ѝ верува поканува втор пат околу заклучувањето.

Совпаѓањето на интерфејсот не е доказ за здрав тунел

Правилата што прифаќаат сѐ што излегува од tun0 претпоставуваат дека пакетот на тој интерфејс дошол од тунелот. Имињата на интерфејсите се создаваат одново, а името не е криптографски идентитет. Партнерот исто така може да го нема додека интерфејсот останува горе, што го прави правилото многу убедливо невршење ништо.

Следењето на врски додава поврзана стапица. Широкото правило за воспоставени врски ја преигрува дозволата што течението ја добило порано, па сесијата што започнала пред падот на тунелот продолжува да работи потоа. Ограничете го прифаќањето по состојба на интерфејсите и адресите што навистина ги мислите, инаку изградивте заклучување што само се отвора. Влезните и излезните правила исто така одговараат на различни прашања, а зацврстувањето на едното додека се игнорира другото ја остава машината достапна во насоката за која не размислувавте.

Што преживува пад на демонот

Филтерот што го поставува скрипта која се извршува откако тунелот ќе се крене исчезнува заедно со тунелот, токму во моментот кога бил потребен. Вчитајте го заклучувањето при подигање и дозволете му на демонот да управува само со своите исклучоци.

Бришењето на стандардната рута исто така не е замена. Рутата е состојба што демонот ја поседува и ја препишува, а нејзиното отстранување може да го одземе патот потребен за повторно поврзување. IPv6 бара свој план, бидејќи откривањето соседи и најавите на рутерот се услуги на врската што мора да продолжат да работат додека обичниот сообраќај е блокиран. DHCP припаѓа на истата категорија. Запишете ги овие како исклучоци со цел, наместо подоцна да ги откриете како прекини.

Пат на враќање пред распоредувањето

Тестирајте го заклучувањето онака како што ќе откаже: подигање без тунел, убивање на демонот, промена на крајната точка и повторно поврзување. Секој случај треба да ги запре апликациите и да го остави каналот за враќање во работа. Правете го тоа од конзола, бидејќи далечната обвивка е сесијата што најверојатно ќе биде заклучена од вашето сопствено правило.

Потоа проверете до каде обична апликација сѐ уште може да стигне, со безопасна цел и барање што можете да го проверите. Резултатот што го сакате е одбивање на врската и успех низ тунелот, а не двосмислено чекање што би можело да значи и двете. Држете го збирот правила под истиот сопственик како и остатокот од огнениот ѕид, наместо да ја замените целата табела од скрипта на обвивката. Политика во која секоја дозвола може да се оправда самата себе вреди повеќе од долг збир правила што никој не може да го објасни.

Поврзани статии