Şimdi Ara

CGNAT'dan Kurtulmak ve Port Açmak İçin Reverse SSH Tunelling Hakkında Detaylı Rehber

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
2
Favori
404
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Herkese selamlar.

    Konu bir tık detay ve eksikliklerle dolu olacak ilerde düzeltmeyi ve daha anlaşılır hale getirmeyi düşünüyorum. Benim gibi uzuuun bir süredir cgnat'dan muzdarip olup port açamayan arkadaşlar için faydalı olabileceğini düşündüğüm bir konu..


    Öncelikle kendi sistemim ve amacımdan bahsedeyim:


    Türk Telekom FTTH Fiber internet kullanıcısıyım. Türk Telekom'un vermiş olduğu Nokia Fiber ONT ve ZTE ZXHN H3600 WiFi6 (veya diğer adıyla meşhur wifi6 v9 modem :)) ) modemini Bridge Mode'a (Köprü Modu) alarak Intel N100 Firewall NUC'a Windows 11 Hyper-V üzerinden kurmuş olduğum OpenWRT ile internete bağlanıyorum. WiFi Router için de Keenetic Hopper'ı Access Point modunda kullanıyorum.


    Bildiğiniz üzere Türk Telekom'dan statik ip almadıkça kolay kolay evinizdeki NUC / Server'a veya Masaüstü bilgisayarınıza bağlanamazsınız. OpenWRT'nin güzel yanı, Tailscale ve ZeroTier gibi sanal ağlar ile uzaktan bağlanmanıza izin verir (bir nevi Hamachi gibi :D)


    Ama maalesef ki bu NUC / Server'ı internet geneline açmak için nihayetine her türlü bir statik ip'ye ihtiyacınız var.

    Bu konuda yardımımıza AWS EC2 Free Tier 1 vCPU 1 GB RAM serverları yetişiyor :D

    (EC2 - free tier - Elastic IP - 1 dollar budget plan ve diğer konular hakkında internette bolca kaynak bulabilirsiniz.)

    (ayrıca ilerde detaylı olarak açıklayacağım.)


    Bu konuda özellikle yıllardır açmak istediğim Minecraft sunucusu için örnek vereceğim :D


    Evdeki bu NUC server'ın özelliklerini çok beğendim. 6 W 4 çekirdek INTEL 7 işlemcimiz paper vanilla minecraft'ta gayet güzel performans veriyor.

    8 GB'ram'li bu sistemde 4000 MB minecraft sunucu olarak, 512 MB OpenWRT Sanal İstemciye, kalan 3 GB Windows 11 kullansın şeklinde düşündüm :D


    Minecraft Serverımıza LAN'dan sorunsuz biçimde bağlantı yapabiliyoruz. Peki diğer kişilerin bağlanması için ne yapmalı?


    Temel olarak amacımız, Evdeki hazır Minecraft Server olan NUC'a, Amazon'dan aldığımız EC2 Free Tier 1 CPU 1 GB RAM Ubuntu 22.04 Server'daki Elastic IP adresine bağlanarak oyuna giriş yapmaları olacaktır.


    Öncelikle EC2 Console'dan gerekli portları (22, 25565 (veya kendi uygulamanız için açacağınız port numarası) ) açtığınıza emin olun.


    1-- SSH ile temel olarak EC2'ye ilk bağlantımızı gerçekleştirelim:


    ssh -i "<SSH PEM FILE>" ubuntu@<EC2 IP ADRESS>


    ( windows'ta bağlantı yapıyorsanız amazon'da server oluştururken indirilen .pem file'ı "C:\Users\<username>" kısmına atın.)

    ( örnek olarak "SSH-FILE.pem" dosyamı C:\Users\ZewZack dizinine attım. ve şu şekilde bağlandım: )

    ( ssh -i "SSH-FILE.pem" ubuntu@x.x.x.x )

    ( ilk bağlantılarda yes no fingerprint şeklinde soru yöneltebilir yes yazıp enterlayın. )


    2-- servera bağlandık sonraki adım update ve upgrade yapalım:

    Alıntı

    metni:
    sudo apt-get update sudo apt-get upgrade


    3-- ipv4 port forwarding açalım:

    Alıntı

    metni:
    sudo nano /etc/sysctl.conf

    3.1-- buradan 

    Alıntı

    metni:
    "net.ipv4.ip_forward=1" satırını bulup önündeki # işaretini kaldırarak uncommentlayalım.

    (nano kullanmasını bilmiyorsanız, # işaretini kaldırdıktan sonra dosyayı kaydetmek istiyorsanız sırayla

    CTRL + O tuşuna basıp enterlayın

    daha sonra CTRL + X basarak nano'dan çıkın. )


    3.2-- daha sonraki komutumuz

    Alıntı

    metni:
    sudo sysctl -p

    en son ekranda "net.ipv4.ip_forward=1" yazmalı.


    4-- sonraki komutumuz port kontrolü yapmak. 

    Alıntı

    metni:
    sudo ss -tulpn | grep LISTEN 

    yazıp istenilen portun kullanılır olmadığına emin olalım.


    5-- sshd config dosyasından tcp forwarding ve gatewayports düzenleyerek reverse ssh tünellemesine izin verelim

    Alıntı

    metni:
    cd /etc/ssh/ sudo nano sshd_config

    (sıra sıra yazdığınıza emin olun nano kullanması zor değil üstteki örnek ile aynı şekilde yapılacak.)


    5.1 buradan

    Alıntı

    metni:
    "AllowTcpForwarding yes" "GatewayPorts yes"

    satırlarını bulup önündeki # işaretini kaldırarak uncommentlayalım (nano ile)


    5.2 daha sonra (ssh bağlantısı kopacak.)

    Alıntı

    metni:
    sudo systemctl restart ssh.service sudo systemctl restart sshd.service

    sırayla yazdıktan sonra (ya ilk ya da ikincide) 1. adımda kurduğumuz bağlantı kopacak. sıkıntı yok.


    6. son adım reverse ssh bağlantısı kurmak:


    ssh -i "<SSH PEM FILE>" -R *:25565:127.0.0.1:25565 ubuntu@<EC2 IP ADRESS>


    Vee nihayetinde port açılmış ve servera bağlanılabilir olacaktır.


    olmadıysa yapılabilecekler :/


    - ssh attığınız cmd konsolu kontrol edin. eğer 

    could not request local forwarding

    permission denied

    tarzında hata alıyorsanız üstteki adımlarda eksiklikleriniz olabilir.


    - EC2 güvenlik ayarlarından tcp 25565 port açtığınıza emin olun.


    - EC2'yi Ubuntu 22.04 olarak kurun derim çünkü 24.04 de 25565 port açmayı denediğimde maalesef başarısız oldum xd.


    Okuduğunuz için teşekkürler  


    Edit 1: SSH bağlantı kodları Alıntı şeklinde gözükmediği için düz metin olarak düzenlendi.




    < Bu mesaj bu kişi tarafından değiştirildi ZewZack -- 23 Haziran 2024; 3:8:40 >







  • Rezerve xD

  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.