CGNAT’ı atlatma: VPN ile Port Yönlendirme Kılavuzu

Vakti zamanında CGNAT Nedir demiş ve gerekli açıklamalarda bulunmuştuk. Ziyaretçilerimizin kafasındaki sorulara yanıt bulmaya çalışmıştık.

CGNAT günümüzde özellikle büyük ISP’lerin bölgeleri ölçeklendirme de kullandıkları bir yapı, IPv4’lerin bittiği şu günlerde kısıtlı imkanlar ile büyük ağlardaki kullanıcıya hizmet verilebiliyor. Hatta private dediğimiz lokal network iplerini bile dışarı açıp kullanabilme imkanımız var.

Bu yapılanlar bir yana CGNAT içerisinde olan bir kişi dışarıya port yönlendirmesi yapamaz. Hatta kimi yapılandırmalar da kullanıcıların VPN servislerine bağlanması bile kısıtlanabilir.

Yapılandırmamıza başlamadan önce VPN için bir servis belirlemeniz gerekiyor paralı servisler direk olarak port yönlendirme hizmeti sunuyor ise aşağıdaki yapacaklarınızı pas geçip direk firmanın size sunmuş olduğu özelliği kullanabilirsiniz. Sunucu kuracaksanız da bu makalemize devam edin.

AWS EC2’nin serbest katman özelliğiyle başladık, bu da ihtiyacım olan şey için fazlasıyla yeterli, ayrıca bir yıl da ücretsiz. Ücretsiz kullanım bittikten sonra devam edebilir ve tercih ettiğiniz Linux dağıtımını kullanmaya devam edebilirsiniz.

Burada önemli olan nokta makinaya OpenVPN kurmanız gerektiği, bunun için daha önceden yayınladığım bir makalemi kullanabilirsiniz Ubuntu Üzerine OpenVPN kurulumunu gerçekleştirebilirsiniz.

Çalışmasını istediğimiz VPN tunel sistemi

network-semasi-cgnatPin

Yukarıdaki şemadaki yeşil rota, bir VPN sunucusu yoluyla Masaüstüne ulaşmak için uzak bilgisayar arasındaki bağlantıyı gösterir.

Temel olarak, Masaüstü bilgisayarınızın bir istemci vasıtasıyla VPN sunucusuna bağlanması gerekir; bu, Desktop’ın sanki VPN sunucusu ile aynı ağda olduğu gibi olacak bir tünel oluşturacaktır.

İçeri girdiğinizde ayarlamaları ve yönlendirmeleri yapmak için AWS EC2 makinasının SSH bağlantısına kabuk aracılığı ile tekrar erişmeliyiz ki AWS EC2 makinanın ayarlarına ulaşıp port yönlendirmesini yapabilelim.

Peki port yönlendirme işlemi nasıl yapılacak

Makinamız ubuntu olduğu için /etc/ufw/before.rules konumundaki dosyayı açıyoruz ve içerisini aşağıdaki gibi düzenliyoruz.

*nat
-A PREROUTING -i eth0 -p tcp --dport 4343 -j DNAT --to-destination 10.10.10.10:4343
-A PREROUTING -i eth0 -p udp --dport 4343 -j DNAT --to-destination 10.10.10.10:4343
...
COMMIT  

10.10.10.10 numaralı ip adresi bizim temelde kullandığımız makina IP adresimizdir. VPN bağlandığımızda OpenVPN bize yapılan konfigürasyona göre 10.* ile başlayan bir ip verecektir.

Yukarıdaki satırların aslında yaptığı temelde 4343 numaralı bağlantı noktasındaki sunucumuza 4343 numaralı bağlantı noktasındaki istemcimizin bilgisayarına yapılan bağlantıları yönlendirir.

Ayarların başarılı olabilmesi için güvenlik duvarında bi yeniden başlatma işlemi yapmamızda gerekiyor.

sudo ufw disable  
sudo ufw enable  

Eğer VPN sunucusuna bağlıysanız bağlantınızı yeniden başlatmanız gerektiğinide unutmayın.

Benim bahsettiğim gibi AWS kullanıyorsanız. Port ayarlarınıza CGNAT için açtığınız portu belirtmeniz ve güvenlik kurallarını güncellemeniz gerekir.

Bağlantınızın çalışıp çalışmadığını ise karşı bilgisayara aşağıdaki gibi bir istek atarak anlayabilirsiniz.

ssh -p2222 mertcan@<sunucu-ip>

Kullanıcı, mertcan benim masaüstü bilgisayarımda var, ancak AWS sunucumda yok. Bununla birlikte, AWS sunucusunun IP adresinden mertcan olarak oturum açmamın nedeni, port 4343’den AWS sunucusundan masaüstü bilgisayara bağlantıları iletmesinden kaynaklanıyor, dolayısıyla burada SSH girişi aslında masaüstü bilgisayarda AWS sunucusu oluyor.

Her şey gayet güzel giderse makinaya bağlantı sağlayabilecek ve açık portunuz ile istediğinizi yapabileceksiniz.

Sistem Uzmanı, Linux Hacısı, El-Kernel

“CGNAT’ı atlatma: VPN ile Port Yönlendirme Kılavuzu” üzerine 3 yorum

  1. Cgn problemi bende de var. Ben digital ocean vps kullanıyorum. Google ın açık kaynak projesi olan outline manager programı ile vpn serverimi kurdum. Yanlız ben vpn serverimi kullanırken port da kullanmam gerek. Mesela vpn sunucuma bağlandığımda 4444 numaralı portu kullanmak istiyorum. Bir programa 4444 numaralı portu yazdığımda , bu port ile benim bilgisayarımın veri iletişimi olmasını istiyorum. Bu yazınızı yeni gördüm. Eğer gerekirse openvpn ile kurarım vpn sunucumu. Fakat bana şunun cevabını verin lütfen. Mesela ben vpn kullanıcısına port kullanma hakkını tanımlayabilirmiyim? Yani vps serverda istediğimiz kadar port açıp kullanabiliyoruz. Aynısını vpn ile bağlanan kişide kullanabilir mi? Demin dediğim gibi 4444 numaralı portu veya 1 den fazla portu vpn ile kullanabilirmiyim? Lütfen bana cevap yazınız. Metro internet kullanıyorum . Port açamıyorum. Çok sıkıntıdayım. Bana yardımcı olun lütfen. Cevabınızı bekliyorum

    Yanıtla
    • Genelde özel yazılımlar ile anlık yapılıyor. Anlık ip ye kullanıcı bazlı portları firewall aracılığı ile yönlendirip NAT yapıyorlar. Mevcut kullandığınız yapıda, firewall ile port açsanız işinizi görür. Portu kullanabilirsiniz. Bir sorun olacağını düşünmüyorum. Keza birden çok kişinin kullanımındada bütün portları sunucuda açarsanız sorun olmaz.

  2. MertCan Bey, daha önce Openvpn ile 2 kişi aynı anda bağlanabiliyordu, bu işlemden sonra telefonumdan bağlandığımda PC deki VPN den atıyor. Bir yeri yaparken başka yerimi bozdum anlamadım 🙂 Bilginiz varmı bu konuda, yada OpenVPN de 2. bir user mı açmam gerekiyor.
    Saygılar..

    Yanıtla

Yorum yapın