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
AllowedIPsostavi samo mreže koje želiš kroz VPN (npr.192.168.1.0/24i10.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::/0za 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.1ili LAN IP servera (192.168.1.x) – po mogućstvu koristi key-based login i isključipasswordautentikaciju 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 samo10.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:
ufwiliiptables– dozvoli pristup servisima samo sa10.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)
- Instaliraj “WireGuard” aplikaciju iz prodavnice.
- U aplikaciji: + → Create from scratch ili uvoz
.conffajla. - 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.
eth0vsens18). - Rute: na klijentu proveri da
AllowedIPsobuhvata192.168.1.0/24(LAN) i10.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.
