Обмежте 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 або переназначена хмарна адреса можуть змінити експозицію без редагування профілю будь-ким. Поставте дату на нотатці, бо хмарні адреси переміщуються між оглядами частіше, ніж люди очікують.
Саме ця нотатка робить наступний огляд порівнянням, а не археологічним проєктом.