Kendimize ├Âzel VPN kurulumu ­čç╣­čçĚ

Kendimize ├Âzel VPN kurulumu ­čç╣­čçĚ

- 6 mins

VPN Kural─▒m

Bug├╝n sizlere kendinize ait VPN sistemi nas─▒l kurulur, onu anlatmak istiyorum, daha ├Ânce ─░ngilizce olarak, yay─▒nlad─▒m fakat T├╝rk├že bir kayna─č─▒n da faydal─▒ olabilece─čini d├╝┼č├╝nd├╝m. Burada anlat─▒lanlar, ubuntu ailesine (16.04,18.04) ait sunucular ├╝zerinde test edilmi┼čtir.

─░lk olarak bulut hizmeti sa─člayan bir ┼čirketten bu DigitalOcean, Google Cloud, Microsoft Azure veya Amazon olabilir, sunucu kiral─▒yorsunuz, en ucuzu ve makul olan─▒ DigitalOcean taraf─▒ndan sunulan ayl─▒k 5 dolar olan sunucu diyebilirim. Sunucuyu kiralad─▒ktan ve ssh ba─člant─▒s─▒n─▒ sa─člad─▒ktan sonra VPN kurulumuna ge├žebiliriz.

VPN hakk─▒nda tam bilgisi olmayan arkada┼člar i├žin ┼ču ┼čekilde ├Âzetlenebilir, sizin i├žin olu┼čturulmu┼č sanal bir ba─člant─▒ noktas─▒ gibi d├╝┼č├╝nebilirsiniz. Yani VPNÔÇÖe ba─čland─▒ktan sonra bilgisayar─▒n─▒zdan ├ž─▒kan ve bilgisayar─▒n─▒za gelen a─č trafik ┼čifrelenmi┼č olarak i┼členir. ├ť├ž├╝nc├╝ parti yaz─▒l─▒mlar─▒n veya MITM gibi sald─▒r─▒lar─▒n ├Ân├╝ne ge├žmi┼č olursunuz.

Neden kendi VPN sistemi kurmal─▒y─▒z ?

├ç├╝nk├╝ ┼ču anda var olan b├╝t├╝n VPN sistemleri, ├╝cretsiz olarak hizmet sa─člasa dahi, sizin bilgilerinizin sat─▒lmas─▒, ar┼čivlenmesi ve gerekti─činde ilgili birimlere aktar─▒lmas─▒ amac─▒yla kaydedilmektedir. Bunun ne gibi zararlar─▒ olabilir gelin birlikte ┼č├Âyle bir s─▒ralayal─▒m:

Burada s─▒ralananlar sadece buzda─č─▒n─▒n g├Âr├╝nen ucu bile diyemeyiz, g├╝n├╝m├╝zde veri i┼čleme teknikleri ve yakla┼č─▒mlar─▒ ├Âyle geli┼čmi┼čtir ki siz bile kendinize ait olan bir ┼čeyin varl─▒─č─▒na fark─▒nda olmadan onlar i┼člemleri tamamlam─▒┼č oluyor :).

Bu ve bunlardan ├žok daha fazla nedenden dolay─▒ VPN kullan─▒m─▒ ┼čart diyebilirim. Peki bunu nas─▒l yapaca─č─▒z, bu k─▒s─▒mdan sonra sizin bir bulut sa─člay─▒c─▒s─▒ taraf─▒ndan sunucunu kiralad─▒─č─▒n─▒z─▒ ve ssh ba─člant─▒s─▒n─▒ sa─člad─▒─č─▒n─▒z─▒ varsay─▒yorum.

Bu g├Ânderide WireGuard VPN uygulamas─▒ kullan─▒lacakt─▒r. WireGuard VPN uygulamas─▒ a├ž─▒k kaynakl─▒ bir uygulama olup, sa─člad─▒─č─▒ imkanlar sayesinde di─čer VPN uygulamalar─▒na (OpenVPN ve di─čerleri) k─▒yasla ├žok daha h─▒zl─▒ ve g├╝venilirdir.

Sunucu Ayarlar─▒

VPN uygulamas─▒n─▒ kiralad─▒─č─▒m─▒z sunucu ├╝zerine kural─▒m.

$ sudo apt-get update && sudo apt-get upgrade -y 
$ sudo add-apt-repository ppa:wireguard/wireguard
$ sudo apt-get update 
$ sudo apt-get install wireguard

Uygulamay─▒ ├žekirdek g├╝ncellemeleri ile birlikte g├╝ncellemek i├žin gerekli komutu girelim.

  $ sudo modprobe wireguard

A┼ča─č─▒da verilen komut girildi─činde beklenen sonu├ž.

$ lsmod | grep wireguard

wireguard             217088  0
ip6_udp_tunnel         16384  1 wireguard
udp_tunnel             16384  1 wireguard

Anahtarlar─▒ ├╝retelim

$ cd /etc/wireguard
$ umask 077
$ wg genkey | sudo tee privatekey | wg pubkey | sudo tee publickey

VPN Konfigurasyon dosyas─▒n─▒ /etc/wireguard/wg0.conf ayarlayal─▒m.


[Interface]
PrivateKey = <daha-├Âncesinde-├╝retilen-gizli-anahtar>
Address = 10.120.120.2/24
Address = fd86:ea04:1111::1/64
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
ListenPort = 51820

Burada ├Ânemli nokta ens3, ip tables komutu i├žerisinde yer alan en3, sunucudan sunucuya farkl─▒l─▒k g├Âsterebilir, bundan dolay─▒ sizin sunucunuzda ne ise a─č kart─▒n─▒n ismi onu girmelisiniz. ifconfig komutu sayesinde ├Â─črenilebilir.

Bir di─čer ├Ânemli nokta ise daha ├Âncesinde 4. ad─▒mda ├╝retilen privatekey, i├žeri─činin PrivateKey alan─▒na girilmesidir.

A─č trafi─čini y├Ânlendirme

/etc/sysctl.conf dosyas─▒ i├žerisine a┼ča─č─▒da verilen bilgileri girerek kaydediniz.

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

Bilgiler gerekli dosyaya kaydedildikten sonra a┼ča─č─▒daki komutlar s─▒ras─▒ ile girilmelidir.

$ sysctl -p
$ wg-quick up wg0

Komutlar─▒n girilmesi ve herhangi bir sorun g├Âr├╝lmemesi durumda ve wg komutu terminale girildikten sonra a┼ča─č─▒da verilen ├ž─▒kt─▒ya benzer bir ├ž─▒kt─▒ g├Âreceksiniz.

$ wg
interface: wg0
  public key: loZviZQpT5Sy4gFKEbk6Vc/rcJ3bH84L7TUj4qMB918=
  private key: (hidden)
  listening port: 51820

E─čer herhangi bir sorun ile kar┼č─▒la┼čmazsan─▒z bu ad─▒ma kadar, bu demek oluyor ki, sunucu taraf─▒nda i┼činiz ┼čimdilik tamamland─▒ geriye sadece kendi bilgisayar─▒m─▒z─▒, telefonumuzu vs VPN sunucusuna ba─člamak kald─▒.

Kullan─▒c─▒ Ayarlar─▒

Kullan─▒c─▒lar─▒n kendi bilgisayar ortamlar─▒nda, telefonlar─▒nda, tabletlerinde veya di─čer sunucular─▒nda kullanabilece─či uygulamalar─▒ buradan indirebilirsiniz.

Gerekli uygulamay─▒ kendi ortam─▒n─▒za indirdikten sonra tek yapman─▒z gereken, VPN sunucusu taraf─▒nda ayarlad─▒─č─▒m─▒z VPNÔÇÖe ba─članmak, bunun i├žin gerekli olan sadece konfigurasyonlar─▒ do─čru girmek olacakt─▒r.

Kullan─▒c─▒ taraf─▒nda, uygulama ├╝zerinden a┼ča─č─▒da verilen konfigurasyona benzer bir ayar─▒ (kendi kurdu─čunuz VPN ayarlar─▒na g├Âre privatekey ve ip adressi de─či┼čiklik g├Âsterecektir.) ayarlaman─▒z gerekmektedir.

[Interface]
Address = 10.120.120.2/32
Address = fd86:ea04:1111::2/128
# note that privatekey value is just a place holder 
PrivateKey = KIaLGPDJo6C1g891+swzfy4LkwQofR2q82pFR6BW9VM=
DNS = 1.1.1.1

[Peer]
PublicKey = <sunucunuza-ait-public-anahtar>
Endpoint = <sunucunuzun-d─▒┼č-ip-adresi>:51820
AllowedIPs = 0.0.0.0/0, ::/0

Gerekli i┼člemler kullan─▒c─▒ taraf─▒nda da sa─čland─▒ktan sonra, sunucu taraf─▒nda bu kullan─▒c─▒ya ba─člant─▒ izni vermek kal─▒yor, onuda a┼ča─č─▒da verilen komut ile sa─člayabilirsiniz.

$ wg set wg0 peer <kullanici-public-anahtari> allowed-ips 10.120.120.2/32,fd86:ea04:1111::2/128

Sunucu tarafindan kullanicinin VPN baglantisi sa─člad─▒─č─▒n─▒ a┼ča─č─▒da verilen komut ile teyit edebilirsiniz.

$ wg

interface: wg0
  public key: loZviZQpT5Sy4gFKEbk6Vc/rcJ3bH84L7TUj4qMB918=
  private key: (hidden)
  listening port: 51820

peer: Ta9esbl7yvQJA/rMt5NqS25I/oeuTKbFHJu7oV5dbA4=
  allowed ips: 10.120.120.2/32, fd86:ea04:1111::2/128

Daha sonrasinda, wireguard taraf─▒ndan olu┼čturulan a─č kart─▒n─▒ aktivate edelim.

$ wg-quick up wg0

G├╝venlik Duvar─▒ ayarlar─▒

Bazen sunucu taraf─▒nda yapman─▒z gereken baz─▒ g├╝venlik duvar─▒ ayarlar─▒ bulunmakta, bunlar VPN ba─člant─▒s─▒n─▒ ba┼čar─▒l─▒ bir ┼čekilde sa─člaman─▒z i├žin kritik ├Âneme sahiptir.

$ ufw enable

VPN uygulamas─▒na ba─članmam─▒z─▒ sa─člayacak portu a├ž─▒yoruz.


$ ufw allow 51820/udp

IP tablolar─▒ ile 51820 portu i├žin baz─▒ ayarlamalar yap─▒yoruz.

$ iptables -A INPUT -p udp -m udp --dport 51820 -j ACCEPT
$ iptables -A OUTPUT -p udp -m udp --sport 51820 -j ACCEPT

Burada ├Ânemli olan k─▒s─▒mlardan biriside b├╝t├╝n komutlar ROOT, yani y├Ânetici yetkisi ile yap─▒lmal─▒, aksi takdirde hata verecektir.

Bu noktadan sonra, bilgisayar─▒n─▒za, tabletinize veya telefonunuza kurdu─čunuz WireGuard uygulamas─▒ sayesinde sorunsuz ve g├╝venlikli bir ┼čekilde internetinizi kullanabilirsiniz.

Ahmet Turkmen

Ahmet Turkmen

Software Engineer

comments powered by Disqus
rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium cool-kubernetes stackoverflow reddit quora quora dev