127.0.0.1
Open in Telegram
🎩Пентест 🛡SOC 👮♂️Компьютерная криминалистика ♾️DevOps
Show more289
Subscribers
No data24 hours
No data7 days
-630 days
Posts Archive
289
Как раздать Vite+React проект через Nginx?
Допустим, у вас есть собранный проект Vite+React (см. вложение 1)
Приложение слушает порт 3000 по http. Как сделать так, чтобы контент раздавался без указания порта? Например: вместо example.com:3000 просто example.com?
Здесь на помощь приходит веб-сервер Nginx.
Шаги по настройке:
1. Установка веб-сервера
sudo apt update
sudo apt install nginx
2. Копируем содержимое папки dist/ в /var/www/example.com/
Разумеется, нужно создать директорий example.com перед этим.
mkdir /var/www/example.com/
sudo cp -r dist/* /var/www/example.com/
3. Дать права пользователю под которым обычно работает nginx
sudo chown -R www-data:www-data /var/www/example.com
chown - команда для смены владельцы файла или директории
R - для рекурсивного применения команды
www-data:www-data - новый владелец и группа
/var/www/example.com - путь к директории, где лежат статические файлы
4. Создание Nginx Config для example.com
sudo nano /etc/nginx/sites-available/example.com
туда вот что вставляем:
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
root /var/www/example.com;
index index.html;
location / {
try_files $uri /index.html;
}
}
5. Получение сертификата:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com
6. Активация конфига:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Подписывайся на 127.0.0.1289
Repost from Библиотека задач по DevOps | тесты, код, задания
Что содержит код Terraform?
289
FinalizersПри удалении томов, может возникнуть проблема как на скрине. Процесс удаления не завершается и зависает таким образом. Finalizers - это список "очистителей", которые блокируют удаление, пока не выполнится определенное действие. Например: Для
PersistentVolume это может быть kubernetes.io/pv-protection, которая защищает том от удаления, пока есть связанный PVC.
Если PVC уже удалён, но Kubernetes не успел "отвязать" PV, он остаётся в Terminating.
Принудительный вариант удаления:
kubectl edit pv pv-mysql
Найти строку с finalizers: и удалить весь блок:
metadata: finalizers: []Подписывайся на 127.0.0.1
289
+1
С помощью kOps хотел запустить кластер с 3 узлами, что-то пошло не так. Пока не совсем понятно в чем проблема. Воркер ноды не могут присоединиться с кластеру. Предполагаю, проблема связана с доступами. Будем дальше копать.
289
Repost from Топ кибербезопасности Батранкова
🎭 Вся жизнь — игра.
Так сказал Шекспир. И, пожалуй, был прав.
🔹Каждое утро — это начало новой партии.
🔹Каждое решение — ход, от которого зависит развитие событий.
🔹Кто-то выбирает играть по правилам. Кто-то — создавать свои.
🔹А кто-то — ломать чужие сценарии, будто это уровень в игре.
2081681993819799846 9947863334486277028 6522453884530548425 6394568209274196127 3801537852564845169 8519643907259916015 6281285460898883144 2712971531931755773 6620397247064840935 — точное число возможных комбинаций в игре Го, которые не противоречат правилам игры. В этом числе 171 цифра. Это как минимум на три порядка больше числа атомов во Вселенной, которых по разным оценкам от 10 в 80 степени до 3*10 в 168 степени.
В игре невозможно просчитать все ходы, как в шахматах. Нужна интуиция, стратегическое чутьё, понимание неопределённости — то, что долгое время считалось исключительно человеческим.
В 2016 году AlphaGo победила Ли Седоля, одного из сильнейших игроков, со счетом 4:1, что стало важной вехой в развитии ИИ. ИИ раньше не мог обыграть даже обычного спортсмена.
Однако у современных систем ИИ есть ограничения. Например, в 2023 году американец Келлин Пелрин выиграл 14 из 15 партий у ИИ KataGo, используя выявленные слабости алгоритма. Это показывает, что хотя ИИ превосходит большинство людей в Го, он все еще может быть уязвим к определенным стратегиям.
Го — это идеальная модель кибервойны.
🔹Не видно полной картины.
🔹Каждый ход влияет на общую стратегию.
🔹Нужно защищать свои территории, окружать вражеские, но не тратить ресурсы напрасно.
🔹Прямолинейность защиты — вообще не работает. Всегда атакующий находит обход.
🔹Ошибки могут проявиться через десятки шагов.
Точно так же мы строим защиту: через упреждение, баланс и стратегию. Мы должны думать не только о настоящем, но и о будущем. Учиться на ошибках. Быть гибкими, как искусственный интеллект.
Так что...
🎤 Добро пожаловать в новую партию.
Пусть это будет игра, в которой ты — не пешка, а мастер.
289
Скоро начну активно выкладывать контент про Kubernetes и CI/CD. Есть замечательная документация Kubernetes на их официальном сайте. Вопрос: На каком языке писать посты?
289
Типы монтирования
Docker и разница между ними
Volume (Том) - хранятся в части файловой системы хоста, который управляет Docker. Речь идет о
/var/lib/docker/volumes/Не-Docker-процессы не должны изменять эту часть файловой системы (лучший вариант монтирования).
Bind mount (связное монтирование) - может хранится в любом месте хост-системы. Может быть изменено разными процессами(нежелательно).
Tmpfs монтирования хранятся в RAM хост-системы и после перезагрузки контейнера содержимео tmpfs исчезает.
Подписывайся на 127.0.0.1289
19 раз ok, значит ок. Нужно было создать следующие роли для развертывания WordPress:
*Роль для установки БД MySQL
*Роль для развертывания Apache
В целом, одна команда делает следующие вещи:
*обновление кэша
*установить pkg-config
*установка pip3
*установка зависимостей для сборки mysqlclient
*установка PyMySQL через pip3
*установка PyMySQL пакетов
*установка Apache
*обеспечение запуска и автозапуска Apache
*установка WordPress из архива
*создание папки для WordPress
*распаковка WordPress
*настройка wp-config.php
*перезапуск Apache
🐍 Ansible и вообще IaC страшная сила
Подписывайся на 127.0.0.1
289
Как безопасно активировать подключение по SSH на Ubuntu?😁
sudo apt update
sudo apt install openssh-server -y
sudo service ssh start
systemctl status ssh
Устанавливаем порт SSH:
sudo nano /etc/ssh/sshd_config
В файлике находим строку
Убираем # перед Port 22
В целях безопасности можно ограничить количество подключаемых IP. Для этого можем воспользоваться утилитой Iptables.
Следующие действия сделают соединение по ssh доступным только для адреса 192.168.1.35:
sudo iptables -A INPUT -p tcp —dport 22 -s 192.168.1.35 -j ACCEPT
sudo iptables -A INPUT -p tcp —dport 22 -j DROP
Для сохранения:
sudo iptables-save | sudo tee /etc/iptables.rules
tee* - в отличие от > , позволяет одновременно записывать в файл и отображать данные в терминале.
После перезагрузки нужно будет каждый раз восстанавливать iptables следующим образом:
sudo iptables-restore < /etc/iptables.rules
Команда выше перезапишет текущие правила iptables на основе сохраненных настроек в /etc/iptables.rules. Не очень удобная конструкция🤡
Можно это дело автоматизировать для систем с systemd.
Создаем сервис:
sudo nano /etc/systemd/system/iptables.service
Добавляем в него:
[Unit]
Description=Load iptables rules
Before=network.target
[Service]
Type=oneshot
ExecStart=/sbin/iptables-restore < /etc/iptables.rules
ExecReload=/sbin/iptables-restore < /etc/iptables.rules
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Сохраняем и выполняем:
sudo systemctl daemon-reload
sudo systemctl enable iptables.service
sudo systemctl start iptables.service
и будет вам счастье🤨
Подписывайся на 127.0.0.1289
https://telegra.ph/apt--tar-01-27
Установка с помощью apt и tar -xvzf
APT является утилитой для поиска и загрузки пакетов из репозиториев. Благодаря dpkg* производится установка скачанных пакетов. Пакетный менеджер APT умеет эффективно решать зависимости.
Список репозиториев хранится в
/etc/apt/sources.list.
Может быть изменен пользователем.
apt - высокоуровневый менеджер пакетов.
dpkg* - система управления пакетами в Debian и дистрибутивах не его основе(Ubuntu for example). Низкоуровневый менеджер пакетов, используется для установки локальных пакетов.
deb - бинарный пакет, самый популярный формат пакетов дистрибутива Debian, Ubuntu, Mint и т.д.
Подписывайся на 127.0.0.1