Files
2026-04-12 22:26:26 +04:00

111 lines
2.6 KiB
Markdown

# Руководство по установке
## Требования
| Компонент | Версия | Назначение |
|-----------|--------|-----------|
| Linux | любой дистрибутив | ОС (raw sockets доступны только на Linux) |
| Go | ≥ 1.22 | Компиляция бэкенда |
| GCC | любая | Компиляция CGO (go-sqlite3) |
| libpcap-dev | любая | Захват пакетов |
| Bun | ≥ 1.1 | Сборка фронтенда |
## Установка зависимостей
### Debian / Ubuntu
```bash
sudo apt update
sudo apt install -y golang gcc libpcap-dev
# Bun
curl -fsSL https://bun.sh/install | bash
```
### Arch Linux / CachyOS
```bash
sudo pacman -S go gcc libpcap
# Bun
yay -S bun-bin
# или
curl -fsSL https://bun.sh/install | bash
```
### Fedora / RHEL
```bash
sudo dnf install golang gcc libpcap-devel
curl -fsSL https://bun.sh/install | bash
```
## Сборка и запуск
### 1. Клонирование репозитория
```bash
git clone <repo-url> dip-ids
cd dip-ids
```
### 2. Бэкенд
```bash
# Загрузить зависимости
go mod tidy
# Собрать бинарник
go build -o nids ./cmd/ids
# Запустить (sudo обязателен для live-захвата)
sudo ./nids
# API доступен на http://0.0.0.0:8080
```
Конфигурация загружается из `configs/config.yaml`. Альтернативный путь:
```bash
sudo ./nids /path/to/custom-config.yaml
```
### 3. Фронтенд (dev-режим)
```bash
cd frontend
bun install
bun run dev
# Панель доступна на http://localhost:3000
```
### 4. Фронтенд (production-сборка)
```bash
cd frontend
bun run generate
# Статические файлы в frontend/.output/public/
```
## Настройка интерфейса
Узнать имя сетевого интерфейса:
```bash
ip link show
# или
sudo tcpdump -D
```
Обновить в `configs/config.yaml`:
```yaml
capture:
default_interface: "enp3s0" # ← ваш интерфейс
```
## Права доступа
Live-захват требует доступа к raw sockets. Варианты:
**Вариант 1 (рекомендуется для разработки):**
```bash
sudo ./nids
```
**Вариант 2 — capabilities (без sudo):**
```bash
sudo setcap cap_net_raw,cap_net_admin=eip ./nids
./nids
```
**Вариант 3 — только PCAP анализ** (без специальных прав):
Загружайте готовые `.pcap` файлы через веб-панель, бэкенд можно запускать без sudo.