Linux

Centos 7.6 üzerine VNC Server Kurulumu

Vnc server Kurulumu

Translate This Page:

Select your language: 

Bu Makalemizde Centos 7.6 üzerine VNC server Kurulumunun nasıl yapıldığını inceleyeceğiz. VNC server en temel hali ile windowstan Linux makinelere Remote Desktap türü bir bağlantı kurmamızı sağlayan bir uygulamadır.

İnceleyeceğimiz başlıca konular ;

VNC nedir?

VNC (Virtual Network Computing – Sanal Ağ Sistemi), bir ağ sunucusu üzerinde çalışan grafik arabirimli uygulamalara, başka bir ağ üzerindeki bilgisayardan erişerek bu uygulamaların kullanabilmesini ve yönetilebilmesini sağlar. Temel olarak Server-Client mantığı ile çalışmaktadır.
VNC sunucusu masaüstü ve pencere görüntülerini, görüntü akışı şeklinde VNC istemcisine gönderir. İstemciden sunucuya bağlanıldığında kimlik doğrulama gerçekleşir. Kimlik doğrulama işlemi tamamlandığında, kullanılacak olan masaüstü biçimi ve piksel biçimi isteği istemciden sunucuya bildirilir. Etkileşim sonucunda bağlanılmak istenilen bilgisayarın masaüstü erişimi sağlanır. VNC ile sunucudan istemciye dosya aktarımı gerçekleştirilebilir, sunucuda sabit diskten dosya ve veri arama yapılabilir. Bu sayede istemci bilgisayara uzak masaüstü bağlantısı yapılmış olur. Bu bilgisayara işlem yapılabilir ve yönetilebilir.

VNC bağlantısı üzerinden istemci ve sunucu arasındaki iletişimde oturum başlatma ve kimlik doğrulama şeklindedir. Bu iletişim DES (Data Encryption Standard – Veri Şifreleme Standartı) ve farklı VNC uygulamalara bağlı olarak 3DES (Triple Data Encryption Standard – Üçlü Veri Şifreleme Standardı) şifreleme standartları ile şifrelenmektedir. DES verileri 64 bitlik bloklar halinde şifreleme algoritmalarıdır.
VNC protokolü, OSI (the Open System Interconnection-Açık Sistem Bağlantısı)’de 6. katman olan Sunum Katmanı (Presantation Layer)’nda çalışır.

VNC Topology

VNC sistemi VNC istemcisi, VNC sunucusu ve bir haberleşme protokolü olan RFB (Remote Frame Buffer)’ dan oluşmaktadır.

  • VNC istemci, VNC sunucusuna bağlanmayı sağlar.
  • VNC sunucusu, bağlanılmak istenilen bilgisayara kurulur ve bu sayede istemci bilgisayarın kendisine bağlanarak yönetmesine olanak sağlar.
  • RFB, grafik arayüzlerine uzaktan erişimi ile bilginin sunucudan istemciye iletilmesini sağlayan bir haberleşme protokolüdür. RFB protokolü ile klavye ve fare hareketleri ağ üzerinden başka bir bilgisayara gönderilip meydana gelen grafik bilgisi ve cevapları görüntülü olarak geri alınır. RFB protokolü TCP/IP protokolü üzerinden uzaktan erişimi sağlar. TCP, OSI katmanlarından 4.sü olan Taşıma Katmanı (Transport Layer), IP ise 3.katman olan Ağ Katmanı (Network Layer) RFB protokolü TCP üzerinden yollanacak veriyi parçalara bölünmesini ve alıcı sistem olan VNC sunucusu üzerinde tekrar birleştirilmesini sağlar.

RFB protokolü sayesinde ağ üzerinde uzak masaüstü bağlantısı yapılan bilgisayar ile ona bağlanılmak istenen bilgisayarın işletim sisteminin aynı olması gerekmez. Bunun yanında VNC ile birçok istemci aynı anda bir sunucuya bağlanma özelliğine sahiptir.

VNC Server&Client Windows,Linux,MacOS gibi bir çok platform üzerinde çalışmaktadır bağlantı kurulacak Server ve client işletim sistemlerinin bir önemi bulunmamaktadır.

Artık Kuruluma başlayabiliriz ;

Senaryo : Bizim Senaryomuzda user1 ve user2 adında 2 hesap oluşturulacak ve bu hesapların Centos 7 sunucumza VNC client kullanarak Remote desktop bağlantısı sağlanacak.

1-) Eğer Centos’u minimal versiyonda kurduysanız İlk olarak Linux Sunucumuz üzerinde Kullanacağı Bir masa üstü teması yüklememiz gerekiyor ben Gnome Desktop Yükleyeceğim .

# Gnome Desktop Kurulumu
yum groupinstall -y "GNOME Desktop"

#KDE Desktop Kurmak isterseniz
yum groupinstall 'KDE' 'X Window System'

2-)Masaüstümüz hazırsa VNC server kurulumunu yapıyoruz.

# VNC Server Paketlerini kuruyoruz.
yum install -y tigervnc-server

3-)Senaryomuzda user1 ve user2 kullanıcıları bulunuyor bunun için Linux üzerinde 2 adet yeni user hesabı oluşturuyoruz ve bu hesaplara linux işletim sistemi üzerinde parola veriyoruz.

# Centos7 Kullanıcı hesap ve parola işlemleri

[root@vnc-server ~]# useradd user1
[root@vnc-server ~]# passwd user1
Changing password for user user1.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@vnc-server ~]#

[root@vnc-server ~]# useradd user2
[root@vnc-server ~]# passwd user2
Changing password for user user2.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@vnc-server ~]#

VNC Server’a Bağlancak profillerin yapılandırılması

4-)VNC Server bağlantısı sağlayabilmek için Her bağlanacak hesap için bir profil dosyası oluşturulur ve bu profil dosyası içerisine username bilgisi girilir.Dolayısıyla bu makineye kaç kişi VNC ile bağlanacaksa her kişi için bir sayı verilmeli (vncserver@:1.service , vncserver@:2.service gibi…)
5-)User1 Hesabı için VNC Profili oluşturma ve yapılandırma

# Orjinal Profil dosyamızın bir kopyasını user1 oluşturuyoruz.
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

6-)vncserver@:1.service  bağlantısını user1 Kullanıcısı için düzenliyoruz bu işlemi VNC ile bağlanacak her kullanıcı için yapmalıyız.

# Orjinal Profil dosyamızın bir kopyasını user1 için düzenliyoruz.
#nano /etc/systemd/system/vncserver@:1.service

vnc user

# Orjinal Profil dosyamız aşağıdaki gibidir burada my_user yazan bölümler editleniyor

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l my_user -c "/usr/bin/vncserver %i -geometry 1280x1024"
PIDFile=/home/my_user/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

Yukarıdaki işlemi User 2 içinde Tekrarlıyoruz.

# Orjinal Profil dosyamızın bir kopyasını user2 içinde oluşturuyoruz.
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service

vncserver@:2.service  bağlantısını user2 Kullanıcısı için düzenliyoruz

# Orjinal Profil dosyamızın bir kopyasını user2 için düzenliyoruz.
#nano /etc/systemd/system/vncserver@:2.service

vnc user2

VNC user Parola Belirleme

7-) User1 Hesabı için VNC Bağlantı parolası belirliyoruz.

# User 1 hesabının VNC bağlantısında kullanacağı parolayı belirliyoruz.
#Hesabımıza login oluyoruz
su – user1
#VNC parolası belirliyoruz.
vncserver
# Komut çıktısı aşağıdaki gibi olacaktır.

[user1@vnc-server root]$ vncserver

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Verify:
xauth:  file /home/user1/.Xauthority does not exist

New 'vnc-server:5 (user1)' desktop is vnc-server:5

Creating default startup script /home/user3/.vnc/xstartup
Creating default config /home/user1/.vnc/config
Starting applications specified in /home/user3/.vnc/xstartup
Log file is /home/user1/.vnc/vnc-server:5.log

Yukarıdaki adımları VNC bağlantısı kullanacak her hesap için ayrı ayrı yapıyoruz.

8-) VNC Server Servislerimizi başlatıyoruz.

$systemctl daemon-reload
$systemctl enable vncserver@:1.service

vnc servises

$systemctl start vncserver@:1.service
$systemctl status vncserver@:1.service

Servisleri enable edip start ettiğinizde aşağıdaki gibi start olduklarını göreceksiniz.

Vnc Services

VNC servisimizin dinlemeye başladığı portları görmek için aşağıdaki komut kullanılabilir.

ss -tulpn| grep vnc

vnc listening port

VNC Server Firewall Configuration

9-)VNC Server için Firewall kuralı yazıyoruz

firewall-cmd --permanent --zone=public --add-service vnc-server
firewall-cmd –reload

Eğer Port bazlı rule yazmak isterseniz

#Iptables Tek bir port için izin kuralı
[root@vnc-server root]$ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
[root@vnc-server root]$ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5902 -j ACCEPT

#Iptables üzerinde Port aralığı vermek isterseniz
[root@vnc-server root]$ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5901:5904 -j ACCEPT

işlem sonrası Servisler restart edilmelidir.

[root@vnc-server root]$  service iptables save
[root@vnc-server root]$  service iptables restart

Firewall Komutlar Bu bölüm opsiyoneldir Güvenlik için FW açık olmalı ve kurallar yazılmalıdır.

#Firewall Durumunu görüntülemek için
systemctl status firewalld

#Firewall'ı Stop etmek için
systemctl stop firewalld

#Bu komut disable eder restart sonrası tekrar FW başlamaz
systemctl disable firewalld

SELinux Komutları

#Selinux durumunu Görüntüler
sestatus   

#Selinux Kapatmak için aşağıdaki dizinde selinux disable edilir. 
nano /etc/sysconfig/selinux
SELINUX=disabled

Selinux Disable

#Selinux devre dışı kalması için makinemizi restart etmemiz gerekiyor.
reboot

Windows Makineden Centos’a VNC bağlantısı

10-)Linux server üzerinde VNC server’a dair tüm işlemlerimizi tamamladık artık vindows makinemize VNC client uygulmamızı kurarak bağlantımızı yapabiliriz.Buradaki adresten windows sürümünüz için uygun olan versiyonu buradan indirip seçiyoruz ve windows makinemize kuruyoruz. kurulum tamamlandıktan sonra karşımıza aşağıdaki gibi bir ekran gelecek burada VNC server Makinemizin ip adresini yazıyoruz.
VNC server default olarak 5900 portunu kullanır ve üzerine bağlanacak her profil için bir port ekler bizim örneğimizde

User1 : Sunucu Adi/ipadresi: 5901
User2: Sunucu Adi/ipadresi 5902

Gibi bağlantı adresleri üzerinden bağlanacaktır.

Windows connect to vnc server

Eğer bağlı olan bir hesabın VNC bağlantısını koparmak isterseniz root hesabı yada yetkili bir hesapla o kullanıcının hesabına girip aşağıdaki komutu çalıştırmanız yeterlidir bu işlem kullanıcnın vncserver@:1.service profilini stop edecektir.

# su - your_user
su - user1
killall Xvnc

#Durum kontrolü için
$systemctl status vncserver@:1.service

Remote bağlantısını tekrar başlatmak için
systemctl start vncserver@:1.service

Eğer tüm bağlı olan kullanıcıların vnc bağlantısını kesmek isterseniz root ile bağlıyken aşağıdaki komutu çalıştırmanız yeterlidir.

killall Xvnc

 

Serdar Bayram

Bu yazı blog üzerinde Serdar Bayram tarafından hazırlanıp paylaşılmıştır. 2009 yılında açılan blogum kısa zaman içerisinde paylasımları ile dikkat cekip büyük bir izleyici kitlesine sahip olmuştur.

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu