111 lines
2.6 KiB
Markdown
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.
|