Meshnet, Docker и дозволата меѓу нив
Јазол во мрежата што стигнува до објавен контејнер преминува низ дозвола на домаќинот и превод на Docker. Разгледајте ги двете одделно, инаку ќе одобрите погрешен опсег.
Две URL-адреси можат да изгледаат исто од прелистувачот на јазол, а да значат сосема различни работи за огнениот ѕид. Едната покажува на услуга што слуша на самиот домаќин. Другата покажува на адреса на домаќин чијшто порт е објавен во мрежа на контејнер, каде што чекор на превод ја предава врската на друга IP. Во мрежа јазол-до-јазол што го контролира пристапот до локалната мрежа со дозвола за секој јазол, таа разлика е целото разгледување.
Дозволата се однесува на крајната точка на домаќинот, преводот се однесува на Docker, а најавата се однесува на апликацијата. Три одлуки, три места за гледање.
Следете ја дестинацијата по објавувањето
Земете Linux Docker домаќин што го објавува портот 80 на контејнер на портот 8080 на домаќинот. Јазол се поврзува со мрежната адреса на домаќинот на 8080, домаќинот ја прифаќа врската и преводот на дестинацијата ја препишува кон адресата на мостот на контејнерот, обично нешто како 172.17.0.2 на порт 80.
Кога некое правило ја прегледува таа насока, интересната дестинација е контејнерот, не домаќинот. Политика што расудува само за «услуга на оваа машина» расудува за погрешен објект. Барањето слета на домаќинот, но се доставува на друго место.
Затоа документацијата на мрежата ги наведува Docker контејнерите меѓу ресурсите што дозволата за локална мрежа ги контролира на Linux. Дозволата не е синоним за обичен запис во списокот за дозволи на VPN и двете контроли не се заменуваат. Едната одлучува дали јазолот воопшто може да стигне до локални ресурси; другата одлучува кои дестинации ги носи тунелска рута.
Одлучете колку локален пристап дава една дозвола
Давањето пристап до локалната мрежа на јазол не е одлука за еден контејнер. Тоа може да открие други објавени услуги на истиот домаќин и може да стигне подалеку зависно од тоа како домаќинот проследува. Разгледајте го ефективниот опсег пред да го притиснете прекинувачот за една контролна табла.
Потоа погледнете каде Docker го објавува портот. Објавување на 0.0.0.0 создава слушач на секоја адреса на домаќинот, што може да додаде обичен LAN запис покрај мрежниот. Ако барањето е само мрежата, врзете го објавувањето за конкретната адреса или интерфејс што го имате на ум, и третирајте го поширокото врзување како одделен наод, а не како погодност.
Држете ја политиката за проследување на домаќинот и сопствената автентикација на апликацијата доволно тесни за услугата. URL-адреса што изгледа приватна не е контрола на пристап, а контејнер што верува на секој извор во својата мостна мрежа не е заштитен со фактот дека јазолот на мрежата е одобрен. Автентикацијата на апликацијата е третата одлука и единствената што знае кој е корисникот. Дозвола на ниво на домаќин не може да го даде тоа знаење.
Тестирајте ја дозволата, не само URL-адресата
Од одобрениот јазол отворете ја точната услуга и потврдете дека работи. Потоа обидете се со дестинација што треба да остане одбиена и потврдете дека не работи. Тестирањето само на среќниот пат ви кажува дека дозволата е дадена; не ви кажува дека границата е таму каде што мислите.
Споредете ја одделно услугата што е вродена за домаќинот. Ако база на податоци слуша на домаќинот, а контролна табла работи во контејнер, тие одат по различни патишта низ истата дозвола и можеби политиката за проследување на домаќинот не ги контролира исто. Запишете што е што пред да ја напишете белешката за разгледување.
Не ги празнете табелите на Docker или правилата на клиентот на мрежата за да го «ресетирате» пристапот. Двата производи инсталираат своја интеграција на политика, а нејзиното бришење создава домаќин што изгледа дека работи додека ги заобиколува контролите што ви беше побарано да ги оцените. Ако правило изгледа погрешно, прочитајте го и сменете го точно тоа правило. Ако не можете да објасните што прави едно правило, тоа е наодот, а не причина да го избришете.
Напишете го наодот со термините на самиот систем
Важна е разликата што производот навистина ја спроведува, не онаа во шаблонот за разгледување: дозвола да се стигне до крајна точка на домаќин, дозвола да се стигне до рутирани приватни ресурси и дозвола да се користи апликацијата. Објавувањето на порт ги остава тие три одлуки точно таму каде што беа, а прегледувач што ги третира како една ќе одобри погрешен опсег.
Наведете ја адресата на домаќинот, објавениот порт, дестинацијата на контејнерот и дозволата на јазолот во иста реченица. Таа реченица може да ја провери некој друг и тоа е она што ја прави наод, а не мислење.