Bloğa geri dön

Ubuntu 18.04 üzerinde OpenVPN Kurulumu

Ubuntu 18.04 üzerinde OpenVPN Kurulumu

Giriş

Güvenilir olmayan bir ağa (örneğin bir otel veya kafedeki Wi-Fi) bağlandığınızda akıllı telefonunuzdan veya dizüstü bilgisayarınızdan internete güvenli bir şekilde erişmek ister misiniz? Neyse ki, isteklerinizi gerçekleştirmenin bir yolu var. Şunu kullanarak güvenilmeyen bir ağa sanki özel bir ağdaymış gibi güvenle bağlanabilirsiniz: Sanal Özel Ağ (VPN).

VPN Nedir?

VPN, Sanal Özel Ağ (Virtual Private Network) anlamına gelir. Güvenilir bir sunucuya güvenli bir tünel açma imkanı sunar. Tüm istekler daha sonra bu sunucu üzerinden gönderilir ve alınır. Avantajı, bir oteldeki ücretsiz Wi-Fi gibi halka açık ağları kullanırken erişiminizi ve işlemlerinizi güvence altına almasıdır.

VPN aracılığıyla tüm veriler şifrelenir ve sunucu üzerinden işlenir. Üçüncü taraf yönlendiriciler ve benzerleri gibi arada bulunan cihazların, trafiği istenmeyen hedeflere yönlendirme imkanı yoktur. Ayrıca, bağlantı başarıyla kurulduktan sonra sunucu’nun ağının bir parçası olursunuz. Normalde yalnızca sunucu’nun yerel ağında erişilebilir olan diğer sunuculara, bilgisayarlara veya yazıcılar gibi cihazlara artık VPN tüneli üzerinden de erişilebilir. Ancak, tüm verilerin şifreli bir tünel üzerinden gönderilmesi gerekmediğinden, VPN istemcisini yalnızca isteklerin tanımlanmış bir kısmı VPN tüneli üzerinden gönderilecek şekilde yapılandırmak mümkündür. Trafiğin geri kalanı internet üzerinden normal şekilde işlenir.

Bu eğitimde, Ubuntu 18.04 üzerinde bir OpenVPN sunucusu kurma adımlarında size yol göstereceğiz.

Gereksinimler

Şu hizmetinizi barındırmak için bir Ubuntu 18.04 sunucusuna erişiminiz olmalıdır: OpenVPN hizmeti (bu eğitimi tamamlamak için). Bu kılavuza başlamadan önce, sudo izinlerine sahip root olmayan bir kullanıcı da yapılandırmanız gerekir. Sunucunuzu, şu eğitimimizi takip ederek kolayca kurabilirsiniz: Ubuntu sunucusu kurulumu eğitimi.

Ayrıca, şu görevde kullanılmak üzere ayrı bir bilgisayara ihtiyacınız olacak: sertifika yetkilisi (CA). Teknik olarak, OpenVPN sunucunuzu veya yerel bilgisayarınızı bir sertifika yetkilisi olarak kullanabilirsiniz. Ancak, bu durum VPN’inizi güvenlik açıklarına maruz bırakacağı için bunu önermiyoruz. Resmi OpenVPN belgelerine göre, sertifika yetkilisini sertifika isteklerini içe aktarmaya ve imzalamaya adanmış ayrı bir bilgisayara yerleştirmelisiniz. Bu nedenle, sertifika yetkilinizin, sudo izinlerine sahip root olmayan bir kullanıcıya ve temel bir güvenlik duvarına sahip ayrı bir Ubuntu 18.04 sunucusunda olduğunu varsayıyoruz. Bu kılavuz boyunca, tüm kurulum ve yapılandırma adımları her bir kurulum için olabildiğince basit olacaktır. Ayrıca şu eğitimimize de göz atabilirsiniz: Docker altında Open VPN sunucusunun nasıl kurulacağı.

Adım 1 – OpenVPN ve EasyRSA Kurulumu

İlk olarak, VPN sunucu’nuzun paket dizinini güncelleyin ve OpenVPN’i kurun. OpenVPN varsayılan Ubuntu depolarında mevcut olduğundan, apt kullanarak kurabilirsiniz:

Adım 2: Bir sertifika yetkilisi oluşturun

OpenVPN sunucusu için güvenilir sertifikalar düzenlemek üzere basit bir sertifika yetkilisi (CA) oluşturun. Bunu yapmak için, wget kullanarak hem CA makinenize hem de OpenVPN sununuza EasyRSA'nın en son sürümünü indirin. En son sürümü edinmek için resmi EasyRSA GitHub projesinin Sürümler (Releases) sayfasına gidin, .tgz ile biten dosyanın indirme bağlantısını kopyalayın ve aşağıdaki komuta yapıştırın:

Ardından, tar arşivini çıkarın:

 OpenVPN EasyRSA software

Bu noktada, gerekli tüm yazılımlar CA bilgisayarınıza ve sunucunuza başarıyla kurulmuştur.

Adım 3 – EasyRSA değişkenlerini yapılandırın ve CA'yı oluşturun

EasyRSA, bu komutu kullanarak CA'nız için bir dizi değişken tanımlamak üzere düzenleyebileceğiniz bir yapılandırma dosyasıyla birlikte gelir:

Dizinde vars.example adında bir dosya bulunmaktadır. Bu dosyanın bir kopyasını oluşturun ve kopyayı dosya uzantısı olmadan vars olarak adlandırın:

Bu yeni dosyayı açmak için tercih ettiğiniz metin düzenleyiciyi kullanın:

Ardından, yeni sertifikalar için alan varsayılanlarını ayarlayan ayarları bulun. Şuna benzer olacaktır:

Bu değişkenleri aşağıda gösterildiği gibi istediğiniz şekilde güncelleyin:

Hazır olduğunuzda dosyayı kaydedip kapatın. Bir sonraki adım, CA sunucusunda açık anahtar altyapısını başlatmak için easyrsa betiğini çağırmak ve init-pki seçeneğiyle çalıştırmaktır:

easyrsa init-pki

Ardından, CA'nızla her etkileşime girdiğinizde sizden şifre istenmemesi için build-ca komutunu nopass seçeneğiyle çalıştırın:

Çıktıda, CA'nız için ortak adı doğrulamanız istenecektir:

 OpenVPN build-ca

Bununla birlikte, CA'nız hazır hale gelir ve sertifika isteklerini imzalamaya başlamaya hazırdır.

Adım 4 – Sunucu sertifikası, anahtarı ve şifreleme dosyalarını oluşturma

CA hazır olduktan sonra, sunucudan özel anahtarı ve sertifika isteğini oluşturabilir ve ardından gerekli sertifikayı oluşturarak imza için CA'ya gönderebilirsiniz. İlk olarak, OpenVPN sunucusundaki EasyRSA dizinine gidin:

Buradan, easyrsa betiğini init-pki seçeneğiyle çalıştırın. Bu komutu CA bilgisayarında zaten çalıştırmış olsanız da, burada da çalıştırılması gerekir. Bunun nedeni, sunucunun ve CA'nın PKI dizinlerinin farklı olmasıdır:

Ardından easyrsa betiğini bu kez gen-req seçeneği ve ardından bilgisayarın’ genel adı ile tekrar çağırın:

Bu, sunucu için özel bir anahtar ve server.req adında bir sertifika istek dosyası oluşturacaktır. Sunucu anahtarını /etc/openvpn/ dizinine kopyalayın:

server.req dosyasını güvenli bir yöntem kullanarak (aşağıdaki örnekte SCP gibi) CA bilgisayarınıza aktarın:

Ardından, CA bilgisayarınızdaki EasyRSA dizinine gidin:

server.req dosyasını içe aktarmak ve dosya yolundan sonra ortak adını eklemek için easyrsa betiğini tekrar kullanın:

Ardından, easyrsa betiğini sign-req seçeneği ve ardından istek türü ile ortak adı belirterek çalıştırıp isteği imzalayın. OpenVPN sunucusunun sertifika isteği için, sunucu istek türünü kullandığınızdan emin olun:

Çıktı, isteğin güvenilir bir kaynaktan geldiğini doğrulamanızı ister. Onaylamak için yes yazın ve Enter tuşuna basın. Doğruluğundan emin olmak için lütfen aşağıda gösterilen ayrıntıları kontrol edin. Lütfen bu isteğin henüz şifreyle doğrulanmadığını unutmayın.

Konuyu talep edin ve bunu 3650 gün boyunca bir sunucu sertifikası olarak imzalayın:

 OpenVPN sign certificate for server

CA anahtarını şifrelediyseniz, bu noktada sizden şifre istenecektir. Ardından, imzalı sertifikayı VPN sunucunuza geri aktarmak için güvenli bir yöntem kullanın:

CA bilgisayarından çıkış yapmadan önce ca.rt dosyasını sunucuya aktarın:

Ardından, OpenVPN sunucunuza tekrar giriş yapın ve server.crt ile ca.crt dosyalarını /etc/openvpn/ dizininize kopyalayın:

Ardından, EasyRSA dizininize gidin:

Anahtar değişimi sırasında kullanabileceğiniz güçlü bir Diffie-Hellman anahtarı oluşturmak için aşağıdaki kodu girin:

İşlem tamamlandığında, sunucunun TLS sağlık kontrolü işlevselliğini iyileştirmek için bir HMAC imzası oluşturun:

Komut tamamlandığında, iki yeni dosyayı / etc / openvpn / dizinine kopyalayın:

Bu şekilde, sunucu için gerekli tüm sertifikalar ve anahtar dosyaları oluşturulmuş olur. Şimdi, istemci bilgisayarın OpenVPN sunucusuna erişmek için kullanacağı uygun sertifikayı ve anahtarı oluşturabilirsiniz.

Adım 4 – İstemci sertifikası ve anahtar çifti oluşturma

Ardından, bir istemci anahtarı ve birkaç sertifika oluşturacağız. Birden fazla istemciniz varsa, bu işlemi her istemci için tekrarlayabilirsiniz. Ancak, her istemci için betiğe benzersiz bir ad değeri iletmeniz gerektiğini unutmayın. Bu kılavuzda, ilk sertifika/anahtar çiftini client1 olarak adlandıracağız. İlk olarak, istemci sertifikalarını ve anahtar dosyalarını depolamak için ev dizininizde bir dizin yapısı oluşturun:

Güvenlik nedenleriyle sertifika/anahtar çiftini ve istemcinin yapılandırma dosyasını bu dizine kaydettiğiniz için, şimdi izinleri kısıtlamalısınız:

Ardından tekrar EasyRSA dizinine gidin ve easyrsa betiğini gen-req ve nopass seçeneklerinin yanı sıra istemcinin genel adıyla çalıştırın:

Ortak adı onaylamak için Enter tuşuna basın. Bundan sonra, client1.key dosyasını önceden oluşturulmuş olan / client-configs / keys / dizinine kopyalayın:

Ardından, client1.req dosyasını CA bilgisayarınıza aktarmak için güvenli bir yöntem kullanın:

CA bilgisayarınıza giriş yapın, EasyRSA dizinine gidin ve sertifika isteğini içe aktarın:

import client.req

Ardından, önceki adımda olduğu gibi, sunucudaki isteği imzalayın. Ancak bu sefer istemci istek türünü belirtmeniz gerekir:

İstendiğinde, sertifika isteğini imzalamak istediğinizi ve sertifika isteğinin güvenilir bir kaynaktan geldiğini onaylamak için yes yazın. Devam etmek için lütfen “yes” kelimesini girin veya iptal etmek için başka bir şey girin:

sign certificate

CA anahtarını şifrelediyseniz, burada da şifreyi girmeniz istenecektir. Bu, client1.crt adında bir istemci sertifikası dosyası oluşturacaktır. Bu dosyayı sunucuye geri aktarın:

OpenVPN sunucunuza tekrar SSH ile bağlanın ve istemci sertifikasını / client-configs / keys / dizinine kopyalayın:

Ardından, ca.crt ve ta.key dosyalarını / client-configs / keys / dizinine kopyalayın:

Böylece sunucunun ve istemcinin tüm sertifikaları ve anahtarları oluşturulmuş ve sunucudaki ilgili dizinlere kaydedilmiş oldu. Şimdi sunucuda OpenVPN kurulumuna devam edebilirsiniz.

 Adım 5 – OpenVPN servisinin yapılandırılması

İstemci ve sunucu sertifikalarını oluşturduktan sonra, OpenVPN servisini bu kimlik bilgilerini kullanacak şekilde yapılandırabilirsiniz. İlk olarak, OpenVPN örnek yapılandırma dosyasını yapılandırma dizininize kopyalayın ve ardından kurulum temeli olarak kullanmak üzere çıkartın:

Sunucu yapılandırma dosyasını tercih ettiğiniz metin düzenleyicide açın:

Ardından, tls-auth komutunu arayarak HMAC bölümünü bulun:

Yorum satırı yapılmış şifre satırını arayarak şifre bölümünü bulun. AES-256-CBC şifrelemesi iyi bir şifreleme düzeyi sunar ve yaygın olarak desteklenir. Satırın yorum satırı olmaması gerekir, ancak öyleyse başındaki “;” işaretini silin:

Bunun altına, HMAC mesaj özet algoritmasını seçmek için bir Auth komutu ekleyin. Bunun için SHA256 iyi bir seçimdir:

Ardından, Diffie-Hellman parametrelerini tanımlayan dh ifadesinin bulunduğu satırı bulun. EasyRSA'daki bazı son değişiklikler nedeniyle, Diffie-Hellman anahtar dosya adı, örnek sunucu yapılandırma dosyasında listelenen dosya adından farklı olabilir. Gerekirse, önceki adımın anahtarıyla uyumlu hale getirmek için buradaki dosya adından 2048'i silerek değiştirin:

Son olarak, user ve group ayarlarını bulun ve her satırın başındaki “;” işaretini silin:

Şu ana kadar örnek server.conf dosyasında yaptığınız değişiklikler OpenVPN'in çalışmasını sağlamalıdır.

Adım 6 – Sunucu ağ yapılandırması

Trafiği VPN üzerinden düzgün bir şekilde yönlendirmek için IP yönlendirmeyi yapılandırın. Bu, sunucunuzun sağladığı VPN işlevselliği için gereklidir:

net.ipv4.ip_forward ayarını yapan yorum satırını arayın. Bu ayarı etkinleştirmek için satırın başındaki “#” karakterini kaldırın:

İşiniz bittiğinde dosyayı kaydedip kapatın. Dosyayı okumak ve mevcut oturum için değerleri ayarlamak için şunu yazın:

sysctl -p

Ardından, makinenizin genel ağ arayüzünü ekleyin:

Genel arayüzünüz, bu komutun çıktısında “dev” kelimesinden sonra gelen dizedir. Örneğin, bu sonuç ens3 adlı arayüzü gösterir.

default ip route

İlgili yapılandırmayı eklemek için /etc/ufw/before.rules dosyasını açın:

Dosyanın üst kısmına doğru, nat tablosundaki POSTROUTING zinciri için varsayılan politikayı ayarlamak ve VPN'den gelen tüm trafiği maskelemek (masquerade) için aşağıdaki vurgulanmış satırları ekleyin. Aşağıdaki -A POSTROUTING satırındaki ens3 ifadesini yukarıdaki komutta bulduğunuz arayüzle değiştirin:

İşiniz bittiğinde dosyayı kaydedip kapatın. Ardından, UFW'ye varsayılan olarak yönlendirilen paketlere de izin vermesini söylemeniz gerekir. Bunu yapmak için /etc/default/ufw dosyasını açın:

İçeride, DEFAULT_FORWARD_POLICY yönergesini bulun ve değeri DROP yerine ACCEPT olarak değiştirin:

İşiniz bittiğinde dosyayı kaydedip kapatın. Ardından, OpenVPN'e giden trafiği etkinleştirmek için güvenlik duvarını ayarlayın. Eğer /etc/openvpn/server.conf dosyasındaki portu ve protokolü değiştirmediyseniz, 1194 portuna UDP trafiğini açmanız gerekecektir. Portu ve/veya protokolü değiştirdiyseniz, burada seçtiğiniz değerleri kullanın. Önkoşul kılavuzunu takip ederken SSH portunu eklemeyi unuttuysanız, onu da buraya ekleyin:

Bu kuralları ekledikten sonra, UFW'yi yeniden başlatmak ve değiştirdiğiniz tüm dosyalardaki değişiklikleri yüklemek için devre dışı bırakıp tekrar etkinleştirin:

ufw commands

Tebrikler, sunucunuz artık OpenVPN trafiğini doğru şekilde işleyecek şekilde yapılandırıldı!

Sonuç

Bu kılavuzu sonuna kadar takip ettiyseniz, artık internette güvenle gezinebilirsiniz. Kimliğinizi, konumunuzu ve trafiğinizi meraklı gözlerden uzak tutabileceksiniz.

Keyifli kullanımlar!

 

 

author

Akshay Nagpal

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.