Doküman

Guacamole Uzak Masaüstü Debian 11 / Debian 10 Kurulumu

Günlük yaşamda çoğu sistem yöneticisi, bir sunucuya erişmeyi mesleklerinin ayrılmaz bir parçası olarak görür. Bu makale, böyle bir platformun nasıl kurulacağını göstermek için yazıldı Bu kılavuzun sonunda, Debian 11 (Bullseye) / Debian 10 (Buster) üzerinde Guacamole Uzak Masaüstü’nün nasıl kurulacağı ve kullanılacağı hakkında bilgi sahibi olacaksınız.

Bu aracın özüne dalmadan önce, bu aracın neyle ilgili olduğunu açıklamamız ve öğrenmemiz gerekiyor. Guacamole, sunuculara uzaktan erişim sağlayan bir HTML web uygulamasıdır. RDP, SSH ve VNC gibi protokolleri destekler. Guacamole, bilgisayarınızdan, cep telefonunuzdan veya tabletinizden cihazınızdan bir veya daha fazla masaüstüne uzaktan erişim sağladığı için kullanışlıdır. Guacamole Uzak Masaüstü’nün avantajlarından bazıları şunlardır:

  • Herhangi bir cihazdan bilgisayarlara erişim sağlar.
  • Bir gruba kolay erişim sağlar.
  • Mevcut altyapıya bir ek HTML5 uzaktan erişim sağlar.

Guacamole iki parçadan oluşur:

  1. Guacamole sunucusu- bu, proxy’yi (guacd) ve gerekli kitaplıkları sağlar.
  2. Guacamole-client- bu, servlet kapsayıcınız tarafından hizmet verilecek istemcidir.

1. Adım: Bağımlılıkları Kurun

Sistemimizi güncelleyerek ve Guacamole Remote Desktop’ın gerektirdiği bağımlılıkları yükleyerek başlayalım.

sudo apt update
sudo apt install -y vim build-essential libcairo2-dev libjpeg62-turbo-dev libpng-dev \
libtool-bin libossp-uuid-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev \
libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev \
libssl-dev libvorbis-dev libwebp-dev libpulse-dev

Yüklememiz gereken başka bir araç, remmina PPA’da barındırılan FreeRDP2’dir.

echo "deb http://deb.debian.org/debian $(lsb_release -cs)-backports main" | sudo tee /etc/apt/sources.list.d/backports.list
sudo apt update
sudo apt install freerdp2-x11 freerdp2-dev

2. Adım: Debian’a Apache Tomcat’i kurun

Guacamole Java war dosyasını çalıştırmak için Apache Tomcat kullandığımız için, Java’yı Debian sistemimize yüklememiz gerekiyor.

sudo apt install openjdk-11-jdk

Yüklü sürümü kontrol edin

$ java --version
openjdk 11.0.16 2022-07-19
OpenJDK Runtime Environment (build 11.0.16+8-post-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Debian-1deb11u1, mixed mode, sharing)

Tomcat kullanıcısı oluştur

Bu kullanıcı, Apache Tomcat uygulamasını çalıştırmak için kullanılır.

sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

Debian’a Apache Tomcat’i kurun

Resmi indirmeler sayfasından Apache Tomcat’in en son sürümünü yükleyin.

cd ~/
VER="9.0.75"
wget https://downloads.apache.org/tomcat/tomcat-9/v${VER}/bin/apache-tomcat-${VER}.tar.gz -P ~

İndirdiğiniz dosyayı aşağıdaki gibi /opt/tomcat dizinine çıkarın:

sudo tar -xzf apache-tomcat-*.tar.gz -C /opt/tomcat/
sudo mv /opt/tomcat/apache-tomcat-*/ /opt/tomcat/tomcatapp

Tomcat, Tomcat kullanıcısı tarafından çalıştırıldığı için Tomcat kullanıcılarına dosya ayrıcalıklarını aşağıdaki gibi veriyoruz.

sudo chown -R tomcat: /opt/tomcat

Ardından dosyaları çalıştırılabilir hale getiriyoruz:

sudo chmod +x /opt/tomcat/tomcatapp/bin/*.sh

/etc/systemd/system/tomcat.service konumunda yapılandırma dosyasını oluşturarak Tomcat’in systemd hizmetini ekleyin

sudo vim /etc/systemd/system/tomcat.service

Oluşturulan dosyaya bu satırları yapıştırın.

[Unit]
Description=Tomcat 9 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"

Environment="CATALINA_BASE=/opt/tomcat/tomcatapp"
Environment="CATALINA_HOME=/opt/tomcat/tomcatapp"
Environment="CATALINA_PID=/opt/tomcat/tomcatapp/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/tomcatapp/bin/startup.sh
ExecStop=/opt/tomcat/tomcatapp/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Hizmeti önyüklemede çalışacak şekilde başlatın ve etkinleştirin.

sudo systemctl daemon-reload
sudo systemctl enable --now tomcat

Hizmetin durumunu kontrol edin.

$ systemctl status tomcat
 tomcat.service - Tomcat 9 servlet container
     Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2023-01-27 09:14:45 UTC; 10s ago
    Process: 12100 ExecStart=/opt/tomcat/tomcatapp/bin/startup.sh (code=exited, status=0/SUCCESS)
   Main PID: 12107 (java)
      Tasks: 29 (limit: 4556)
     Memory: 156.0M
        CPU: 3.361s
     CGroup: /system.slice/tomcat.service
             └─12107 /usr/lib/jvm/java-11-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/tomcatapp/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoade>

Jan 27 09:14:45 debian11 systemd[1]: Starting Tomcat 9 servlet container...
Jan 27 09:14:45 debian11 startup.sh[12100]: Tomcat started.
Jan 27 09:14:45 debian11 systemd[1]: Started Tomcat 9 servlet container.

Tomcat 8080 numaralı bağlantı noktasını dinler, bu nedenle güvenlik duvarında bu bağlantı noktasına izin vermemiz gerekir. İlk olarak, sudo apt install ufw kullanarak ufw’yi kurun.

sudo ufw allow 8080/tcp

3. Adım: Guacamole Uzak Sunucuyu İndirin

Guacamole Uzak Sunucu, uzak masaüstü bağlantıları için gereken tüm yerel ve sunucu bileşenlerini içerir. Guacamole’nin merkezi olan guacd’nin yanı sıra tüm yerel bileşenlerin bağlı olduğu tüm kitaplıkları sağlar.

Sürüm sayfasından Guacamole Server’ın en son kararlı sürümünü kontrol edin.

Alternatif olarak, aşağıdaki gibi Wget kullanarak indirin. Sürüm değişkenini ayarlayın

VER=1.5.2

Ardından indirin:

wget https://archive.apache.org/dist/guacamole/$VER/source/guacamole-server-$VER.tar.gz

İndirilen dosyayı ayıklayın.

tar xzf guacamole-server-$VER.tar.gz

Guacamole dizinine gidin.

cd guacamole-server-$VER

Ardından komut dosyasını yapılandırın, bu mevcut bağımlılıkları kontrol eder ve Guacamole sunucusunu bunlara uyarlar.

./configure --with-init-dir=/etc/init.d

Yukarıdaki komut için Örnek Çıktı:

...
------------------------------------------------
guacamole-server version 1.5.2
------------------------------------------------

   Library status:

     freerdp2 ............ yes
     pango ............... yes
     libavcodec .......... yes
     libavformat.......... yes
     libavutil ........... yes
     libssh2 ............. yes
     libssl .............. yes
     libswscale .......... yes
     libtelnet ........... yes
     libVNCServer ........ yes
     libvorbis ........... yes
     libpulse ............ yes
     libwebsockets ....... no
     libwebp ............. yes
     wsock32 ............. no

   Protocol support:

      Kubernetes .... no
      RDP ........... yes
      SSH ........... yes
      Telnet ........ yes
      VNC ........... yes

   Services / tools:

      guacd ...... yes
      guacenc .... yes
      guaclog .... yes

   FreeRDP plugins: /usr/lib/x86_64-linux-gnu/freerdp2
   Init scripts: /etc/init.d
   Systemd units: no

Type "make" to compile guacamole-server.

Adım 4: Guacamole Uzak Masaüstünü Debian’a Kurun

Yukarıdaki kontrolü yaptıktan sonra sıra Debian sistemimize Guacamole kurulumuna geldi. Aşağıdaki gibi make komutunu vererek Guacamole-server’ı derlememiz gerekiyor.

make

make komutu biraz zaman alıyor, tamamlandıktan sonra Guacamole-server’ı kurmaya devam edin.

sudo make install

Şimdi ldconfig komutunu verin, bu komut önbelleği en son paylaşılan kitaplıklara bağlar.

sudo ldconfig

Guacd.conf yapılandırma dosyası oluşturun:

$ sudo vim /etc/guacamole/guacd.conf
[daemon]
pid_file = /var/run/guacd.pid
#log_level = debug

[server]
#bind_host = localhost
bind_host = 127.0.0.1
bind_port = 4822

#[ssl]
#server_certificate = /etc/ssl/certs/guacd.crt
#server_key = /etc/ssl/private/guacd.key

Ardından, eklenen guacd hizmetini bulmak için arka plan programlarını yeniden yükleyin.

sudo systemctl daemon-reload

Start and enable guacd to run on boot

sudo systemctl start guacd
sudo systemctl enable guacd

Verify if the process is running.

$ systemctl status guacd
 guacd.service - LSB: Guacamole proxy daemon
     Loaded: loaded (/etc/init.d/guacd; generated)
     Active: active (running) since Fri 2023-01-27 09:21:05 UTC; 15s ago
       Docs: man:systemd-sysv-generator(8)
      Tasks: 1 (limit: 4556)
     Memory: 9.9M
        CPU: 27ms
     CGroup: /system.slice/guacd.service
             └─23813 /usr/local/sbin/guacd -p /var/run/guacd.pid

Jan 27 09:21:05 debian11 systemd[1]: Starting LSB: Guacamole proxy daemon...
Jan 27 09:21:05 debian11 guacd[23811]: Guacamole proxy daemon (guacd) version 1.5.2 started
Jan 27 09:21:05 debian11 guacd[23810]: Starting guacd:
Jan 27 09:21:05 debian11 guacd[23811]: guacd[23811]: INFO:        Guacamole proxy daemon (guacd) version 1.5.2 started
Jan 27 09:21:05 debian11 guacd[23810]: SUCCESS
Jan 27 09:21:05 debian11 guacd[23813]: Listening on host 127.0.0.1, port 4822
Jan 27 09:21:05 debian11 systemd[1]: Started LSB: Guacamole proxy daemon.

5. Adım: Debian’da Apache Guacamole’u yapılandırın

Guacamole’nin iki ana yapılandırma dosyası vardır, yani

  • GCAMOLE_HOME ortam değişkeni tarafından başvurulan /etc/guacamole adresinde depolanır
  • /etc/guacamole/guacamole.properties konumunda depolanan bu, Guacamole ve uzantıları tarafından kullanılan ana dosyadır.

Ek olarak, uzantılar ve kitaplık yapılandırmaları da vardır. Bu dizini oluşturmanız gerekecek.

sudo mkdir /etc/guacamole

Bir GUACAMOLE_HOME ortam değişkeni oluşturun.

sudo echo "GUACAMOLE_HOME=/etc/guacamole" | sudo tee -a /etc/default/tomcat

Ardından, gösterildiği gibi /etc/guacamole altında guacamole.properties dosyasını oluşturarak Guacamole’nin guacd ile nasıl iletişim kurduğunu tanımlayın.

sudo vim /etc/guacamole/guacamole.properties

Dosyanızı aşağıdaki gibi düzenleyin:

guacd-hostname: localhost
guacd-port:    4822
user-mapping:    /etc/guacamole/user-mapping.xml
auth-provider:    net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider

Guacamole yapılandırma dizini ile Tomcat sunucu uygulaması arasında bir bağlantı oluşturun.

sudo ln -s /etc/guacamole /opt/tomcat/tomcatapp/.guacamole

6. Adım: Guacamole Kimlik Doğrulama Yöntemini Ayarlayın

Varsayılan olarak Guacamole’nin kimlik doğrulama yöntemi, user-mapping.xml adlı tek bir dosyadan tüm kullanıcıları ve bağlantıları okur. Bu dosyada, Guacamole web UI’ye erişecek tüm kullanıcılar, bağlanılacak sunucular ve bağlantı yöntemleri tanımlanır. Guacamole’nin web kullanıcı arabiriminde oturum açmak için kullanılacak MD5 parolaları oluşturarak başlayın. Passw0rd’ı istediğiniz güçlü parolayla değiştirmeyi unutmayın

$ echo -n StrongUserPassw0rd | openssl md5
(stdin)= d41e98d1eafa6d6011d3a70f1a5b92f0

Alternatif olarak şunu kullanın:

$ printf '%s'StrongUserPassw0rd | md5sum
d41e98d1eafa6d6011d3a70f1a5b92f0  -

Ardından, kullanıcı kimlik doğrulama dosyasını (user-mapping.xml) aşağıdaki gibi oluşturun.

sudo vim /etc/guacamole/user-mapping.xml

Oluşturulan dosyada, uygun ayrıntıları değiştirerek bu içeriği ekleyin

<user-mapping>
        
    <!-- Per-user authentication and config information -->

    <!-- A user using md5 to hash the password
         guacadmin user and its md5 hashed password below is used to 
             login to Guacamole Web UI-->
    <authorize 
            username="admin"
            password="5f4dcc3b5aa765d61d8327deb882cf99"
            encoding="md5">

        <!-- First authorized Remote connection -->
        <connection name="Ubuntu 20.04 Server SSH">
            <protocol>ssh</protocol>
            <param name="hostname">192.168.1.15</param>
            <param name="username">thor</param>
            <param name="port">22</param>
        </connection>

        <!-- Second authorized remote connection -->
        <connection name="Windows 10 RDP">
            <protocol>rdp</protocol>
            <param name="hostname">192.168.1.20</param>
            <param name="port">3389</param>
            <param name="username">techviewleo</param>
            <param name="ignore-cert">true</param>
        </connection>

    </authorize>

</user-mapping>

Guacamole istemci ikili sürümünün aynısını indirin. sürüm değişkenini ayarlayın:

VER=1.5.2

Sonra aşağıdaki gibi indirin

wget https://archive.apache.org/dist/guacamole/$VER/binary/guacamole-$VER.war -O guacamole.war
sudo mv guacamole.war /opt/tomcat/tomcatapp/webapps/guacamole.war

Yapılan bu değişikliklerle birlikte hem Tomcat’i hem de guacd’yi yeniden başlatmamız gerekiyor.

sudo systemctl restart tomcat guacd

Güvenlik duvarı üzerinden guacd bağlantı noktasına izin verin.

sudo ufw allow 4822/tcp

7. Adım: Guacamole Uzak Masaüstü Web Arayüzüne Erişme

Artık Apache Guacamole kuruldu, artık URL’yi kullanarak tarayıcıdan erişebiliriz:

http://server-IP:8080/guacamole

Aşağıdaki giriş ekranını görebilmeniz gerekir:

Yukarıda ayarladığınız kimlik bilgilerini girin. (Passw0rd olarak şifreli bir yönetici kullanıcı oluşturdum) Başarılı bir girişte, bu Guacamole kontrol panelini ve eklenen bağlantıları görmelisiniz.

Uzak bağlantıyı başlatmak için isme tıklayın. örneğin, ubuntu sunucusunda ssh oturumu açmak için üzerine tıklayın ve aşağıdaki gibi oturum açma istemini göreceksiniz:

Parolayı girin ve uzak sunucuya bağlanın.

Terminalinizde çıkış kullanarak oturumu sonlandırın, yine de bilgisayar, telefon, tablet vb.

Yazının orijinalini buradan okuyabilirsiniz.