Ограничете VPN слушател до интерфейсите, които имате предвид
Слушател с wildcard и правило на защитна стена са различни контроли. Прочетете действителните сокети със ss, след което проверете семейството на адресите и защитната стена.
VPN услуга е достъпна отвсякъде, където е вързан сокетът ѝ и защитната стена го позволява. Това са две отделни решения и хората обикновено вземат само едно от тях. Прочитането на действителния слушател отнема десет секунди и решава въпрос, който догадките не могат. Започнете оттам, след което променяйте по една контрола наведнъж.
Всичко по-долу предполага, че можете да изпълнявате команди на хоста с root или sudo.
Прочетете сокетите, преди да промените нещо
В Linux ss -lunp изброява UDP слушателите с локалния им адрес, порт и процес, а ss -ltnp прави същото за TCP. Потърсете порта на VPN и прочетете внимателно колоната с адреса. 0.0.0.0:51820 и [::]:51820 означават всеки интерфейс, докато 10.0.0.5:51820 означава един адрес на един интерфейс. Ръководството за ss документира колоните, ако изходът е непознат. Ако името на процеса липсва, изпълнете същата команда със sudo, защото колоната на собственика изисква привилегия.
Запишете адреса. Това е фактът, от който зависи останалата част от това ръководство.
Вържете към адрес, не към желание
OpenVPN има директива local, която връзва слушателя към конкретен адрес и това е поддържаният начин да го ограничите на ниво процес. Не всяка реализация предлага еквивалент и протокол без опция за връзване не може да бъде стеснен по този начин. Ако вашата няма, защитната стена е единствената ви контрола и бележките за внедряване трябва да го казват ясно. На хост с няколко адреса се вържете към този, който гледа към тунела; връзването към плаващ адрес обикновено е грешка.
Услуга, която трябва да преживее промяна на адреса, се нуждае от план за остарелия обвързване, а не само от ред в конфигурацията.
Проверете семейството на адресите отделно
IPv4 и IPv6 са отделни сокети. Процес, вързан към 0.0.0.0, все още може да приема IPv6 през двойно-стеков сокет или да не приема, в зависимост от опцията на сокета и стандарта на платформата. Четенето само на реда за IPv4 е заблудило не един преглед на внедряване. Избройте двете семейства, преди да заключите, че слушателят е тесен.
Ако IPv6 не е част от дизайна, изключването му на ниво сокет е по-чисто, отколкото да се надявате защитната стена да го покрие. Това е политическо решение, затова го запишете заедно с останалите избори за интерфейси.
Наслоете защитната стена върху връзването
Тясното връзване не замества правило на защитната стена, а правилото на защитната стена не стеснява wildcard връзване. Използвайте и двете: вържете там, където реализацията го поддържа, след което разрешавайте порта само от източниците, които трябва да го достигнат. Групите за сигурност в облака стоят пред защитната стена на хоста, затова проверявайте и двете, когато пътят пресича граница на VPC. Ефективното правило е пресечната точка на двете и всеки слой може само да отнема достъпност.
Тествайте от разрешен източник и от умишлено изключен. Връзка от localhost не доказва нищо за публичната граница.
Запишете какво сте избрали
Запишете вързания адрес, интерфейса, който го притежава, правилото на защитната стена и целта му. Подменен NIC или преназначен облачен адрес може да промени излагането, без някой да редактира профила. Датирайте бележката, защото облачните адреси се местят между прегледите по-често, отколкото хората очакват.
Именно тази бележка превръща следващия преглед в сравнение, а не в археологически проект.