Зменшення скарг на зловживання під час запуску VPN-сервісу
Запуск VPN або прокси-сервісу на сервері може мати кілька ризиків. Як
власник IP-адреси, ви несете відповідальність за будь-яке неправомірне
використання або незаконну діяльність, проведену через ваш сервіс. Щоб захистити себе
проблему, вам потрібно вжити активних заходів для захисту вашого
reputation.
Strict Mode:
Whitelisting
Один зі способів переконатися, що ваш сервер не піддається зловживанням — дозволити лише
певні дії. Такий підхід, який називається білим списком, не
повністю запобігає зловживанням; ваші користувачі все ще можуть атакувати інших людей, що призведе до
припинення роботи вашого сервера. Однак це значно ускладнює процес зловживання й
дуже ймовірно відпалить зловмисників від ваших
сервісів (і, на жаль, деяких законних користувачів теж).
Ми пропонуємо заблокувати весь вхідний та вихідний
трафік вашого сервера, крім того, що абсолютно необхідно.
Ось як це зробити.
Єдине, що потрібно розглянути перед читанням цього посібника —
переконатися, що на вашому сервері не ввімкнено жодних інших брандмауерів.
Хоча цей посібник описує процес на Ubuntu, вам не обов'язково мати
його як вашу ОС. Логіка процесу однакова для інших ОС.
well.
1. Installing UFW
Спочатку вам потрібно встановити UFW.
sudo apt install ufw
2.
Блокування всіх вхідних та вихідних з'єднань
Переконайтеся, що ви вимкнули UFW, бо наступні команди можуть
перервати ваше з'єднання з сервером:
sudo ufw disable
наведені нижче команди по суті відкидають кожен пакет, що намагається
потрапити на ваш сервер або вийти з нього. Далі ми дозволимо лише необхідні для
наших користувачів з'єднання:
sudo ufw default deny incoming
sudo ufw default deny outgoing
3. Allowing
підключитися до вашого сервера
Тепер ми дозволимо вхідні з'єднання на порт 22, що використовується для
встановлення SSH з'єднань. Хоча завжди добра ідея
змінити ваш SSH порт на інший:
sudo ufw allow in 22/tcp comment “Allows me to SSH to my server”
Хоча вихідні з'єднання вже заблоковані, ми спеціально
блокувати всі вихідні пакети, призначені для порту 22 (у
випадку, якщо ви змінитимете стандартну політику в майбутньому). Це зробить обидва
ви та ваші користувачі не можете підключитися до інших серверів через SSH на порті
22. Хоча це звучить заморочливо, насправді це вирішить одну з найпоширеніших
типові скарги, що призводять до блокування вашого сервера. Використовуючи це
команди, жоден користувач не зможе здійснювати атаки перебору SSH із
your server:
sudo ufw deny out 22/tcp comment “Stops SSH brute force”
Після того як ви дозволите вхідні з'єднання на порт 22, ви можете увімкнути ваш
брандмауер без розриву з'єднання з вашим сервером:
sudo ufw enable
Якщо раптом втратите зв'язок із сервером, можете скористатися
VNC для повторного доступу до сервера та вимкнення брандмауера.
4.
Дозволяє вашим користувачам підключатися до вашого сервера для отримання proxy/VPN
services
Звісно, вашим користувачам потрібно підключатися до проксі вашого сервера та працювати через нього.
послуги. Блокування всіх вхідних з'єднань робить це неможливим для
них. Тому нам потрібно дозволити портам proxy/VPN, які використовуються користувачами для
наприклад, припустімо, ми хочемо дозволити користувачам підключатися до порту 1194, який
зазвичай використовується для OpenVPN. Для цього введіть таку команду:
sudo ufw allow in 1194/tcp comment “OpenVPN port for users”
Або, якщо ви запускаєте OpenVPN над UDP:
sudo ufw allow in 1194/udp comment “OpenVPN port for users”
Логіка така сама й для інших серверів VPN та проксі-серверів, просто
з'ясуйте, на який порт потрібно підключатися вашим користувачам, та дозвольте вхідний трафік
connections to it.
Тепер ваші користувачі можуть підключатися до вашого сервера та до VPN, але вони
не зможе встановлювати жодні з'єднання зовні. Це
призначення вайтлисту: користувачі не зможуть підключитися до жодного
портів, якщо ми їм це дозволимо. Такий підхід мінімізує ймовірність
отримання скарг на зловживання.
5.
Дозволити користувачам відвідувати веб-сайти та використовувати
applications
Тепер ми дозволимо вихідний трафік на порти, які використовуються для веб-навігації
та здійснення API запитів до веб-серверів. Для цього потрібно дозволити
порт TCP 80 та порт TCP 443. Дозвіл на порт UDP 443 також
дозволить користувачам встановлювати HTTP3 з'єднання:
sudo ufw allow out 80/tcp comment “HTTP connections”
sudo ufw allow out 443 comment “HTTPS and HTTP3 connections”
6. Allowing
різних сервісів за необхідності
Зазвичай дозволу портів 80 та 443 достатньо, але для повної
функціональності деяких додатків або програм може знадобитися дозвіл на
інші порти для користувачів.
Загалом рекомендується провести власне дослідження та дозволяти
тільки абсолютно необхідні порти. Кожний великий додаток має
документацію з мережевою інформацією для мережевих адміністраторів,
як от ви. У цих документах можна знайти порти, які
використовує додаток, і додати їх до білого списку. Ось кілька популярних
ones as examples.
WhatsApp
(Без відео та голосових дзвінків):
sudo ufw allow out 443/tcp comment “WhatsApp”
sudo ufw allow out 5222/tcp comment “WhatsApp”
Git:
sudo ufw allow out 9418/tcp comment “Git”
Деякі сервіси, такі як Discord,
Zoom,
або WhatsApp голосові та відео дзвінки потребують широкого діапазону портів UDP,
ви можете відкрити їх на свій розсуд.
Lenient Mode:
Blacklisting
При білому списку ви блокуєте все та дозволяєте певні порти. При
чорному списку ви дозволяєте все та блокуєте певні порти.
1. Installing UFW
Спочатку потрібно встановити UFW
sudo apt install ufw
2. Blocking the
incoming connections
Переконайтеся, що ви вимкнули UFW, бо наступні команди можуть
перервати ваше з'єднання з сервером:
sudo ufw disable
Має сенс блокувати всі вхідні з'єднання, якщо ми не надаємо
конкретні сервіси. Отже, заблокуємо весь вхідний трафік:
sudo ufw default deny incoming
Зверніть увагу, що цього разу ви не блокуєте всі вихідні з'єднання.
Це дозволяє користувачам підключатися до будь-яких портів. Це не
не радимо, якщо ви не довіряєте своїм користувачам на сто відсотків.
3.
Надання собі доступу для підключення до сервера
Тепер ми дозволимо вхідні з'єднання на порт 22, який використовується
для встановлення SSH з'єднань з вашим сервером. Хоча це
добра практика змінити ваш SSH порт на інший:
sudo ufw allow in 22/tcp comment “Allows me to SSH to my server”
Якщо ви хочете заблокувати SSH порт, щоб уникнути звітів про SSH brute force атаки,
можете використати таку команду:
sudo ufw allow out 22/tcp comment “Block Outgoing SSH ”
4. Block BitTorrent
За тією ж логікою вам потрібно заблокувати порти, які використовуються
для BitTorrent. Однак оскільки портів для цього багато, вам потрібно
провести дослідження та заблокувати IP публічних трекерів, а також порти,
які зазвичай використовуються для BitTorrent.
Якщо у вас виникнуть питання, не вагайтеся зв'язатися з нами submitting a
ticket.
Also in Security
Related guides.
Вам потрібна допомога з чимось іншим?
Медіанний час відповіді менше 1 години. Справжні люди, не боти.