Friday, August 21, 2026

.::: Install Apache Guacamole in Almalinux 10 / Redhat 10 for remote ssh/Rdp via Web Browser :::.

 

1. Pastikan AlmaLinux 10

Saya sarankan minimal AlmaLinux 10.2 karena 10.2 sudah dirilis 26 Mei 2026.

cat /etc/redhat-release 

grep '^PRETTY_NAME=' /etc/os-release | cut -d= -f2- | tr -d '"'

2. Aktifkan EPEL

dnf install -y epel-release
dnf makecache
 
3. Cek FreeRDP SEBELUM install Guacamole

dnf list --showduplicates freerdp-devel
dnf info freerdp-devel
dnf install -y freerdp-devel
dnf list --available '*freerdp*

dnf install -y freerdp-devel

[root@teguhth ~]# rpm -qa | grep -i freerdp
freerdp-libs-3.10.3-12.el10_2.8.x86_64
freerdp-devel-3.10.3-12.el10_2.8.x86_64
[root@teguhth ~]#

4. Install dependency Guacamole

dnf install -y gcc gcc-c++ make autoconf automake libtool cairo-devel libjpeg-turbo-devel libpng-devel libuuid-devel pango-devel libssh2-devel libtelnet-devel libvncserver-devel openssl-devel libvorbis-devel libwebp-devel wget curl tar fontconfig-devel

dnf install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-10.noarch.rpm 
dnf install -y ffmpeg-devel

5. Install Java

Saya sarankan Java 21:

dnf install -y java-21-openjdk java-21-openjdk-devel

Cek:

java -version

6. Tomcat

dnf install -y tomcat9
systemctl status tomcat
systemctl restart tomcat

7. Download Guacamole Server 1.6.0
cd /usr/local/src

wget https://apache.org/dyn/closer.lua/guacamole/1.6.0/source/guacamole-server-1.6.0.tar.gz?action=download 

tar -xzf guacamole-server-1.6.0.tar.gz

mv guacamole-server-1.6.0.tar.gz\?action\=download guacamole-server-1.6.0.tar.gz

8. install 

cd guacamole-server-1.6.0

./configure --with-systemd-dir=/etc/systemd/system

make -j$(nproc)
make install
ldconfig

9. Aktifkan guacd
systemctl daemon-reload

systemctl enable --now guacd

systemctl status guacd

ss -lntp | grep 4822

10. Download Guacamole WAR
cd /tmp

wget https://apache.org/dyn/closer.lua/guacamole/1.6.0/binary/guacamole-1.6.0.war?action=download

mv guacamole-1.6.0.war\?action\=download guacamole-1.6.0.war
cp guacamole-1.6.0.war /var/lib/tomcat/webapps/guacamole.war

11. restart tomcat 
systemctl restart tomcat

12. Buat konfigurasi Guacamole
mkdir -p /etc/guacamole

[root@teguhth guacamole]# cat /etc/guacamole/guacd.conf
[server]
bind_host = 127.0.0.1
bind_port = 4822
[root@teguhth guacamole]#

ln -s /etc/guacamole /usr/share/tomcat/.guacamole

13. restart 
systemctl restart guacd
systemctl restart tomcat

14. Buat user login

Untuk testing paling sederhana bisa menggunakan user-mapping.xml.

[root@teguhth guacamole]# cat /etc/guacamole/user-mapping.xml
<user-mapping>
    <authorize username="admin" password="admin123">

        <connection name="Windows Server - 10.10.10.7">
            <protocol>rdp</protocol>
            <param name="hostname">10.10.10.7</param>
            <param name="port">3389</param>
            <param name="username">Administrator</param>
            <param name="password">xxxx</param>
            <param name="ignore-cert">true</param>
        </connection>

        <connection name="Linux SSH - 10.10.10.22">
            <protocol>ssh</protocol>
            <param name="hostname">10.10.10.22</param>
            <param name="port">22</param>
            <param name="username">root</param>
            <param name="password">xxxx</param>
        </connection>

    </authorize>
</user-mapping>
[root@teguhth guacamole]#

15. login 

http://10.10.10.22:8080/guacamole/

http://10.10.10.23:8080/guacamole/
 






16. log trouble shoot sample jika tidak bisa rdp

./configure --with-rdp

make -j$(nproc)
make install
ldconfig

systemctl restart guacd
systemctl restart tomcat

17. log 

journalctl -u guacd -f | grep -iE '10\.10\.10\.7|rdp|error|fail|connect'

[root@teguhth src]# ls
guacamole-server-1.6.0  guacamole-server-1.6.0.tar.gz
[root@teguhth src]# cd guacamole-server-1.6.0
[root@teguhth guacamole-server-1.6.0]# ./configure --help | grep -i rdp
  --enable-allow-freerdp-snapshots
                          of FreeRDP
  --with-rdp              support RDP [default=check]
  --with-freerdp-plugin-dir=<path>
                          install FreeRDP plugins to the given directory
  RDP_CFLAGS  C compiler flags for RDP, overriding pkg-config
  RDP_LIBS    linker flags for RDP, overriding pkg-config
[root@teguhth guacamole-server-1.6.0]#
[root@teguhth guacamole-server-1.6.0]#
[root@teguhth guacamole-server-1.6.0]# journalctl -u guacd -f | grep -iE '10\.10\.10\.7|rdp|error|fail|connect'
Aug 21 13:33:52 teguhth guacd[18643]: Connection "$7757a530-a305-42dc-a715-b6a783f0a926" removed.
Aug 21 13:33:52 teguhth guacd[18643]: guacd[18643]: INFO:        Connection "$7757a530-a305-42dc-a715-b6a783f0a926" removed.
Aug 21 13:34:23 teguhth guacd[18643]: Creating new client for protocol "rdp"
Aug 21 13:34:23 teguhth guacd[18643]: guacd[18643]: INFO:        Creating new client for protocol "rdp"
Aug 21 13:34:23 teguhth guacd[18702]: Support for protocol "rdp" is not installed
Aug 21 13:34:23 teguhth guacd[18702]: guacd[18702]: WARNING:        Support for protocol "rdp" is not installed
Aug 21 13:34:23 teguhth guacd[18643]: Connection ID is "$1a6bb45b-faaa-43f5-81f9-97b12c981f60"
Aug 21 13:34:23 teguhth guacd[18643]: guacd[18643]: INFO:        Connection ID is "$1a6bb45b-faaa-43f5-81f9-97b12c981f60"
Aug 21 13:34:23 teguhth guacd[18643]: Connection "$1a6bb45b-faaa-43f5-81f9-97b12c981f60" removed.
Aug 21 13:34:23 teguhth guacd[18643]: guacd[18643]: INFO:        Connection "$1a6bb45b-faaa-43f5-81f9-97b12c981f60" removed.

No comments:

Post a Comment

Popular Posts