VPS для пентестингу: налаштування безпечного сервера

CyberSecureFox 🦊

VPS (Virtual Private Server) – це потужний інструмент, який знаходить застосування в широкому спектрі задач: від веб-хостингу, розробки та організації особистого хмарного сховища до тестування на проникнення (пентестингу), аналізу безпеки або VPN-сервера. Однак для забезпечення безпеки та надійності VPS потребує правильного налаштування та зміцнення захисту. У цій статті ми детально розглянемо всі ключові кроки зі створення безпечного VPS сервера, який підійде як для загальних завдань, так і для специфічних потреб, таких як пентестинг.

Вибір провайдера та операційної системи

Першим важливим кроком є вибір надійного провайдера VPS. При виборі провайдера звертайте увагу на наступні фактори:

  • Репутація компанії та відгуки клієнтів
  • Розміщення серверів та мережа
  • Доступні варіанти операційних систем
  • Продуктивність і масштабованість тарифних планів
  • Рівень технічної підтримки та документації

Для операційної системи рекомендується вибрати один з популярних Linux-дистрибутивів, таких як Ubuntu, Debian або CentOS. Вони мають широку підтримку спільноти, часті оновлення безпеки та добре підходять для серверних завдань.

Якщо ж ваша мета – пентестинг і аналіз безпеки, то варто звернути увагу на спеціалізовані дистрибутиви, створені саме для цих задач. Наприклад, Kali Linux, ParrotOS або BlackArch. Ці дистрибутиви надають багатий набір попередньо встановлених інструментів для тестування на проникнення, аналізу вразливостей, реверс-інжинірингу та інших задач кібербезпеки.

Однак, навіть якщо ви обрали універсальний дистрибутив, такий як Ubuntu або Debian, ви завжди можете додатково встановити і налаштувати необхідні інструменти для пентестингу. Головне – забезпечити надійний захист самого VPS, щоб він не став жертвою атак або джерелом загроз для інших систем.

Налаштування VPS включає в себе вибір відповідного провайдера, встановлення операційної системи, налаштування служб і безпеку сервера. Ці кроки однаково важливі як для загального використання, так і для завдань з пентестингу.

Початкове налаштування сервера

Після створення VPS підключіться до нього по SSH, використовуючи надані провайдером облікові дані. Потім виконайте наступні кроки для початкового налаштування:

    1. Оновіть всі встановлені пакети до останніх версій:
      sudo apt update && sudo apt upgrade -y
    2. Створіть нового користувача з правами sudo і налаштуйте аутентифікацію по SSH-ключу:
      adduser johndoe
      usermod -aG sudo johndoe
      mkdir /home/johndoe/.ssh
      chmod 700 /home/johndoe/.ssh
      nano /home/johndoe/.ssh/authorized_keys # Вставте ваш публічний SSH-ключ
      chmod 600 /home/johndoe/.ssh/authorized_keys
      chown -R johndoe:johndoe /home/johndoe/.ssh
    3. Вимкніть вхід для користувача root і вхід за паролем, відредагувавши файл /etc/ssh/sshd_config:
      PermitRootLogin no
      PasswordAuthentication no
    4. Перезапустіть службу SSH:
      sudo systemctl restart sshd

Тепер у вас є основа для безпечного доступу до сервера

Зміцнення безпеки SSH

SSH – основний спосіб віддаленого доступу до VPS, тому важливо зміцнити його безпеку. Ось кілька рекомендацій:

  • Встановіть fail2ban для захисту від брутфорс-атак:
    sudo apt install fail2ban -y

    Логи роботи Fail2Ban зазвичай зберігаються в файлі /var/log/fail2ban.log. Якщо ви хочете змінити кількість спроб входу, час блокування та інші параметри, в директорії /etc/fail2ban створіть копію файлу jail.conf з назвою jail.local і працюйте в цьому файлі. Файли .local мають пріоритет над .conf, тому Fail2Ban буде використовувати ваші налаштування.

  • Використовуйте тільки аутентифікацію по SSH-ключах (вже налаштовано на попередньому кроці).
  • Змініть стандартний порт SSH (наприклад, на 2222) у файлі /etc/ssh/sshd_config:
    Port 2222
  • Обмежте доступ до SSH певним користувачам, додавши до /etc/ssh/sshd_config:
    AllowUsers johndoe
  • Увімкніть 2FA (двофакторну автентифікацію) за допомогою Google Authenticator або інших рішень.

Після внесення змін перезапустіть SSH:

sudo systemctl restart sshd

Налаштування двофакторної автентифікації (2FA)

Двофакторна автентифікація значно підвищує безпеку, вимагаючи додатковий одноразовий код при вході по SSH. Для налаштування 2FA за допомогою Google Authenticator виконайте наступні кроки:

    1. Встановіть модуль Google Authenticator PAM на сервері:
      sudo apt install libpam-google-authenticator -y
    2. Запустіть google-authenticator від імені користувача і слідуйте інструкціям для налаштування:
      su - johndoe
      google-authenticator
      

      Збережіть показані резервні коди в безпечному місці.

    3. Відредагуйте файл /etc/pam.d/sshd і додайте в кінець:
      auth required pam_google_authenticator.so
    4. Відредагуйте файл /etc/ssh/sshd_config і додайте/змініть:
      ChallengeResponseAuthentication yes
      AuthenticationMethods publickey,keyboard-interactive
      
    5. Перезапустіть службу SSH:
      sudo systemctl restart sshd
      

Тепер при вході по SSH буде запитуватися одноразовий код з додатку Google Authenticator на додаток до SSH-ключа.

Налаштування брандмауера

Брандмауер – важливий компонент захисту сервера, що дозволяє обмежити мережевий доступ. Рекомендується використовувати UFW (Uncomplicated Firewall) для налаштування правил брандмауера.

Встановити UFW

sudo apt install ufw -y

Налаштувати правила для дозволу потрібних сервісів

Наприклад:

sudo ufw allow 2222/tcp # SSH на порту 2222
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS

Активувати UFW

sudo ufw enable

ВАЖЛИВО: не вмикайте UFW до того, як дозволите підключення по SSH. Стандартний порт SSH — 22, якщо ви змінювали порт для SSH, вкажіть ваш порт.

Моніторинг сервера

Регулярний моніторинг сервера дозволяє вчасно виявляти потенційні проблеми та загрози безпеці. Деякі рекомендації:

  • Встановіть інструменти моніторингу, такі як Prometheus та Grafana, для збору і візуалізації метрик сервера.
  • Налаштуйте централізований збір і аналіз логів за допомогою рішень на кшталт ELK стека (Elasticsearch, Logstash, Kibana).
  • Використовуйте інструменти виявлення вторгнень, такі як OSSEC або Suricata, для виявлення підозрілої активності.
  • Регулярно переглядайте логи на предмет аномалій та ознак зламу.

Передача файлів на VPS

Для безпечної передачі файлів і ресурсів між локальною машиною та VPS використовуйте утиліту SCP. Наприклад, для передачі каталогу project користувачу johndoe на сервер:

scp -P 2222 -i ~/.ssh/vps_key -r ~/project johndoe@vps_ip:~/

Це дозволяє передавати дані по шифрованому з’єднанню SSH, не розкриваючи їх третім особам.

Висновок

Слідуючи детальним рекомендаціям з цієї статті, ви зможете створити безпечний VPS сервер, що підходить як для загальних завдань, так і для пентестингу. Ключові моменти:

  • Ретельно вибирайте провайдера та операційну систему
  • Виконайте початкове налаштування сервера і створіть нового sudo-користувача
  • Зміцніть безпеку SSH за допомогою fail2ban, нестандартного порту і обмеження користувачів
  • Налаштуйте двофакторну автентифікацію для входу по SSH
  • Сконфігуруйте брандмауер для обмеження мережевого доступу
  • Встановіть інструменти моніторингу і регулярно перевіряйте логи
  • Використовуйте SCP для безпечної передачі файлів

Не забувайте своєчасно встановлювати оновлення безпеки і стежити за новинами про вразливості. З правильним налаштуванням, регулярним моніторингом і пильністю ваш VPS стане надійною та безпечною платформою для ваших проектів та експериментів.

Залишити коментар

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.