HTML5 Gateway ile Hedef Sunuculara RDP ve SSH Bağlantısı
Bu yazımda yine OpenSource uygulamalarından biri olan Apache Guacamole (HTML5) ile hedef sunucu ya da sistemlere RDP ve SSH nasıl yapılır bundan bahsediyor olacağım.
Apache Guacamole, istemcisiz bir uzak masaüstü ağ geçididir. RDP, SSH ve VNC gibi standart protokolleri destekler. Herhangi bir eklenti veya istemci yazılımı gerekmediği için istemcisiz olarak adlandırıyoruz.
HTML5 sayesinde, Guacamole bir sunucuya kurulduktan sonra, masaüstlerinize, uzak sunucularınıza, network cihazlarınıza (vs) erişmek için tek ihtiyacınız olan bir web tarayıcısıdır. Guacamole istemcisi bir HTML5 web uygulaması olduğundan, bilgisayarlarınızın kullanımı herhangi bir cihaza veya konuma bağlı değildir. Bir web tarayıcısına erişiminiz olduğu sürece makinelerinize erişebilirsiniz. Bu sayede akıllı cihazlar (akıllı telefon, tabletler gibi) üzerinden bile RDP, SSH, VNC gibi bağlantılar yapabiliyor olacaksınız.
Guacamole Demo:
Apache Guacamole, Apache Tomcat bileşenlerini Ubuntu 18.04 LTS üzerine kurulumlarını yaptıktan sonra örnek olması açısından bir kaç sunucuya Web Tarayıcı üzerinden bağlantı yapacağım. Bu arada Web server tomcat olmak zorunda değil Nginx ve başka web serverları kullanabilirsiniz.
Guacamole Server’ın Yüklenmesi:
1. Guacamole’i kurmadan önce, önce bağımlılıklarına dikkat etmeniz gerekir.
Debian ve Ubuntu (sudo):
Apache Guacamole kurulumu öncesi Ubuntu bağımlılıkları ve tomcat kurulumu
sudo apt-get install libcairo2-dev libjpeg62-dev libpng-dev libossp-uuid-dev libfreerdp-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libssh-dev tomcat9 tomcat9-admin tomcat9-user freerdp2-x11
RHEL / CentOS / Fedora 18-21:
Apache Guacamole kurulumu öncesi RHEL / CentOS / Fedora 18 – 21 bağımlılıkları ve tomcat kurulumu
yum install cairo-devel libjpeg-devel libpng-devel uuid-devel freerdp-devel pango-devel libssh2-devel libssh-dev tomcat tomcat-admin-webapps tomcat-webapps freerdp2-x11
In Fedora 22-23:
Apache Guacamole kurulumu Fedora 22 – 23 bağımlılıkları ve tomcat kurulumu
dnf install cairo-devel libjpeg-devel libpng-devel uuid-devel freerdp-devel pango-devel libssh2-devel libssh-devel tomcat tomcat-admin-webapps tomcat-webapps freerdp2-x11
2. Kurulum dosyalarının indirilmesi ve sıkıştırılmış dosyadan çıkarılması. (Ubuntu ile kuruluma devam ediyorum)
wget https://serdarkurt.com.tr/download/guacamole-server-1.1.0.tar.gz tar zxf guacamole-server-1.1.0.tar.gz
cd guacamole-server-1.1.0 ./configure
Beklendiği gibi, config sisteminizi gerekli bağımlılıkların olup olmadığını ve desteklenen iletişim protokollerini kontrol eder (vurgulanan karede görülebileceği gibi, Uzak Masaüstü Protokolü (RDP) ve SSH daha önce kurulmuş olan bağımlılıklar tarafından desteklenir) .
RDP ve SSH yes olarak gözüküyor ise bundan sonraki adımlara geçebiliriz.
3. Yukarıdaki görüntüdeki son satırın da belirttiği gibi, programı derlemek için make ve make install komutlarını çalıştırın. Eğer root değilseniz make install kısmında hata alabilirsiniz. make install komutunu başında sudo olarak ya da root haklarında çalıştırmayı unutmayınız.
sudo make sudo make install
4. Kurulu kitaplıkların önbelleğini güncelleyin.
sudo ldconfig
Guacamole Client’ın Yüklenmesi
Yukarıdaki adımları tamamladıktan sonra, guacamole sunucusu kurulmuş olacaktır. Aşağıdaki talimatlar artık guacd (Javascript’i RDP veya SSH gibi iletişim protokolleriyle entegre eden proxy arka plan programı) ve son HTML5 uygulamasını oluşturan bileşen guacamole.war’ı (istemci) kurmanıza yardımcı olacaktır.
Her iki bileşenin de (guacamole sunucusu ve istemcisi) aynı makineye kurulması gerektiğini unutmayın – bağlanmak istediğiniz makinelere istemci yüklemenize gerek yoktur).
İstemciyi indirmek için şu adımları izleyin:
5. Web uygulaması arşivini indirin ve adını guacamole.war olarak değiştirin.
Not: Dağıtımınıza bağlı olarak, Tomcat kütüphaneleri dizini / var / lib / tomcat konumunda bulunabilir.
cd /var/lib/tomcat9 sudo wget https://serdarkurt.com.tr/download/guacamole-1.1.0.war sudo mv guacamole-1.1.0.war /var/lib/tomcat9/webapps/guacamole.war
6. Yapılandırma dosyasını oluşturun (/etc/guacamole/guacamole.properties). Bu dosya Guacamole’un guacd’ye bağlanması için talimatları içerir:
sudo mkdir /etc/guacamole sudo touch /etc/guacamole/guacamole.properties sudo touch /etc/guacamole/user-mapping.xml sudo mkdir /usr/share/tomcat9/.guacamole
Aşağıdaki içerikleri /etc/guacamole/guacamole.properties dizinine ekleyin. Bir sonraki adımda oluşturacağımız bir dosyaya referans verdiğimizi unutmayın (/etc/guacamole/user-mapping.xml):
guacd-hostname: localhost guacd-port: 4822 user-mapping: /etc/guacamole/user-mapping.xml auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider basic-user-mapping: /etc/guacamole/user-mapping.xml
Ve Tomcat’in dosyayı okuyabilmesi için sembolik bir bağlantı oluşturun:
ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat9/.guacamole/
7. Guacamole, user-mapping.xml dosyasını kullanır, hangi dosyayı Guacamole web arayüzünde (<authorize> etiketleri arasında) kimlik doğrulamasına izin verildiğini ve hangi bağlantıları (<connection> etiketleri arasında) kullanabileceğini tanımlamak için bu dosyayı oluşturun:
Aşağıdaki kullanıcı eşlemesi, Guacamole web arayüzüne şifre serdarkurt ile kullanıcı teknolojisine erişim sağlar. Ardından, SSH bağlantısının içine CentOS kutusuna giriş yapmak için geçerli bir kullanıcı adı koymamız gerekiyor (Guacamole bağlantıyı başlattığında ilgili şifreyi girmeniz istenecektir).
Windows Server 2016 kutusu durumunda, RDP üzerinden giriş ekranı sunulacağımızdan bunu yapmaya gerek yoktur.
serdarkurt parolasının md5 karmasını elde etmek için aşağıdaki komutu yazın:
printf '%s' "serdarkurt" | md5sum
Bu sayede serdarkurt şifresinin md5 ile encrypt edilmiş halini aldık. Bu bilgileri user-mapping.xml dosyasına yazıyor olacağız.
Ardından komutun çıktısını <authorize> etiketlerinin içindeki şifre alanına ekleyin:
<user-mapping> <authorize username="serdarkurt" password="8f3ac14b103f250a5c6a4d588f621aa3" encoding="md5"> <connection name="CentOS"> <protocol>ssh</protocol> <param name="hostname">10.61.61.100</param> <param name="port">22</param> <param name="username">serdarkurt</param> </connection> <connection name="Windows Server 2016"> <protocol>rdp</protocol> <param name="hostname">10.61.61.38</param> <param name="port">3389</param> </connection> </authorize> </user-mapping>
Hassas bilgiler içeren tüm dosyalarda olduğu gibi, izinleri kısıtlamak ve user-mapping.xml dosyasının sahipliğini değiştirmek önemlidir:
chmod 600 /etc/guacamole/user-mapping.xml chown tomcat:tomcat /etc/guacamole/user-mapping.xml
Tomcat guacd servislerini başlatıyoruz.
service tomcat9 start /usr/local/sbin/guacd &
Kurulum ve yapılandırma ayarlarımız tamamlandı. Artık Web Arayüzden giriş yapıp serdarkurt kullanıcısına tanımlı olan sunucuları görüp bunlara SSH ya da RDP bağlantısı yapabiliriz.
Guacamole Web Arayüzüne Giriş
8. Guacamole web arayüzüne erişmek için bir web tarayıcısı açın ve http://server:8080/guacamole adresine gidin; burada sunucu, sunucunuzun bilgisayar adı veya IP adresidir (bizim durumumuzda http://192.168.140.130:8080/guacamole) adresine girin ve daha önce verilen kimlik bilgileri ile giriş yapın (kullanıcı adı: serdarkurt, şifre: serdarkurt):
Kurulumu yaptığınız cihaz üzerinden http://localhost:8080/guacamole adresi ile de giriş yapabilirsiniz.
9. Login’e (Giriş) tıkladıktan sonra, user-mapping.xml dosyasında “serdarkurt” kullanıcısı için tanımlamış olduğumuz sunucuları görebiliyoruz.
10. user-mapping.xml’de tanımlamış olduğum CentOS sunucusuna Web Tarayıcım üzerinden bağlantı yapıyorum:
11. user-mapping.xml’de tanımlamış olduğum Windows sunucusuna Web Tarayıcım üzerinden bağlantı yapıyorum:
12. Açık bağlantılarım ana sayfa’da gözüküyor olacak:
Özet
Bu yazıda, RDP ve SSH üzerinden uzak makinelere erişime izin vermek için Guacamole’in nasıl kurulacağını ve yapılandırılacağını açıkladım. Resmi web sitesinde, VNC gibi diğer protokolleri ve DB tabanlı gibi diğer kimlik doğrulama mekanizmalarını kullanarak erişim kurmanıza yardımcı olacak kapsamlı dokümanları bulabilirsiniz.
Başarı öykülerinizi, soru ve sorunlarınızı benimle paylaşmaktan çekinmeyiniz.
Resmi Web Site