Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir VNC sunucusunun başlatılması

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir VNC sunucusunun başlatılması
Bazı kullanıcılar uzak masaüstü hizmetlerini çalıştırmak için Windows ile nispeten ucuz VPS kiralıyor. Aynı şey, kendi donanımınızı bir veri merkezinde barındırmadan veya özel bir sunucu kiralamadan Linux'ta da yapılabilir. Bazı kişiler test ve geliştirme için tanıdık bir grafik ortamına veya mobil cihazlardan çalışmak için geniş kanallı bir uzak masaüstüne ihtiyaç duyar. Remote FrameBuffer (RFB) protokolü tabanlı Sanal Ağ Bilgi İşlem (VNC) sistemini kullanmak için birçok seçenek vardır. Bu kısa makalede, herhangi bir hipervizörle sanal makinede nasıl yapılandırılacağını anlatacağız.

İçindekiler:

VNC Sunucusu Seçme
Kurulum ve konfigürasyon
Systemd aracılığıyla bir hizmetin başlatılması
Masaüstü Bağlantısı

VNC Sunucusu Seçme

VNC hizmeti sanallaştırma sistemine yerleştirilebilir ve hipervizör onu taklit edilen cihazlara bağlayacak ve hiçbir ek yapılandırma gerekmeyecektir. Bu seçenek önemli miktarda ek yük gerektirir ve tüm sağlayıcılar tarafından desteklenmez; gerçek bir grafik cihazını taklit etmek yerine basitleştirilmiş bir soyutlama (çerçeve arabelleği) sanal makineye aktarıldığında, kaynak yoğunluğu daha az olan bir uygulamada bile. Bazen bir VNC sunucusu çalışan bir X sunucusuna bağlanır, ancak bu yöntem fiziksel bir makineye erişim için daha uygundur ve sanal bir makinede bir takım teknik zorluklar yaratır. Bir VNC sunucusu kurmanın en kolay yolu yerleşik bir X sunucusu kullanmaktır. Fiziksel cihazlara (video bağdaştırıcısı, klavye ve fare) veya bunların hipervizör kullanılarak emülasyonuna ihtiyaç duymaz ve bu nedenle her türlü VPS için uygundur.

Kurulum ve konfigürasyon

Varsayılan konfigürasyonunda Ubuntu Server 18.04 LTS'ye sahip bir sanal makineye ihtiyacımız olacak. Bu dağıtımın standart depolarında birkaç VNC sunucusu vardır: Sıkı, KaplanVNC, x11vnc ve diğerleri. Geliştirici tarafından desteklenmeyen, TightVNC'nin güncel bir çatalı olan TigerVNC'ye karar verdik. Diğer sunucuların kurulumu da benzer şekilde yapılır. Ayrıca bir masaüstü ortamı da seçmeniz gerekiyor: Bizce en uygun seçenek, bilgi işlem kaynaklarına yönelik nispeten düşük gereksinimler nedeniyle XFCE olacaktır. Dileyenler başka bir DE veya WM kurabilirler: her şey kişisel tercihlere bağlıdır, ancak yazılım seçimi RAM ve bilgi işlem çekirdeği ihtiyacını doğrudan etkiler.

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir VNC sunucusunun başlatılması

Masaüstü ortamının tüm bağımlılıklarla kurulumu aşağıdaki komutla yapılır:

sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

Daha sonra VNC sunucusunu yüklemeniz gerekir:

sudo apt-get install tigervnc-standalone-server tigervnc-common

Süper kullanıcı olarak çalıştırmak kötü bir fikir. Bir kullanıcı ve grup oluşturun:

sudo adduser vnc

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir VNC sunucusunun başlatılması

Kullanıcıyı yönetimle ilgili görevleri gerçekleştirebilmesi için sudo grubuna ekleyelim. Böyle bir ihtiyaç yoksa bu adımı atlayabilirsiniz:

sudo gpasswd -a vnc sudo

Bir sonraki adım, ~/.vnc/ dizininde güvenli bir parola ve yapılandırma dosyaları oluşturmak için VNC sunucusunu vnc kullanıcı ayrıcalıklarıyla çalıştırmaktır. Şifre uzunluğu 6 ila 8 karakter arasında olabilir (ekstra karakterler kesilir). Gerekirse, yalnızca görüntüleme için de bir şifre ayarlanır, ör. klavye ve fareye erişim olmadan. Aşağıdaki komutlar vnc kullanıcısı olarak yürütülür:

su - vnc
vncserver -localhost no

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir VNC sunucusunun başlatılması
Varsayılan olarak, RFB protokolü 5900 ila 5906 arasındaki TCP bağlantı noktası aralığını kullanır - buna sözde denir. her biri bir X sunucu ekranına karşılık gelen bağlantı noktalarını görüntüleyin. Bu durumda bağlantı noktaları :0 ile :6 arasındaki ekranlarla ilişkilendirilir. Başlattığımız VNC sunucusu örneği 5901 numaralı bağlantı noktasını dinliyor (ekran: 1). Diğer örnekler :2, :3 vb. ekranlara sahip diğer bağlantı noktalarında çalışabilir. Daha fazla yapılandırmadan önce sunucuyu durdurmanız gerekir:

vncserver -kill :1

Komut şunun gibi bir şey göstermelidir: "Xtigervnc işlem kimliği 18105'i öldürmek... başarı!"

TigerVNC başlatıldığında, yapılandırma ayarlarını yapılandırmak için ~/.vnc/xstartup betiğini çalıştırır. Kendi betiğimizi oluşturalım, önce varsa mevcut betiğin yedek kopyasını kaydedelim:

mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup

XFCE masaüstü ortamı oturumu aşağıdaki xstartup komut dosyasıyla başlatılır:

#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &

VNC'nin giriş dizinindeki .Xresources dosyasını okuması için xrdb komutu gereklidir. Burada kullanıcı çeşitli grafiksel masaüstü ayarlarını tanımlayabilir: yazı tipi oluşturma, terminal renkleri, imleç temaları vb. Komut dosyasının çalıştırılabilir hale getirilmesi gerekir:

chmod 755 ~/.vnc/xstartup

Bu, VNC sunucusu kurulumunu tamamlar. vncserver -localhost no komutuyla çalıştırırsanız (vnc kullanıcısı olarak), daha önce belirttiğiniz şifre ile bağlanıp aşağıdaki resmi görebilirsiniz:

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir VNC sunucusunun başlatılması

Systemd aracılığıyla bir hizmetin başlatılması

Bir VNC sunucusunu manuel olarak başlatmak, savaş kullanımına uygun değildir, bu nedenle bir sistem hizmeti yapılandıracağız. Komutlar root olarak yürütülür (sudo kullanırız). Öncelikle sunucumuz için yeni bir birim dosyası oluşturalım:

sudo nano /etc/systemd/system/[email protected]

Addaki @ sembolü, hizmeti yapılandırmak için bir argüman iletmenizi sağlar. Bizim durumumuzda VNC ekran bağlantı noktasını belirtir. Birim dosyası birkaç bölümden oluşur:

[Unit]
Description=TigerVNC server
After=syslog.target network.target

[Service]
Type=simple
User=vnc 
Group=vnc 
WorkingDirectory=/home/vnc 
PIDFile=/home/vnc/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x960 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

Daha sonra systemd'ye yeni dosyayı bildirmeniz ve onu etkinleştirmeniz gerekir:

sudo systemctl daemon-reload
sudo systemctl enable [email protected]

İsimdeki 1 rakamı ekran numarasını belirtir.

VNC sunucusunu durdurun, hizmet olarak başlatın ve durumu kontrol edin:

# от имени пользователя vnc 
vncserver -kill :1

# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1

Hizmet çalışıyorsa, bunun gibi bir şey almalıyız.

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir VNC sunucusunun başlatılması

Masaüstü Bağlantısı

Yapılandırmamız şifreleme kullanmadığından ağ paketleri saldırganlar tarafından ele geçirilebilir. Ayrıca VNC sunucularında oldukça sık güvenlik açıklarını bulun, bu nedenle bunları İnternet'ten erişime açmamalısınız. Yerel bilgisayarınıza güvenli bir şekilde bağlanmak için trafiği bir SSH tüneline paketlemeniz ve ardından bir VNC istemcisi yapılandırmanız gerekir. Windows'ta grafiksel bir SSH istemcisi (örneğin PuTTY) kullanabilirsiniz. Güvenlik nedeniyle, sunucudaki TigerVNC yalnızca localhost'u dinler ve genel ağlardan doğrudan erişilemez:


sudo netstat -ap |more

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir VNC sunucusunun başlatılması
Linux, FreeBSD, OS X ve diğer UNIX benzeri işletim sistemlerinde, ssh yardımcı programı kullanılarak istemci bilgisayardan bir tünel oluşturulur (sshd, VNC sunucusunda çalışıyor olmalıdır):

ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip

-L seçeneği, uzak bağlantının 5901 numaralı bağlantı noktasını localhost üzerindeki 5901 numaralı bağlantı noktasına bağlar. -C seçeneği sıkıştırmayı etkinleştirir ve -N seçeneği ssh'ye uzak komutu yürütmemesini söyler. -l seçeneği, uzaktan oturum açma için oturum açmayı belirtir.

Yerel bilgisayarda tüneli kurduktan sonra, VNC istemcisini başlatmanız ve VNC sunucusuna erişmek için önceden belirtilen şifreyi kullanarak 127.0.0.1:5901 (localhost:5901) ana bilgisayarına bağlantı kurmanız gerekir. Artık VPS üzerindeki XFCE grafik masaüstü ortamı ile şifreli bir tünel aracılığıyla güvenli bir şekilde iletişim kurabiliyoruz. Ekran görüntüsünde, sanal makinenin düşük bilgi işlem kaynağı tüketimini göstermek için terminal öykünücüsünde en üstteki yardımcı program çalışıyor. O zaman her şey kullanıcı uygulamalarına bağlı olacaktır.

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir VNC sunucusunun başlatılması
Linux'ta hemen hemen her VPS'ye bir VNC sunucusu yükleyebilir ve yapılandırabilirsiniz. Bu, video bağdaştırıcısı emülasyonu veya ticari yazılım lisanslarının satın alınmasıyla pahalı ve kaynak yoğun yapılandırmalar gerektirmez. Düşündüğümüz sistem hizmeti seçeneğine ek olarak başka seçenekler de var: sistem önyüklendiğinde daemon modunda başlatma (/etc/rc.local aracılığıyla) veya talep üzerine inetd aracılığıyla başlatma. İkincisi, çok kullanıcılı konfigürasyonlar oluşturmak için ilginçtir. İnternet Süper Sunucusu, VNC sunucusunu başlatacak ve istemciyi ona bağlayacak ve VNC sunucusu yeni bir ekran oluşturup oturumu başlatacaktır. İçinde kimlik doğrulaması yapmak için grafiksel bir ekran yöneticisi kullanabilirsiniz (örneğin, LightDM) ve istemcinin bağlantısı kesildikten sonra oturum kapatılacak ve ekranla çalışan tüm programlar sonlandırılacaktır.

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir VNC sunucusunun başlatılması

Kaynak: habr.com

Yorum ekle