Hello,

Sounds like you are wanting CAC/PIV for identity access credential management (iCAM).

This is easily done with NGINX this prompts for CAC (Smart card access) once reader loads card in to session NGiNX will verify the cert and if valid you may proceed.

Great thing is this is NGINX function and you can still use SSO/CAS or LDAP with Guacamole.

Hope this helps!

PATH:/etc/nginx/sites-enabled/default

        listen 443 ssl default_server;
        server_name localhost;
                server_tokens off;
                ssl_dhparam /etc/nginx/ssl/dhparam.pem;
                ssl_certificate /etc/nginx/ssl/YOURDOMAIN-bundle.crt ;
                ssl_certificate_key /etc/nginx/ssl/private/YOURDOMAIN_priv.key;                 ssl_ciphers 'TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384';
                ssl_protocols TLSv1.3 TLSv1.2;
                ssl_ecdh_curve secp521r1:secp384r1:prime256v1;
                ssl_prefer_server_ciphers on;
                ssl_session_cache shared:SSL:10m;
                ssl_session_timeout 1d;
                ssl_session_tickets off;
                add_header Referrer-Policy "no-referrer";
                add_header Strict-Transport-Security "max-age=15768000; includeSubDomains" always;
                add_header X-Frame-Options "";
                add_header X-Content-Type-Options "nosniff" always;
                add_header X-XSS-Protection "1; mode=block" always;
                proxy_hide_header Server;
                proxy_hide_header X-Powered-By;
                proxy_hide_header X-Frame-Options;
                client_body_timeout 10;
                client_header_timeout 10;
*                #CAC client Certificate Settings
                ssl_client_certificate /etc/nginx/ssl/dod/dodpki.pem;
                ssl_verify_client on;
                ssl_verify_depth 2;*
error_page 400 496 /400.html; #Custom 400 496 page
location = /400.html {

*Thank You*
Sean Hulbert


*Security Centric Inc.*
A Cybersecurity Virtualization Enablement Company
/StormCloud Gov, Protected CUI Environment!/


Industry's most secure CMMC/iTAR virtual desktops!


*/FedRAMP MIL4 in process/*
System Award Management
*CAGE: 8AUV4*
*SAM ID: UMJLJ8A7BMT3*

AFCEA San Francisco Chapter President
If you have heard of a hacker by name, he/she has failed, fear the hacker you haven’t heard of!

CONFIDENTIALITY NOTICE: This communication with its contents may contain confidential and/or legally privileged information. It is solely for the use of the intended recipient(s). Unauthorized interception, review, use or disclosure is prohibited and may violate applicable laws including the Electronic Communications Privacy Act. If you are not the intended recipient, please contact the sender and destroy all copies of the communication. Content within this email communication is not legally binding as a contract and no promises are guaranteed unless in a formal contract outside this email communication.

igitur qui desiderat pacem, praeparet bellum!!!

Epitoma Rei Militaris

On 1/22/2025 11:51 PM, Bhupender wrote:

Dear Support Team,

I hope this email finds you well. I am encountering issues with smart card integration in our Guacamole deployment and would appreciate your assistance.

*Environment Details:*

  * *Guacamole Version:* 1.5.4
  * *OS:* Ubuntu 22.04
  * *Smart Card Reader:* ACS ACR39U ICC Reader
  * *Card Type:* Siemens SLE 4432/42
  * *FreeRDP Version:* 2.6.1

*Key Issue:*

    Smart card authentication works with direct xfreerdp connections
    but *fails when connecting through Guacamole*. The smart card
    reader is detected at system level but not being redirected
    through the Guacamole connection.

*Working Configuration:*

bash
Copy
|# Direct xfreerdp connection (WORKING): xfreerdp /v:<RDP-SERVER>:<PORT> /u:<USERNAME> /smartcard|

*Current Implementation:*

 1. *Guacamole Properties:*
    properties
    Copy
    |rdp.security: nla rdp.enable-smartcard: true
    rdp.smartcard-readers: ACS ACR39U ICC Reader 00 00
    rdp.enable-drive: true rdp.create-drive-path: true
    rdp.ignore-cert: true|

*Steps Completed:*

 1. ✅ Recompiled guacamole-server with smart card support:
    bash
    Copy
    |CFLAGS="-I/usr/include/PCSC -I/usr/include/freerdp2
    -DFREERDP_SMARTCARD_EMULATE=1" LDFLAGS="-lpcsclite -lfreerdp2"|
 2. ✅ Installed all required dependencies
 3. ✅ Configured proper system permissions
 4. ✅ Verified smart card detection
 5. ✅ Tested multiple connection configurations

*Current Status:*

  * ✅ System properly detects smart card reader
  * ✅ Direct xfreerdp connections work
  * ❌ Guacamole fails to redirect smart card
  * ❌ Basic RDP connectivity affected after changes

*Critical Questions:*

 1. *Configuration:* Are there specific parameters we're missing?
 2. *Debugging:* What are the recommended steps to identify the
    redirection issue?
 3. *Logging:* Is there additional logging we can enable for smart
    card handling?

*Relevant Logs:*

Copy
|Jan 22 12:49:17 guacd[xxxx]: Security mode: NLA Jan 22 12:49:37 guacd[xxxx]: Connected to RDPDR 1.13 as client 0x0017 Jan 22 12:49:38 guacd[xxxx]: RDPDR user logged on|

*Additional Information:*

  * Smart card is detected by |pcsc_scan|
  * All system services are running
  * Proper permissions are set for guacd user

I can provide any additional technical details or logs if needed. Your guidance on resolving this issue would be greatly appreciated.

Thank you for your time and assistance.

Best regards,
Bhupender

Reply via email to