Merhaba dostlar,

Uzun zamandır aklımda olan bir şeydi aslında bugün yazacağım konu. Heyecanlar bekleyenler de var zannediyorum. Evet evet Ömer sen kendini biliyorsun. :)

Bildiğiniz gibi VPN kullanmak için 65 bin küsür olan internet portlarından birini kullanmamız gerekiyor. Normal internetlerde herhangi bir portu seçip çok rahat şekilde VPN'e bağlanabilirken bazı kısıtlı ağlarda temel portlar haricinde (80, 443, 22, 53 vs.) tüm portlar kapalı olduğundan VPN bağlantımızı yapamıyorduk. (Özellikle sıksık kullanmak durumunda kaldığımız eduroam ağlarında. :)). Hem de farklı portlarda çalışan servislerin sunucu erişimlerini de yapamıyorduk.

Bunun bir çözümünü ararken 443 üzerinden çalışan VPN servislerine bağlanabildiğimi gördüm. Fakat bu sefer de diğer hizmetler için farklı sunucular açmak zorunda kaldığımız için hiç efektif bir çözüm olmuyordu. Araştırmalarım sonucu bulduğum SSLH programı ile 443 portunu birden fazla uygulama arasında paylaştırıp aynı port üzerinden birden fazla erişim sağlayabileceğiz. Hem böylece HTTPS yayınımız devam ederken hem SSH hem de VPN bağlantımızı kurabileceğiz. :)

Hadi girizgahı çok da uzatmadan başlayalım. :)


Anlatımı Ubuntu 18.04 LTS üzerinden yapacağım ve kurulumdan önce halihazırda çalışan bir Apache ve Pritunl yayınınızın olduğunu varsayarak devam ediyorum. DigitalOcean üzerinden LAMP kurup Pritunl'u da aşağıya bıraktığım linkten kurabilirsiniz.

Setup a VPN Server with Pritunl on Ubuntu 18.04

1) Pritunl Konfigürasyonları

LAMP kurulumu yapıp Pritunl kurulumuna geçtiğim için önce Apache'yi durdurup Pritunl ayarlamalarına öyle geçiyorum.

Şimdi 443 üzerinden farklı bir yayın yapacağım için Pritunl'un kullanıcı arayüzünü farklı bir porta alıyorum. Başka servislerle çakışmayan herhangi bir porta alabilirsiniz ben 442'ye alıyorum.

Pritunl'un 80 portunu dinlemesini de engellemek için aşağıdaki komutumuzu çalışıtıryoruz.

pritunl set app.redirect_server false

Şu an halihazırda SSL ile çalışan artvin.baykatre.com üzerinden çalışan bir web yayınım, batum.baykatre.com üzerinden çalışan Pritunl Kullanıcı Arayüzüm (GUI) ve TCP'de 1194 portunda çalışan bir VPN servisim mevcut ve aktif durumda. Sanal Konak (Virtual Host) kurulumlarını daha önce anlattığım için burada detayına girmeyeceğim. Aşağıya bıraktığım linkten destek alabilirsiniz.

Apache Sanal Konak (Virtual Host) Yapılandırması Nasıl Yapılır?

2) SSLH Kurulumu

sudo apt install sslh

Standalone seçeneğini seçip ediyoruz.

* Genel mantığa gelirsek farklı portlar üzerinden çalışan servisleri SSLH'a verip kontrol etmesini sağlayacağız. Bu yüzden SSL portumuzu 443'ten farklı bir yere taşımamız gerekiyor. 4433'e SSL'i, 22'ye SSH'ı ve 1194'ü de VPN servisimize vermiş olacağız ve bunların üçünü 443'ten SSLH vasıtasıyla yayınlayacağız.

sudo nano /etc/default/sslh

SSLH konfigürasyon dosyasına girip gerekli düzenlemeleri yapıyoruz.

RUN=no

yazan yeri

RUN=yes

olarak ve en alttaki satırı da şu şekilde düzenliyorum.

DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:4433 --openvpn 127.0.0.1:1194 --pidfile /var/run/sslh/sslh.pid --timeout 5"

--user sslh : Dinlemeyi yapacak kullanıcının ismini atıyoruz.

--listen 0.0.0.0:443 : SSLH 443'te yayınını dinleyecek.

--ssh 127.0.0.1:22 : 22 portundaki SSH bağlantısını yönlendir.

--ssl 127.0.0.1:4433 : 4433 portundaki HTTPS/SSL bağlantısını yönlendir.

--openvpn 127.0.0.1:1194 : 1194 portundaki VPN bağlantısını yönlendir.

--timeout 5 : Bu çok da önemli değil. Fazla şaaapmamak lazım yoksa sıyırırız mazallah. :)


3) Apache Konfigürasyonlarını Yapma

cd /etc/apache2/sites-available

Apache konfigürasyon dizinimize geçiyoruz ve SSL konfigürasyon dosyalarımızı açıyoruz.

"*:443" olan yeri "127.0.0.1:4433" olarak düzenliyoruz ve kaydediyoruz.

Son olarak Apache'nin default dinlediği portu değiştiriyoruz.

nano /var/apache2/ports.conf

Kaydedip çıkıyoruz.

Tüm servislerimizi yeniden başlatıyoruz ve ben tercihen "sudo reboot" diyerek sunucuyu yeniden başlatıyorum.


4) OVPN Dosyasını Editleme

Siteden indireceğimiz .ovpn dosyalarına da ufak bir ayar çekmemiz gerekiyor.

Sunucudan 1194'ten yayın yapıyor gibi göründüğü için burayı 443 olacak şekilde düzenliyoruz. Tercihen IP adresimizin yerine kendi alan adımızı da yazabiliriz.

Burası da tamam. :)


Her Şey Tamam Gibi (Mi?) :)

1) SSH bağlantımız çalışıyor.
2) HTTPS/SSL bağlantımız çalışıyor.
3) Eduroam üzerinden VPN bağlantımızı da yapabildiğimize göre bu da tamam. :)

Evet dostlar, bugün sizlere farklı portlarda çalışan servisleri tek bir port üzerinde nasıl kullanabileceğinizi anlattım. Bu sayede firewall yüzünden yapamadığımız çalışmaları yapmanız için bir yöntem de edinmiş olduk. Buraya kadar sabırla okuduğunuz için teşekkür ederim. Makaleyi aşağıdaki emojilerle oylamayı ve düşüncelerinizi ve aklınıza takılan yerleri yorum kısmında yazmayı unutmayın. Herkese iyi çalışmalar dilerim. :)