Hava alanları, oteller ve kafeler gibi ücretsiz wifi hizmetinin bulundugu yerlerde internette gezinirken trafiğiniz başkaları tarafından izlenebilir. Böyle bir durumda kişisel bilgilerinizin güvenliği daha da ön plana çıkmaktadır. Güvenli olmayan bir ağda gezinirken VPN(Virtual Private Network) sayesinde ağ trafiğinizin izlenmesini engelleyebilirsiniz. VPN ile ayrıca bulunduğuz lokasyonda engellenmiş olan veya o lokasyona hizmet vermeyen sitelere de erişim sağlayabilirsiniz. Bu yazıda sizlere bir açık kaynak yazılım olan OpenVPN’nin CentOS 7 sunucunuza nasıl kurulacağı ve yapılandırılacağı anlatılacaktır.
Kurulum
Aşağıda verilmiş olan komutlar sırası ile çalıştırılır.
- Öncelikle paket depomuzu güncelleştiriyoruz ve gerekli olan yazılımları paket deposu yardımı ile indiriyoruz.
1 2 3 |
yum update yum install epel-release yum install openvpn easy-rsa -y |
- Yazılımlar kurulduktan sonra şimdi de yapılandırma işlemlerine başlıyoruz. İlk olarak gerekli dosyaları ilgili dizine taşıyoruz ve dosyayı açıp düzenlemelere başlıyoruz. (Aşağıdaki komutta ‘*’ işaretinin bulunduğu yerde kurduğunuz openvpn yazılımının sürüm numarası bulunmalıdır.)
1 2 |
cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/ nano /etc/openvpn/server.conf |
- Dosya içerisindeki yapılması gereken değişiklikler ekran alıntısı şeklinde gösterilmiştir.
Şifreleme için Diffie-Hellman şifrelemesi 2048 byte Easy RSA kullanılacağından dolayı dosya içerisinde “dh dh2048.pem” olduğundan emin olmalıyız.
Openvpn sisteminin herhangi bir yetkiye veya önceliğe ihtiyaç duymadan çalışması için gerekli olan düzenlemeyi de yaptıktan sonra değişiklikleri kaydedip dosyayı kapatıyoruz.
- Şimdi de anahtar ve sertika üretimi için şu komutları kullanıyoruz. (2. komutta bulunan ‘*’ işareti dizinde bulunan tüm dosyalar anlamına gelmektedir.)
1 2 3 |
mkdir -p /etc/openvpn/easy-rsa/keys cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa nano /etc/openvpn/easy-rsa/vars |
- Açtığımız ‘vars’ dosyası içerisinde işlemlerimizi kolaylaştırmak adına sadece ‘KEY_’ ile başlayan parametreler üzerinde değişiklikler yapacağız.
Parametreleri isteğiniz doğrultusunda doldurabilirsiniz. Fakat KEY_NAME parametresi “server” olarak belirlenmez ise ‘server.key’ ve ‘server.crt’ dosyalarında da değişiklik yapılması gerekir.
1 2 3 4 5 6 |
cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf cd /etc/openvpn/easy-rsa source ./vars ./clean-all ./build-ca ./build-key-server server |
- Yukarıdaki komutlar sırası ile çalıştırılır. Komutları çalıştırırken sorulan herşey için “enter” tuşuna basılarak geçilebilir. Bu adımlardan sonra şu komut çalıştırılır.
- Aşağıdaki komut ile de Diffie-Hellman anahtar değişim dosyayası oluşturulur. Bu işlem bizim server anahtarı ve sertifikasi icin gereklidir. Oluşturulan bu dosyaları openvpn dizinimize kopyalıyoruz.
1 2 3 |
./build-dh cd /etc/openvpn/easy-rsa/keys cp dh2048.pem ca.crt server.crt server.key /etc/openvpn |
Eğer istersek kullanıcılara isimler verip onlar için özel key ve sertifika oluşturabiliriz. Biz burada kullanıcıyı, ‘client’ olarak adlandırdık.
1 2 |
cd /etc/openvpn/easy-rsa ./build-key client |
- Aşağıdaki komut ile dosyayı açıp:
1 |
nano /etc/sysctl.conf |
Dosyanın üst kısmına şu satırı ekliyoruz ve network servisini yeniden başlatıyoruz.
net.ipv4.ip_forward = 1
1 |
systemctl restart network.service |
- OpenVPN yazılımı artık sisteme kuruldu ve yapılandırıldı. Çalıştırılması için de şu komutları verdikten sonra sunucu kısmında yapılması gereken adımları tamamlamış olacağız.
1 2 |
systemctl -f enable openvpn@server.service systemctl start openvpn@server.service |
Ekran alıntısında da gördünüz üzere openvpn sunucuda aktif olarak çalışıyor:
Kullanıcı Kısmında Yapılması Gerekenler
- Sunucuda üretilmiş olan ve kullanıcı için gerekli olan şu dosyaları kullanıcı bilgisayarına kopyalamaya başlayalım.
/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/client.crt
/etc/openvpn/easy-rsa/keys/client.key
Bu işlem için FileZilla gibi yardımcı programları kullanabiliriz.
- Dosyaları kopyalama işlemimiz bittikten sonra kullanıcı bilgisayarında şu bilgileri içeren .ovpn uzantılı bir dosya oluşturuyoruz. Bu dosyayı oluştururken yapılandırma dosyalarında belirlenmiş olan özellikler göz önünde bulundurulmalıdır. En altta istenen dosya yolları ise ilgili dosyanın kullanıcı bilgisayarında bulunduğu konum içindir.
1234567891011121314 clientdev tunproto tcpremote SUNUCU_IP 1194resolv-retry infinitenobindpersist-keypersist-tuncomp-lzoverb 3ca /path/to/ca.crtcert /path/to/client.crtkey /path/to/client.key
- Kullanıcı bilgisayarının sahip olduğu işletim sistemine göre buradan yardımcı programlar indirilip kurulmalıdır.
- Windows için:*.ovpn uzantılı dosya “C:\Program Files\OpenVPN\config” yoluna kaydedilmelidir.
- Linux için:Depo yöneticisi yardımı ile OpenVPN indirilebilir ve şu komut ile kullanılabilir. (Komutun son kısmında oluşturulan *.ovpn uzantılı dosyanın yolu girilmelidir.)
1sudo openvpn --config ~/path/to/clinet.ovpn