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:
- Guacamole sunucusu- bu, proxy’yi (guacd) ve gerekli kitaplıkları sağlar.
- 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.