Files
infra/servers/fr1.md

75 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# fr1 — `fr1.ruzzy.dev` (161.97.93.252)
Снимок состояния сервера. Секреты (пароли/токены) — только на сервере, не здесь.
**Провайдер:** Contabo VPS · France / Lauterbourg (Grand Est)
**ОС:** Ubuntu 24.04 LTS · kernel 6.8.0-106-generic
**Ресурсы:** 8 vCPU / 23 GB RAM / 387 GB
**hostname:** `fr1` (FQDN `fr1.ruzzy.dev` через `/etc/hosts`)
---
## Пользователи и доступ
- Пользователь `rus` (uid 1000, группы `rus`, `sudo`, `users`), sudo по паролю.
- Вход с Mac: `ssh rus-161` (алиас в `~/.ssh/config`) → ключ `~/.ssh/id_161_97_93_252` (ed25519).
- root-доступ по SSH закрыт; для root изнутри — `sudo -i`.
## SSH (`/etc/ssh/sshd_config.d/00-hardening.conf`)
```
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
KbdInteractiveAuthentication no
ChallengeResponseAuthentication no
MaxAuthTries 3
AllowUsers rus
```
Через socket-activation (`ssh.socket`).
## DNS
- Зона `ruzzy.dev` — Namecheap (NS `dns1/dns2.registrar-servers.com`).
- `fr1.ruzzy.dev` A → 161.97.93.252.
- PTR (reverse DNS): дефолтный `vmi3387709.contaboserver.net` (не менялся).
## Firewall (ufw)
- Default: deny incoming, allow outgoing.
- Открыто: `22/tcp`, `80/tcp`, `443/tcp` (IPv4 + IPv6).
## fail2ban (`/etc/fail2ban/jail.local`)
```
[DEFAULT]
bantime=1h findtime=10m maxretry=5
ignoreip = 127.0.0.1/8 ::1 31.153.37.106
backend=systemd banaction=ufw
[sshd] enabled=true
[recidive] enabled=true bantime=1w findtime=1d maxretry=5
backend=auto logpath=/var/log/fail2ban.log
```
## Обновления
- Ubuntu Pro подключён (аккаунт ruzzyrullezz@gmail.com): **livepatch**, **esm-infra**, **esm-apps** — enabled.
- unattended-upgrades: `Update-Package-Lists "1"`, `Unattended-Upgrade "1"` (ежедневно, security). Авто-reboot выключен.
## Система
- swap: `/swapfile` 2 GB (в `/etc/fstab`), `vm.swappiness=10` (`/etc/sysctl.d/99-swappiness.conf`).
- journald: `Storage=persistent`, `SystemMaxUse=500M`.
- AppArmor включён; время — systemd-timesyncd.
## Docker
- Docker 29.6 + Compose v5.1 (официальный репозиторий). `rus` в группе docker.
## Мониторинг (`~/monitoring`, stack в репо `stacks/monitoring/`)
- Стек: **Prometheus + Grafana + node-exporter + cAdvisor** (docker compose).
- Prometheus: retention 90d, слушает `127.0.0.1:9090`. Скрейпит node-exporter + cadvisor (job'ы `node`/`cadvisor`, instance `fr1`).
- Grafana: `127.0.0.1:3000` (наружу не торчит), datasource Prometheus провижится автоматически. Доступ — SSH-туннель. Пароль admin — в `~/monitoring/docker-compose.yml` на сервере (в репо вынесен в `${GF_ADMIN_PASSWORD}`).
- Планируется: VPN-экспортёры (wireguard/openvpn/telemt) + подключение `de1` по туннелю.
## Telegram-уведомления
- Бот @ultimate_log_bot. Конфиг `/etc/tg-notify.conf` (chmod 600, токен+chat_id — секрет на сервере).
- `/usr/local/bin/tg-notify.sh "msg"` — универсальная отправка (HTML, префикс hostname).
- `/usr/local/bin/uu-telegram-report.sh` — сводка автообновлений + reboot-required; повешен на `apt-daily-upgrade.service` через drop-in `/etc/systemd/system/apt-daily-upgrade.service.d/telegram.conf` (`ExecStartPost`). Молчит, если нечего сообщать.
## Установленные пакеты (сверх базы)
htop, mtr-tiny, tmux, vim, curl, wget, git, unzip, net-tools, dnsutils, ncdu, rsync, fail2ban, unattended-upgrades.