# Step 001: WireGuard + UFW + SSH tylko po WG (Ubuntu 24.04, 1 NIC) Cel: na świeżym Ubuntu 24.04 na bare metalu ustawić: - **WireGuard** jako prywatny kanał administracyjny, - **SSH dostępne tylko przez WireGuard**, - przygotować grunt pod **Agave RPC dostępne tylko przez WireGuard** (8899/8900 prywatnie), - zostawić porty klastra Agave na publicznym NIC, żeby node mógł się zsynchronizować. Kolejność jest krytyczna: najpierw uruchom WireGuard i sprawdź, że działa, dopiero potem ograniczaj SSH/firewall. ## Założenia - Host ma **1 publiczny interfejs** (np. `enp1s0`). - WireGuard interfejs to `wg0`. - Masz dostęp awaryjny do konsoli (IPMI/KVM) na wypadek pomyłki. ## Parametry (dostosuj) ```bash export PUBLIC_IFACE="enp1s0" export WG_IFACE="wg0" export WG_SERVER_IP="10.66.66.1/24" export WG_SERVER_IP_ONLY="10.66.66.1" export WG_PORT="51820" export WG_CLIENT_IP="10.66.66.2/32" export WG_CLIENT_PUBKEY="" # Agave/validator ports export RPC_PORT="8899" export WS_PORT="8900" export DYNAMIC_PORT_RANGE="8000:8020" ``` ## 1) WireGuard (nie ruszaj jeszcze SSH) ### Instalacja ```bash apt-get update apt-get install -y wireguard ``` ### Klucze serwera ```bash umask 077 wg genkey | tee /etc/wireguard/server.key >/dev/null cat /etc/wireguard/server.key | wg pubkey | tee /etc/wireguard/server.pub >/dev/null cat /etc/wireguard/server.pub ``` ### Konfiguracja `/etc/wireguard/wg0.conf` ```bash cat >/etc/wireguard/${WG_IFACE}.conf <@10.66.66.1 ``` Jeśli działa: zablokuj publiczny SSH: ```bash ufw deny 22/tcp ufw status verbose ``` ## 4) Kernel/sysctl baseline pod Agave (na tym etapie bez uruchamiania Agave) Minimalne wartości, które już mamy w Ansible (i kilka dodatkowych bezpiecznych): ```bash cat >/etc/sysctl.d/90-agave.conf <<'EOF' fs.file-max = 2000000 vm.max_map_count = 1000000 net.core.somaxconn = 65535 net.core.netdev_max_backlog = 250000 net.core.rmem_max = 134217728 net.core.wmem_max = 134217728 EOF sysctl --system ``` Limity `nofile`: ```bash cat >/etc/security/limits.d/90-solana.conf <<'EOF' * soft nofile 1000000 * hard nofile 1000000 EOF ``` ## 5) Co dalej - Instalacja i uruchomienie Agave: patrz `doc/etap-007-manual-baremetal-rpc-commands.md`. - Narzedzia do generowania konfiguracji WireGuard (server/client) + reset wg0: patrz `doc/step-001-wireguard-tools.md`. - Docelowo: bind RPC/WS do WG IP (zamiast `0.0.0.0`) i spójne, minimalne reguły firewall.