17b0cdfbac
- Introduced `08-structure.md` detailing project structure, main files, and versioning. - Created `README.md` for documentation overview and quick start guide. - Added user-specific configurations for Alacritty, Vim, Micro, Git, Zsh, Tmux, and tools. - Implemented system modules for desktop environment (KDE Plasma), audio (PipeWire), networking, and services (OpenSSH, GnuPG). - Configured Nix settings with flakes support and garbage collection. - Established user management for `ada` with necessary groups and shell settings. - Enabled VirtualBox guest additions for improved VM experience.
4.8 KiB
4.8 KiB
Сеть: SSH, Firewall, NetworkManager
Как настроить сетевые сервисы.
Где сетевые настройки?
Сеть находится в двух местах:
modules/networking/default.nix ← NetworkManager, Firewall
modules/services/default.nix ← SSH и другие сервисы
SSH настройки
SSH находится в modules/services/default.nix.
Текущие настройки
settings = {
# Только публичные ключи
PasswordAuthentication = false;
PubkeyAuthentication = true;
# root не может логиниться
PermitRootLogin = "no";
# Максимум попыток: 3
MaxAuthTries = 3;
# Максимум сессий: 2
MaxSessions = 2;
};
Открыть SSH на определённый порт
В modules/networking/default.nix:
# По умолчанию открыт порт 22
networking.firewall.allowedTCPPorts = [ 22 ];
# Если хочешь другой порт (например 2222):
networking.firewall.allowedTCPPorts = [ 2222 ];
И в modules/services/default.nix:
services.openssh.settings = {
Port = 2222; # Добавить эту строку
};
Firewall
Firewall находится в modules/networking/default.nix.
Открыть порты
networking.firewall.allowedTCPPorts = [ 22 ]; # SSH
# Добавить новые порты:
networking.firewall.allowedTCPPorts = [ 22 8080 3000 ];
Открыть приложение
# Автоматически открыть порты для приложения
services.transmission.openFirewall = true;
services.minecraft-server.openFirewall = true;
NetworkManager
NetworkManager позволяет управлять Wi-Fi и Ethernet.
Статус
# Статус сети
nmcli status
# Список Wi-Fi сетей
nmcli dev wifi list
# Подключиться к Wi-Fi
nmcli dev wifi connect "SSID" password "password"
Настройка Hostname
В modules/networking/default.nix:
networking.hostname = "nixos-vm";
# Изменить на:
networking.hostname = "my-machine";
Интернет соединение
Справка: NetworkManager управляет:
- Wi-Fi (connect/disconnect)
- Ethernet (автоматическое подключение)
- VPN (при установке клиента)
- Прокси (конфигурация)
Команды
# Включить/выключить Wi-Fi
nmcli radio wifi on/off
# Список подключений
nmcli con show
# Отключиться от сети
nmcli con down "connection-name"
VPN
VPN поддержка уже подготовлена в modules/services/default.nix:
# AmneziaVPN поддержка
services.amnezia.enable = true; # Если добавлено
DNS
Если нужно изменить DNS серверы:
# В modules/networking/default.nix
networking.nameservers = [ "1.1.1.1" "8.8.8.8" ];
Проверка после изменений
# Применить конфигурацию
nh os switch
# Проверить статус
systemctl status networking
systemctl status ssh
# Проверить firewall
sudo firewall-cmd --list-ports # Если используется firewalld
Диагностика
SSH не работает?
# Проверить статус
systemctl status ssh
# Посмотреть логи
sudo journalctl -u sshd -f
# Перезагрузить SSH
sudo systemctl restart ssh
Нет интернета?
# Проверить соединение
ping 8.8.8.8
# Проверить DNS
nslookup google.com
# NetworkManager статус
nmcli status
# Перезагрузить NetworkManager
sudo systemctl restart NetworkManager
Firewall блокирует?
# Проверить открытые порты
sudo nftables list tables # Или через nmap
nmap localhost # Сканирование локального машина
# Проверить конкретный порт
sudo netstat -tlnp | grep :8080
SSH ключи
Генерировать ключ (если нет)
ssh-keygen -t ed25519 -C "ada.dmitry@gmail.com"
# или
ssh-keygen -t rsa -b 4096 -C "ada.dmitry@gmail.com"
Добавить публичный ключ
Содержимое ~/.ssh/id_ed25519.pub нужно добавить на сервер в ~/.ssh/authorized_keys.
Общие команды
# Сетевые интерфейсы
ip link show
# IP адреса
ip addr show
# Маршруты
ip route show
# Слушающие порты
sudo netstat -tlnp
# DNS кэш
systemctl status systemd-resolved