思杰云桌面 Citrix XenDesktop 基于 Citrix Gateway 的定时登录访问控制配置

一、思杰云桌面整体架构说明

思杰云桌面(Citrix Virtual Apps and Desktops)采用分层、集中管控的架构设计,整体包括预控与安全接入层、控制层、资源层及基础设施层,为平台的高可用性、安全性及可扩展性提供系统性保障。

在预控与安全接入层,部署Citrix ADC(Citrix Gateway)作为统一访问入口,承担外部用户接入控制、流量调度与安全策略执行等关键职能。ADC 通过负载均衡、访问策略控制、身份认证集成(如 LDAP、双因子认证)、会话安全防护等能力,对用户访问行为进行集中管理,是云桌面对外服务的第一道安全防线。

在控制层,Delivery Controller(DDC) 负责虚拟桌面与应用的发布和会话调度;StoreFront(SF) 提供统一的用户访问入口;Director 用于系统运行监控、会话管理及故障分析。这些核心组件依赖后端数据库集群存储站点配置及运行数据,其稳定性直接关系到云桌面整体服务能力。

在资源与基础设施层,云桌面运行于统一的虚拟化平台(如 VMware、Hyper-V),并由集中存储系统提供桌面镜像、用户数据及配置文件的持久化支撑,确保性能稳定与数据安全。


二、限制登录时间的必要性

综合云桌面系统的架构特点及实际安全运行情况,通过 Citrix ADC(Citrix Gateway) 实施登录时间限制,非办公时段关闭登录入口,可显著降低被漏洞扫描、暴力破解和自动化攻击命中的概率,从源头减少安全风险。

1、登录Citrix ADC(Citrix Gateway)找到LDAP策略

一个脚本搞定Ubuntu\Rocky登录后自动展示 CPU/内存/多盘使用情况

登录Linux服务器后,自动展示平时关注的系统信息,一目了然。
1、效果展示

2、脚本内容
vi /etc/profile.d/sysinfo.sh

#!/usr/bin/env bash

# ================== Colors ==================
GREEN="\033[1;32m"
YELLOW="\033[1;33m"
CYAN="\033[1;36m"
RESET="\033[0m"

# ================== Separator ==================
LINE_LEN=60
LINE=$(printf '%*s' "$LINE_LEN" '' | tr ' ' '-')

# ================== OS & Kernel ==================
if [ -f /etc/os-release ]; then
    OS_NAME=$(awk -F= '/^PRETTY_NAME/ {gsub(/"/,""); print $2}' /etc/os-release)
else
    OS_NAME=$(uname -s)
fi

KERNEL_VER=$(uname -r)

# ================== Basic Info ==================
HOSTNAME=$(hostname)

UPTIME=$(uptime -p 2>/dev/null | sed 's/^up //')
[ -z "$UPTIME" ] && UPTIME=$(uptime | awk -F',' '{print $1}')

LOADAVG=$(awk '{print $1", "$2", "$3}' /proc/loadavg)

# ================== Memory ==================
read MEM_TOTAL MEM_USED <<<$(free -m | awk '/^Mem:/ {print $2, $3}')
MEM_PCT=$(( MEM_USED * 100 / MEM_TOTAL ))

# ================== IP Address ==================
IP_ADDR=$(hostname -I 2>/dev/null | awk '{print $1}')
IP_ADDR=${IP_ADDR:-"N/A"}

# ================== CPU Usage (top, fast) ==================
CPU_IDLE=$(top -bn1 2>/dev/null \
  | grep -E "Cpu\(s\)|%Cpu\(s\)" \
  | sed 's/,/\n/g' \
  | awk '/id/ {print $1}')

CPU_USAGE=$(awk "BEGIN {printf \"%.0f\", 100 - $CPU_IDLE}")

# ================== Output ==================
echo -e "\n${GREEN}Welcome, system information overview (系统信息概览)${RESET}"
echo -e "${YELLOW}${LINE}${RESET}"

printf "| %-16s | %-38s |\n" "Resource (资源)" "Status (使用情况)"
printf "|------------------|----------------------------------------|\n"
printf "| %-16s | %-38s |\n" "Hostname" "$HOSTNAME"
printf "| %-16s | %-38s |\n" "OS Version" "$OS_NAME"
printf "| %-16s | %-38s |\n" "Kernel Version" "$KERNEL_VER"
printf "| %-16s | %-38s |\n" "IP Address" "$IP_ADDR"
printf "| %-16s | %-38s |\n" "CPU Usage" "${CPU_USAGE}%"
printf "| %-16s | %-38s |\n" "Memory" "${MEM_USED}MB / ${MEM_TOTAL}MB (${MEM_PCT}%)"
printf "| %-16s | %-38s |\n" "Load Average" "$LOADAVG"
printf "| %-16s | %-38s |\n" "Uptime" "$UPTIME"

echo -e "${YELLOW}${LINE}${RESET}"
echo -e "${CYAN}Disk Usage (磁盘使用情况)${RESET}"
echo -e "${YELLOW}${LINE}${RESET}"

printf "| %-20s | %-10s | %-10s | %-6s |\n" \
       "Mount Point" "Used" "Total" "Use%"
printf "|----------------------|------------|------------|--------|\n"

df -h -x tmpfs -x devtmpfs | awk 'NR>1 {
    printf "| %-20s | %-10s | %-10s | %-6s |\n", $6, $3, $2, $5
}'

echo -e "${YELLOW}${LINE}${RESET}"
echo -e "${GREEN}Operate carefully. (谨慎操作)${RESET}\n"