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. Оновіть всі встановлені пакети до останніх версій:
      Plain text
      Copy to clipboard
      Open code in new window
      EnlighterJS 3 Syntax Highlighter
      sudo apt update && sudo apt upgrade -y
      sudo apt update && sudo apt upgrade -y
      sudo apt update && sudo apt upgrade -y
    2. Створіть нового користувача з правами sudo і налаштуйте аутентифікацію по SSH-ключу:
      Plain text
      Copy to clipboard
      Open code in new window
      EnlighterJS 3 Syntax Highlighter
      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
      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
      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
      /etc/ssh/sshd_config:
      Plain text
      Copy to clipboard
      Open code in new window
      EnlighterJS 3 Syntax Highlighter
      PermitRootLogin no
      PasswordAuthentication no
      PermitRootLogin no PasswordAuthentication no
      PermitRootLogin no
      PasswordAuthentication no
    4. Перезапустіть службу SSH:
      Plain text
      Copy to clipboard
      Open code in new window
      EnlighterJS 3 Syntax Highlighter
      sudo systemctl restart sshd
      sudo systemctl restart sshd
      sudo systemctl restart sshd

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

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

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

  • Встановіть fail2ban для захисту від брутфорс-атак:
    Plain text
    Copy to clipboard
    Open code in new window
    EnlighterJS 3 Syntax Highlighter
    sudo apt install fail2ban -y
    sudo apt install fail2ban -y
    sudo apt install fail2ban -y

    Логи роботи Fail2Ban зазвичай зберігаються в файлі

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

  • Використовуйте тільки аутентифікацію по SSH-ключах (вже налаштовано на попередньому кроці).
  • Змініть стандартний порт SSH (наприклад, на 2222) у файлі
    /etc/ssh/sshd_config
    /etc/ssh/sshd_config:
    Plain text
    Copy to clipboard
    Open code in new window
    EnlighterJS 3 Syntax Highlighter
    Port 2222
    Port 2222
    Port 2222
  • Обмежте доступ до SSH певним користувачам, додавши до
    /etc/ssh/sshd_config
    /etc/ssh/sshd_config:
    Plain text
    Copy to clipboard
    Open code in new window
    EnlighterJS 3 Syntax Highlighter
    AllowUsers johndoe
    AllowUsers johndoe
    AllowUsers johndoe
  • Увімкніть 2FA (двофакторну автентифікацію) за допомогою Google Authenticator або інших рішень.

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo systemctl restart sshd
sudo systemctl restart sshd
sudo systemctl restart sshd

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

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

    1. Встановіть модуль Google Authenticator PAM на сервері:
      Plain text
      Copy to clipboard
      Open code in new window
      EnlighterJS 3 Syntax Highlighter
      sudo apt install libpam-google-authenticator -y
      sudo apt install libpam-google-authenticator -y
      sudo apt install libpam-google-authenticator -y
    2. Запустіть google-authenticator від імені користувача і слідуйте інструкціям для налаштування:
      Plain text
      Copy to clipboard
      Open code in new window
      EnlighterJS 3 Syntax Highlighter
      su - johndoe
      google-authenticator
      su - johndoe google-authenticator
      su - johndoe
      google-authenticator
      

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

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

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

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

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

Встановити UFW

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt install ufw -y
sudo apt install ufw -y
sudo apt install ufw -y

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

Наприклад:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo ufw allow 2222/tcp # SSH на порту 2222
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw allow 2222/tcp # SSH на порту 2222 sudo ufw allow 80/tcp # HTTP sudo ufw allow 443/tcp # HTTPS
sudo ufw allow 2222/tcp # SSH на порту 2222
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS

Активувати UFW

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo ufw enable
sudo ufw enable
sudo ufw enable

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

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

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

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

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
scp -P 2222 -i ~/.ssh/vps_key -r ~/project johndoe@vps_ip:~/
scp -P 2222 -i ~/.ssh/vps_key -r ~/project johndoe@vps_ip:~/
scp -P 2222 -i ~/.ssh/vps_key -r ~/project johndoe@vps_ip:~/

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

Висновок

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

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

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

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

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