Kali Linux masaüstünü tarayıcıdan kullanmak için iki resmî yol vardır: hafif noVNC ile mevcut masaüstünüzü x11vnc üzerinden HTML5 olarak açmak ya da kullanıcı girişi ve birden çok protokol destekleyen Apache Guacamole kurmak. Kali belgelerinin ikisinde de ortak öneri aynıdır: VNC servisini yalnızca yerel adreste (loopback) dinletin ve uzaktan erişimi SSH tüneliyle yapın.

Tarayıcı gerekmiyorsa Xfce ile RDP kurup herhangi bir uzak masaüstü istemcisiyle bağlanmak da mümkündür; bu yöntem özellikle WSL, Docker ve bulut makinelerinde kullanılır. Bu yazıda üç yöntemi, her birinin hangi portları açtığını ve bu servisleri internete açmamak için neler yapmanız gerektiğini anlatıyoruz.

Hangi yöntemi seçmeli?

Hangi yöntemi seçmeli? noVNC + x11vnc, Apache Guacamole, Xfce + xrdp
YöntemGüçlü yanıDikkat
noVNC + x11vncAz servis, hızlı tek seferlik bağlantıx11vnc parolasız; yalnızca localhost ve SSH tüneli
Apache GuacamoleKullanıcı girişi, merkezi sayfa, çoklu protokolDebian paketi yok; Tomcat 8080 portu tüm arayüzlerde dinliyor
Xfce + xrdpStandart RDP istemcileriyle bağlantıBetik 3390 portunu kullanır; tünel önerilir

noVNC ile tarayıcıda Kali

Belge VNC sunucusu olarak x11vnc seçer, ama başka bir VNC sunucusu da kullanabileceğinizi, desteğin değişebileceğini not eder. Önce paketleri kurarsınız:

bash
sudo apt update
sudo apt install -y novnc x11vnc

Ardından mevcut masaüstünüzü (:0) yalnızca yerel adreste paylaşan bir VNC oturumu başlatırsınız. Belge x11vnc'nin kendi HTTP özelliğini Java gerektirdiği için kullanmaz; noVNC zaten HTML5 deneyimi sunar:

bash
x11vnc -display :0 -autoport -localhost -nopw -bg -xkb -ncache -ncache_cr -quiet -forever
ss -antp | grep vnc

ss çıktısında 127.0.0.1:5900 ve [::1]:5900 görmelisiniz; yani VNC yalnızca makinenin kendisinden erişilebilir. Bu önemlidir, çünkü komuttaki -nopw parametresi VNC için parola istemez. Son olarak noVNC vekilini başlatırsınız; belgeye göre bu komut 8081/TCP portunu açar:

bash
/usr/share/novnc/utils/novnc_proxy --listen 8081 --vnc localhost:5900

Belge burada "daha iyisi" diyerek SSH'ı etkinleştirmenizi ve uzaktaki bilgisayardan SSH yerel port yönlendirmesiyle bağlanmanızı önerir. Böylece tarayıcınızda http://localhost:8081 adresini açtığınızda trafik şifreli SSH tünelinden geçer:

bash
sudo systemctl enable ssh --now
ssh kali@SUNUCU_IP -L 8081:localhost:8081

SUNUCU_IP yerine kendi Kali makinenizin, yani kendi sunucunuzun adresini yazın. SSH servisinin güvenli ayarları için Kali SSH servisi ayarları yazısına bakın.

Apache Guacamole ile tarayıcıda Kali

Guacamole daha kapsamlı bir çözümdür: birden fazla protokolü destekler ve istemcilerin kullanıcı doğrulaması olan merkezi bir sayfadan bağlanmasını sağlar. Belgeye göre Guacamole Debian'da paketlenmemiştir; resmî kurulum adımlarını izleyebilir, bir Docker imajı kullanabilir ya da belgedeki gibi topluluk tarafından yazılmış otomatik bir kurulum betiğini çalıştırabilirsiniz.

bash
sudo apt update
sudo apt install -y git
git clone https://github.com/MysticRyuujin/guac-install.git /tmp/guac-install

Belge bir hatayı özellikle not eder: ABD Doğu saat dilimindeyseniz (EDT) Apache bunu geçerli bir saat dilimi olarak görmediği için farklı bir saat dilimine geçmeniz gerekir; belgede Central saat dilimine geçiliyor. Türkiye saat diliminde bu sorun belgede anılmıyor.

Belgedeki kurulum, ayrı bir MySQL sunucusu olmadan ve MFA etkinleştirmeden yapılan "standalone" bir kurulumdur; MFA'nın kapatılmasının gerekçesi servisin SSH tünelinin arkasına saklanacak olmasıdır. Komutun yapısı şöyledir:

bash
cd /tmp/guac-install/
sudo ./guac-install.sh --nomfa --installmysql --mysqlpwd 'KENDI_MYSQL_PAROLANIZ' --guacpwd 'KENDI_GUAC_PAROLANIZ'

Kurulumdan sonra servislerin durumunu ve dinledikleri portları kontrol edebilirsiniz:

bash
systemctl status tomcat9 guacd mysql
sudo ss -antup | grep "mysqld\|guacd\|java"

Belgedeki çıktıda MySQL 127.0.0.1:3306'da, guacd 127.0.0.1:4822'de yalnızca yerel olarak dinlerken Tomcat'i çalıştıran java süreci *:8080, yani tüm ağ arayüzlerinde dinler. Guacamole arayüzü http://localhost:8080/guacamole/ adresindedir. MFA kapalı olduğu için 8080 portunu güvenlik duvarıyla dışarıya kapatmanız ve erişimi SSH tüneliyle yapmanız gerekir.

Guacamole için VNC sunucusu

Belge Guacamole'un bağlanacağı VNC sunucusu olarak TigerVNC kullanır. ~/.vnc/xstartup dosyasında Xfce bölümündeki startxfce4 & satırını etkin bırakırsınız (dosyada GNOME, LXQt ve KDE için yorum satırı halinde örnekler de vardır), ardından :1 ekranında bir oturum başlatırsınız:

bash
sudo apt install -y tigervnc-standalone-server
mkdir -p ~/.vnc/
vim ~/.vnc/xstartup
vncserver :1

Son olarak Guacamole yönetim panelinde sağ üstteki menüden Settings, ardından Connections sekmesinde New connection ile bağlantıyı tanımlarsınız. Belge Color depth değerini doğru ayarlamanızı vurgular; yanlış ayarda bazı gri tonlar mor ya da başka renklere dönebilir. Kaydettikten sonra Home sayfasından yeni bağlantıya tıklayarak masaüstünü açarsınız.

Xfce ve RDP ile uzak masaüstü

Xfce ve RDP ile uzak masaüstü: kullanıyorsanız xrdp ile Xfce'nin bağlanabilmesi için ayrıca dbus-x11 paketini kurun., Servisi AWS'de sudo systemctl enable xrdp --now, WSL ya da...

Kali belgesi, WSL ya da Docker gibi doğrudan grafik arayüzü olmayan ortamlar için Xfce ve xrdp kuran kısa bir betik sunar. Betik sistemi günceller, kali-desktop-xfce, xorg, xrdp ve xorgxrdp paketlerini kurar ve xrdp'yi varsayılan 3389 yerine 3390 portunu dinleyecek şekilde ayarlar (servisi başlatmaz):

bash
wget https://gitlab.com/kalilinux/recipes/kali-scripts/-/raw/main/xfce4.sh
chmod +x xfce4.sh
sudo ./xfce4.sh
  • WSL kullanıyorsanız xrdp ile Xfce'nin bağlanabilmesi için ayrıca dbus-x11 paketini kurun.
  • Servisi AWS'de sudo systemctl enable xrdp --now, WSL ya da Docker'da sudo /etc/init.d/xrdp start ile başlatın.
  • Docker'da konteyneri belgedeki gibi 3390 portu yayınlanarak başlatmanız ve adduser ile yeni bir kullanıcı oluşturmanız gerekir; Docker kullanımı için Kali Docker imajları yazısına bakın.
  • AWS'de belge varsayılan kali hesabına chpasswd ile parola atar. Belgedeki örnek parola kali'dir; siz mutlaka güçlü ve farklı bir parola kullanın.
bash
sudo apt install -y dbus-x11
sudo /etc/init.d/xrdp start

WSL ve Docker'da Windows'tan 127.0.0.1:3390 adresine bağlanırsınız. Bulut makinesinde ise belge 3390 portuna kendi IP adresinizden erişim izni vermenizi söyler; AWS bölümündeki daha güvenli öneri ise RDP'yi doğrudan açmak yerine ssh -N -L 3390:127.0.0.1:3390 ile tünel kurup yerelde 127.0.0.1:3390'a bağlanmaktır. Bağlanırken Authentication Required to Create Managed Color Device hatası alırsanız belgede, colord işlemlerine izin veren bir polkit kuralı dosyası (/etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla) oluşturma çözümü yer alır. WSL tarafındaki Win-KeX seçeneği için WSL ve Win-KeX yazısına bakabilirsiniz.

Bu servisleri açarken güvenlik kontrol listesi

  • VNC, noVNC, Guacamole ve RDP portlarını (belgelerde 5900, 8081, 8080 ve 3390) internete doğrudan açmayın; erişimi SSH tüneliyle yapın.
  • Varsayılan ve örnek parolaları (guacadmin/guacadmin, kali) ilk iş değiştirin.
  • Dinleyen portları ss -antp ile kontrol edin ve beklemediğiniz bir servisin 0.0.0.0 ya da * üzerinde dinlemediğinden emin olun.
  • Güvenlik duvarıyla yalnızca SSH portuna izin verin; güvenlik duvarı nedir ve Fail2ban ile SSH koruması yazıları yardımcı olur.
  • İşiniz bittiğinde uzak masaüstü servislerini durdurun; sürekli açık kalmaları gerekmiyorsa açılışta otomatik başlatmayın.

Sık Sorulan Sorular

noVNC mi Guacamole mi?

Kali belgesine göre noVNC daha az servis gerektiren hafif bir yaklaşımdır ve hızlı, tek seferlik bağlantılar için uygundur. Guacamole ise kullanıcı doğrulaması, merkezi bağlantı sayfası ve çoklu protokol desteğiyle daha eksiksiz bir çözümdür, ama kurulumu ve bakımı daha ağırdır.

Guacamole'u Kali paket deposundan kurabilir miyim?

Belgeye göre hayır; Guacamole Debian'da paketlenmemiştir. Resmî kurulum talimatları, Docker imajı ya da belgede kullanılan topluluk betiği seçenekleriniz vardır.

Tarayıcıdan bağlanırken neden SSH tüneli kullanmalıyım?

Belgedeki noVNC örneğinde VNC parolasızdır ve Guacamole kurulumu MFA olmadan yapılır; ikisi de servisin SSH tünelinin arkasında kalacağı varsayımıyla böyle ayarlanmıştır. Tünel trafiği şifreler ve servisi yalnızca SSH erişimi olan kişilerle sınırlar.

RDP neden 3389 yerine 3390'da?

Kali'nin Xfce betiği /etc/xrdp/xrdp.ini dosyasında portu bilerek 3390 yapar. Bağlanırken istemcinizde bu portu belirtmeniz gerekir.

Marka adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen kuruluşlarla bayilik veya ortaklık ilişkisi bulunduğu anlamına gelmez.

İlgili içerikler: Kali Linux nedir · Kali SSH ayarları · Kali bulut kurulumu · Kali WSL ve Win-KeX · UFW güvenlik duvarı · SSH ile bağlanma