WireGuard VPN vodič: siguran udaljeni pristup firmi (Ubuntu server + Windows RDP)

Ovaj vodič prikazuje kako da postaviš WireGuard VPN na Ubuntu serveru sa javnom statičkom IP adresom i omogućiš bezbedan pristup Windows računarima (RDP) i servisima na serveru (SSH, SFTP/FTP, MySQL) isključivo kroz VPN tunel. Cilj je da ne izlažeš RDP/SSH/FTP portove internetu, već da sve ide kroz šifrovan VPN.


Arhitektura

  • Ubuntu server (u firmi) – WireGuard VPN server, javna statička IP (npr. 1.2.3.4), LAN npr. 192.168.1.0/24.
  • Windows računari (u firmi) – dostupni na privatnim IP adresama (npr. 192.168.1.10, 192.168.1.11).
  • Udaljeni korisnici (od kuće) – WireGuard klijenti (Windows/macOS/Linux/Android/iOS), dobijaju VPN IP (npr. 10.10.0.2, 10.10.0.3…).

1) Instalacija WireGuard-a na Ubuntu serveru

sudo apt update
sudo apt install wireguard -y

Generiši ključeve servera:

wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key
chmod 600 /etc/wireguard/server_private.key

2) Konfiguracija servera

Napravi fajl /etc/wireguard/wg0.conf:

sudo nano /etc/wireguard/wg0.conf

Ubaci sadržaj (prilagodi interfejs mreže – često je eth0 ili ens18):

[Interface]
Address = 10.10.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY

# NAT i propuštanje saobraćaja iz VPN-a prema LAN-u i Internetu
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Zameni SERVER_PRIVATE_KEY vrednošću iz /etc/wireguard/server_private.key.

Dozvoli IP forwarding

sudo sed -i 's/#\?net.ipv4.ip_forward=.*/net.ipv4.ip_forward=1/' /etc/sysctl.conf
sudo sysctl -p

Pokreni i omogući servis

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

3) Port forwarding na ruteru

Na ruteru prosledi UDP 51820 ka Ubuntu serveru (njegova LAN IP adresa). Ne izlaži RDP/SSH/FTP portove javno.


4) Dodavanje korisnika (klijenata)

Za svakog korisnika generiši par ključeva na serveru:

wg genkey | tee /etc/wireguard/client1_private.key | wg pubkey > /etc/wireguard/client1_public.key
chmod 600 /etc/wireguard/client1_private.key

Server: dodaj peer (na kraj wg0.conf):

[Peer]
# Klijent: npr. Marko-laptop
PublicKey = CLIENT1_PUBLIC_KEY
AllowedIPs = 10.10.0.2/32

Nakon izmene, učitaj konfiguraciju:

sudo wg syncconf wg0 <(wg-quick strip wg0)

Konfiguracija za klijenta (primer client1.conf)

[Interface]
Address = 10.10.0.2/24
PrivateKey = CLIENT1_PRIVATE_KEY
DNS = 1.1.1.1

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = 1.2.3.4:51820            # javna IP:port tvog servera
AllowedIPs = 192.168.1.0/24, 10.10.0.0/24
PersistentKeepalive = 25
  • Split-tunnel preporuka: U AllowedIPs ostavi samo mreže koje želiš kroz VPN (npr. 192.168.1.0/24 i 10.10.0.0/24). Internet ide van VPN-a.
  • Full-tunnel: Ako želiš da sav saobraćaj klijenta ide kroz firmu, koristi 0.0.0.0/0 (i po potrebi ::/0 za IPv6).

Instalacija na klijentu: korisnik na Windows-u instalira “WireGuard for Windows” → Import Tunnel → odabere .conf fajl i klikne “Activate”.


5) Pristup Windows računarima (RDP)

Nakon povezivanja na VPN, korisnik pokreće Remote Desktop Connection (mstsc) i unosi internu IP adresu Windows računara, npr. 192.168.1.10. Pošto RDP port nije izložen internetu, pristup je moguć samo kroz VPN.


6) Pristup Ubuntu servisima (SSH, SFTP/FTP, MySQL)

  • SSH/SFTP: klijent se povezuje na 10.10.0.1 ili LAN IP servera (192.168.1.x) – po mogućstvu koristi key-based login i isključi password autentikaciju u /etc/ssh/sshd_config.
  • MySQL: omogući pristup samo sa VPN mreže (bind na 127.0.0.1 + SSH tunnel ili bind na LAN/VPN interfejs i firewall pravila koja dozvoljavaju samo 10.10.0.0/24).
  • FTP: preporučeno SFTP (preko SSH). Ako baš treba FTP, ograniči ga firewall-om na 10.10.0.0/24.

7) Bezbednosne preporuke

  • Na ruteru otvori samo UDP 51820. Ne izlaži 3389/22/21/3306 javno.
  • Koristi snažne PIN-ove/lozinke za WireGuard klijente (aplikacije) i čuvaj privatne ključeve.
  • Instaliraj bazu pravila: ufw ili iptables – dozvoli pristup servisima samo sa 10.10.0.0/24.
  • Redovno ažuriraj sistem: sudo apt update && sudo apt upgrade.
  • Opciono: fail2ban za SSH i druge servise.

8) Više korisnika (primer)

Dodaj novi peer na serveru:

[Peer]
# Klijent: Jovana-desktop
PublicKey = CLIENT2_PUBLIC_KEY
AllowedIPs = 10.10.0.3/32

Napravite client2.conf sa Address = 10.10.0.3/24 itd. Svaki klijent ima sopstveni par ključeva i jedinstven VPN IP.


9) Mobilni telefoni (Android / iOS)

  1. Instaliraj “WireGuard” aplikaciju iz prodavnice.
  2. U aplikaciji: +Create from scratch ili uvoz .conf fajla.
  3. Uključi tunel pre RDP/SSH pristupa.

10) Provera i rešavanje problema

  • Status: sudo wg (pregled peera, handshakes, transfer).
  • Servis: systemctl status wg-quick@wg0.
  • Firewall/ruter: proveri da li je UDP 51820 prosleđen ka serveru; proveri da li je interfejs ime tačno (npr. eth0 vs ens18).
  • Rute: na klijentu proveri da AllowedIPs obuhvata 192.168.1.0/24 (LAN) i 10.10.0.0/24 (VPN).

FAQ (kratko)

Da li je WireGuard dovoljno siguran?
Da, koristi modernu kriptografiju (Noise Protocol Framework). Minimalan, brz i pouzdan.

Da li moram da menjam postojeći NAT?
Ne, samo prosledi UDP 51820 na ruteru ka Ubuntu serveru. RDP/SSH/FTP se više ne otvaraju javno.

Šta ako želim da ograničim ko vidi koje računare?
Koristi split ACL pristup: za svakog klijenta postavi specifične rute (AllowedIPs) i pravila na iptables/ufw.


Zaključak

WireGuard omogućava brz, moderan i jednostavan VPN za bezbedan udaljeni rad. Sa ovim podešavanjima, tvoji zaposleni pristupaju Windows računarima (RDP) i servisima na Ubuntu serveru isključivo kroz šifrovani tunel, bez izlaganja internih portova internetu.

Pristupačnost