Порти та firewall

Завдання

  • Створіть нову security group, яка дозволяє доступ до порту 80 лише зсередини підмережі, в якій буде розміщений ваш інстанс та дозвіл на підключення до порту 22 лише з вашої поточної IP-адреси. (Ви можете підгледіти ваші адресні простори підмереж у сервісі VPC)

    img

Створіть інстанс з Ubuntu Server 22.04 або 24.04.

  • Призначте для нього security group, яку ви створили в попередньому завданні.

    img

  • Для того, щоб скріпт спрацював коректно, не забудьте в розділі Advanced options увімкнути доступ до метаданих, в тому числі версії V1.

    img

  • При створенні вкажіть user data(наведена нижче). Схожу операцію ми вже робили в ЛР 2.4.

    img

  • Створіть у розділі Load balancers нову Target group і додайте ваш інстанс в неї

    img

  • Створіть нову security group, яка дозволить доступ по порту 80 звідусюди

    img

  • Створіть новий Load balancer (Application load balancer) та вкажіть для нього security group, яку ви створили в попередньому завданні. Також, при створенні load balancer увімкніть опцію Web Application Firewall (AWS WAF)

img

  • Перевірте чи коректно все працює: при переході на DNS name балансувальника ви повинні бачити сторінку з інформацією про ваш інстанс, але при прямому підключенні до інстанса з’єднання не повинно відбуватись.

img

Завдання з зірочкою (опціональні)

  • Залогіньтесь на ваш інстанс та створіть у директорії /var/www/html/ якусь субдиректорію. Всередині створіть файл secret_admin_panel.html з наступним вмістом:
  • Перевірте що ви можете переглянути цей файл

img

  • Розгляньте і дослідіть сервіс WAF в AWS. Видаліть правила, які були налаштовані в ньому за замовчуванням і створіть власне правило, яке б дозволяло доступ до директорії з файлом secret_admin_panel.html лише для вашої поточної IP-адреси.

img

  • Перевірте що це правило працює спробувавши переглянути цей файл через інше підключення до інтернету, наприклад з телефона. Після зміни IP через впн

img

  • Поміркуйте які ще “скибочки” можна додати в цей бутерброд безпеки і які додаткові переваги вони можуть дати.
    • налаштувати https для домену, ще не знаю як взаємодіє балансир з web-application, можливо щоб спілкування між ними також по https було.
    • авторизація, аутентифікація для адмін панелі
    • налаштувати ролі і права користувачів
    • перед ssh поставити bastion
    • сховати admin panel за vpn або zerotrust сервіси (cloudflare-tunnel і т.д.)
    • і ще дуже багато чого на інших рівнях абстракції і забув найголовніше, налаштувати бекапи :)