āĻāĻŽāĻāĻ¸ āĻ°āĻŋāĻŽā§‹āĻŸ āĻĄā§‡āĻ¸ā§āĻ•āĻŸāĻĒ āĻ—ā§‡āĻŸāĻ“āĻ¯āĻŧā§‡, HAProxy āĻāĻŦāĻ‚ āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻŦā§āĻ°ā§āĻŸ āĻĢā§‹āĻ°ā§āĻ¸

āĻŦāĻ¨ā§āĻ§ā§āĻ°āĻž, āĻšā§āĻ¯āĻžāĻ˛ā§‹!

āĻŦāĻžāĻĄāĻŧāĻŋ āĻĨā§‡āĻ•ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ…āĻĢāĻŋāĻ¸ā§‡āĻ° āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§‡āĻ• āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ¤āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻšāĻ˛ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻĢāĻŸ āĻ°āĻŋāĻŽā§‹āĻŸ āĻĄā§‡āĻ¸ā§āĻ•āĻŸāĻĒ āĻ—ā§‡āĻŸāĻ“āĻ¯āĻŧā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĨ¤ āĻāĻŸāĻŋ HTTP āĻāĻ° āĻ‰āĻĒāĻ° RDPāĨ¤ āĻ†āĻŽāĻŋ āĻāĻ–āĻžāĻ¨ā§‡ RDGW āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ¨āĻž, āĻ•ā§‡āĻ¨ āĻāĻŸāĻŋ āĻ­āĻžāĻ˛ āĻŦāĻž āĻ–āĻžāĻ°āĻžāĻĒ āĻ¤āĻž āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ¨āĻž, āĻ†āĻ¸ā§āĻ¨ āĻāĻŸāĻŋāĻ•ā§‡ āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ā§‡āĻ° āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻŋāĨ¤ āĻ†āĻŽāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° RDGW āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ•ā§‡ āĻ–āĻžāĻ°āĻžāĻĒ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¨ā§‡āĻŸ āĻĨā§‡āĻ•ā§‡ āĻ°āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻ¤ā§‡ āĻšāĻžāĻ‡āĨ¤ āĻ†āĻŽāĻŋ āĻ¯āĻ–āĻ¨ RDGW āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻŋ, āĻ¤āĻ–āĻ¨āĻ‡ āĻ†āĻŽāĻŋ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ‰āĻĻā§āĻŦāĻŋāĻ—ā§āĻ¨ āĻšāĻ¯āĻŧā§‡ āĻĒāĻĄāĻŧāĻŋ, āĻŦāĻŋāĻļā§‡āĻˇ āĻ•āĻ°ā§‡ āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄā§‡āĻ° āĻĒāĻžāĻļāĻŦāĻŋāĻ• āĻļāĻ•ā§āĻ¤āĻŋāĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§‡ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻžāĨ¤ āĻ†āĻŽāĻŋ āĻ…āĻŦāĻžāĻ• āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ āĻ¯ā§‡ āĻ†āĻŽāĻŋ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¨ā§‡āĻŸā§‡ āĻāĻŸāĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻŦ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ‡āĻ¨āĻŋāĨ¤ āĻ“āĻ¯āĻŧā§‡āĻ˛, āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻœā§‡āĻ•ā§‡ āĻāĻŸāĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡.

RDGW āĻāĻ° āĻ¨āĻŋāĻœā§‡āĻ° āĻ•ā§‹āĻ¨ā§‹ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž āĻ¨ā§‡āĻ‡āĨ¤ āĻšā§āĻ¯āĻžāĻ, āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻĻāĻž āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ–āĻžāĻ˛āĻŋ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ‰āĻ¨ā§āĻŽā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻŋ āĻ¸āĻ āĻŋāĻ• āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ• āĻŦāĻž āĻ¤āĻĨā§āĻ¯ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻŦāĻŋāĻļā§‡āĻˇāĻœā§āĻžāĻ•ā§‡ āĻ…āĻ¸ā§āĻŦāĻ¸ā§āĻ¤āĻŋāĻ¤ā§‡ āĻĢā§‡āĻ˛āĻŦā§‡āĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, āĻāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ…ā§āĻ¯āĻžāĻ•āĻžāĻ‰āĻ¨ā§āĻŸ āĻŦā§āĻ˛āĻ• āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻāĻĄāĻŧāĻžāĻ¤ā§‡ āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻŦā§‡, āĻ¯āĻ–āĻ¨ āĻāĻ•āĻœāĻ¨ āĻ…āĻ¸āĻžāĻŦāĻ§āĻžāĻ¨ āĻ•āĻ°ā§āĻŽāĻšāĻžāĻ°ā§€ āĻ¤āĻžāĻ° āĻŦāĻžāĻĄāĻŧāĻŋāĻ° āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻ°ā§āĻĒā§‹āĻ°ā§‡āĻŸ āĻ…ā§āĻ¯āĻžāĻ•āĻžāĻ‰āĻ¨ā§āĻŸā§‡āĻ° āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻŸāĻŋ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–ā§‡ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ¤āĻžāĻ° āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡āĨ¤

āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻĨā§‡āĻ•ā§‡ āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻ¸āĻŽā§āĻĒāĻĻ āĻ°āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ, āĻĒā§āĻ°āĻ•āĻžāĻļāĻ¨āĻž āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ WAF āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡āĨ¤ āĻ†āĻ¸ā§āĻ¨ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ¯ā§‡ RDGW āĻāĻ–āĻ¨āĻ“ http, āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻāĻŸāĻŋ āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻāĻŦāĻ‚ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¨ā§‡āĻŸā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§‡āĻˇ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻĒā§āĻ˛āĻžāĻ— āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ•āĻ°ā§‡āĨ¤

āĻ†āĻŽāĻŋ āĻœāĻžāĻ¨āĻŋ āĻ¯ā§‡ āĻāĻ–āĻžāĻ¨ā§‡ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ F5, A10, Netscaler(ADC) āĻ†āĻ›ā§‡āĨ¤ āĻāĻ‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋāĻ° āĻāĻ•āĻœāĻ¨ āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ• āĻšāĻŋāĻ¸āĻžāĻŦā§‡, āĻ†āĻŽāĻŋ āĻŦāĻ˛āĻŦ āĻ¯ā§‡ āĻāĻ‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¨ā§ƒāĻļāĻ‚āĻ¸ āĻļāĻ•ā§āĻ¤āĻŋāĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§‡ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻžāĻ“ āĻ¸āĻŽā§āĻ­āĻŦāĨ¤ āĻāĻŦāĻ‚ āĻšā§āĻ¯āĻžāĻ, āĻāĻ‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ—ā§āĻ˛āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻ¸āĻŋāĻ¨ āĻĒā§āĻ˛āĻžāĻĄ āĻĨā§‡āĻ•ā§‡ āĻ°āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŦā§‡āĨ¤

āĻ¤āĻŦā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ‡ āĻāĻ‡ āĻœāĻžāĻ¤ā§€āĻ¯āĻŧ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•ā§‡āĻ¨āĻžāĻ° āĻ¸āĻžāĻŽāĻ°ā§āĻĨā§āĻ¯ āĻ°āĻžāĻ–ā§‡ āĻ¨āĻž (āĻāĻŦāĻ‚ āĻāĻ‡ āĻœāĻžāĻ¤ā§€āĻ¯āĻŧ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻœāĻ¨ āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ• āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°ā§āĻ¨ :), āĻ¤āĻŦā§‡ āĻāĻ•āĻ‡ āĻ¸āĻžāĻĨā§‡ āĻ¤āĻžāĻ°āĻž āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻžāĻ° āĻ¯āĻ¤ā§āĻ¨ āĻ¨āĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡!

āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ¨āĻžāĻŽā§‚āĻ˛ā§āĻ¯ā§‡āĻ° āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ HAProxy-āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ¨āĻžāĻŽā§‚āĻ˛ā§āĻ¯ā§‡āĻ° āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ°ā§‚āĻĒā§‡ āĻ¸āĻŽā§āĻ­āĻŦā§ˇ āĻ†āĻŽāĻŋ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§‡ āĻĄā§‡āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ 10, āĻšā§āĻ¯āĻžāĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ 1.8.19 āĻ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤ āĻ†āĻŽāĻŋ āĻŸā§‡āĻ¸ā§āĻŸāĻŋāĻ‚ āĻ°āĻŋāĻĒā§‹āĻœāĻŋāĻŸāĻ°āĻŋ āĻĨā§‡āĻ•ā§‡ āĻāĻŸāĻŋ 2.0.xx āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤

āĻ†āĻŽāĻ°āĻž āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡āĻ° āĻ¸ā§āĻ¯ā§‹āĻ—ā§‡āĻ° āĻŦāĻžāĻ‡āĻ°ā§‡ āĻĄā§‡āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻž āĻ›ā§‡āĻĄāĻŧā§‡ āĻĻā§‡āĻŦāĨ¤ āĻ¸āĻ‚āĻ•ā§āĻˇā§‡āĻĒā§‡: āĻ¸āĻžāĻĻāĻž āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ā§‡, āĻĒā§‹āĻ°ā§āĻŸ 443 āĻ›āĻžāĻĄāĻŧāĻž āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°ā§āĻ¨, āĻ§ā§‚āĻ¸āĻ° āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ā§‡ - āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¨ā§€āĻ¤āĻŋ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻĒā§‹āĻ°ā§āĻŸ 22 āĻ›āĻžāĻĄāĻŧāĻž āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ•āĻžāĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¯āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¤āĻž āĻ–ā§āĻ˛ā§āĻ¨ (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ­āĻžāĻ¸āĻŽāĻžāĻ¨ āĻ†āĻ‡āĻĒāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ VRRP)āĨ¤

āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻ†āĻŽāĻŋ SSL āĻŦā§āĻ°āĻŋāĻœāĻŋāĻ‚ āĻŽā§‹āĻĄā§‡ āĻšā§āĻ¯āĻžāĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°ā§‡āĻ›āĻŋ (āĻ“āĻ°āĻĢā§‡ HTTP āĻŽā§‹āĻĄ) āĻāĻŦāĻ‚ RDP-āĻāĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ āĻ•ā§€ āĻšāĻ˛āĻ›ā§‡ āĻ¤āĻž āĻĻā§‡āĻ–āĻ¤ā§‡ āĻ˛āĻ—āĻŋāĻ‚ āĻšāĻžāĻ˛ā§ āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤ āĻ¤āĻžāĻ‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻ¤ā§‡ āĻ—ā§‡āĻ˛ā§‡ āĻŽāĻžāĻāĻĒāĻĨā§‡ āĻšāĻ˛ā§‡ āĻāĻ˛āĻžāĻŽāĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚, RDGateway āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ "āĻ¸āĻŽāĻ¸ā§āĻ¤" āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž /RDWeb āĻĒāĻĨāĻŸāĻŋ āĻ…āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¯āĻž āĻ†āĻ›ā§‡ āĻ¤āĻž āĻšāĻ˛ /rpc/rpcproxy.dll āĻāĻŦāĻ‚ /remoteDesktopGateway/āĨ¤ āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ GET/POST āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž; āĻ¤āĻžāĻĻā§‡āĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ RDG_IN_DATA, RDG_OUT_DATA āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

āĻŦā§‡āĻļāĻŋ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻ•āĻŋāĻ›ā§āĨ¤

āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ•āĨ¤

āĻ†āĻŽāĻŋ mstsc āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻŋ, āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ¯āĻžāĻ¨, āĻ˛āĻ—āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻšāĻžāĻ°āĻŸāĻŋ 401 (āĻ…āĻ¨āĻ¨ā§āĻŽā§‹āĻĻāĻŋāĻ¤) āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻĻā§‡āĻ–ā§āĻ¨, āĻ¤āĻžāĻ°āĻĒāĻ° āĻ†āĻŽāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ¨āĻžāĻŽ/āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ˛āĻŋāĻ–ā§āĻ¨ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž 200 āĻĻā§‡āĻ–ā§āĻ¨āĨ¤

āĻ†āĻŽāĻŋ āĻāĻŸāĻŋ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°āĻŋ, āĻ†āĻŦāĻžāĻ° āĻļā§āĻ°ā§ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻ˛āĻ—āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ†āĻŽāĻŋ āĻāĻ•āĻ‡ āĻšāĻžāĻ°āĻŸāĻŋ 401 āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ‡ā§ˇ āĻ†āĻŽāĻŋ āĻ­ā§āĻ˛ āĻ˛āĻ—āĻ‡āĻ¨/āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĒā§āĻ°āĻŦā§‡āĻļ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻ†āĻŦāĻžāĻ° āĻšāĻžāĻ°āĻŸāĻŋ 401 āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻĻā§‡āĻ–āĻŋā§ˇ āĻ†āĻŽāĻžāĻ° āĻāĻŸāĻŋāĻ‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§ˇ āĻāĻ‡ āĻ†āĻŽāĻ°āĻž āĻ•āĻŋ āĻ§āĻ°āĻž āĻšāĻŦā§‡.

āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ˛āĻ—āĻ‡āĻ¨ āĻ‡āĻ‰āĻ†āĻ°āĻāĻ˛ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻ›āĻŋāĻ˛ āĻ¨āĻž, āĻāĻŦāĻ‚ āĻāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ, āĻšā§āĻ¯āĻžāĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋāĻ¤ā§‡ 401 āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ§āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻ†āĻŽāĻŋ āĻœāĻžāĻ¨āĻŋ āĻ¨āĻž, āĻ†āĻŽāĻŋ 4xx āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ—ā§āĻ˛āĻŋ āĻ§āĻ°āĻŦ (āĻ†āĻ¸āĻ˛ā§‡ āĻ§āĻ°āĻŦ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻŦ)āĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯āĻ“ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤āĨ¤

āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻžāĻ° āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽāĻŸāĻŋ āĻšāĻŦā§‡ āĻ¯ā§‡ āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋ āĻ‡āĻ‰āĻ¨āĻŋāĻŸā§‡ 4xx āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž (āĻŦā§āĻ¯āĻžāĻ•āĻāĻ¨ā§āĻĄā§‡) āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻŦ āĻāĻŦāĻ‚ āĻ¯āĻĻāĻŋ āĻāĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸ā§€āĻŽāĻž āĻ…āĻ¤āĻŋāĻ•ā§āĻ°āĻŽ āĻ•āĻ°ā§‡, āĻ¤āĻŦā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ‡ āĻ†āĻ‡āĻĒāĻŋ āĻĨā§‡āĻ•ā§‡ āĻ†āĻ°āĻ“ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻ–ā§āĻ¯āĻžāĻ¨ (āĻĢā§āĻ°āĻ¨ā§āĻŸāĻāĻ¨ā§āĻĄā§‡) .

āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤āĻ­āĻžāĻŦā§‡, āĻāĻŸāĻŋ āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻŦā§āĻ°ā§āĻŸ āĻĢā§‹āĻ°ā§āĻ¸ āĻĨā§‡āĻ•ā§‡ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž āĻšāĻŦā§‡ āĻ¨āĻž, āĻāĻŸāĻŋ 4xx āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§‡ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž āĻšāĻŦā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¸ā§āĻ¤āĻŋāĻ¤ā§āĻŦāĻšā§€āĻ¨ url (404) āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ•āĻ°ā§‡āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻžāĻŸāĻŋāĻ“ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ā§ˇ

āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻšāĻœ āĻāĻŦāĻ‚ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻŦā§āĻ¯āĻžāĻ•āĻāĻ¨ā§āĻĄā§‡ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ•āĻŋāĻ›ā§ āĻĻā§‡āĻ–āĻž āĻ—ā§‡āĻ˛ā§‡ āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸ āĻ•āĻ°āĻž:

frontend fe_rdp_tsc
    bind *:443 ssl crt /etc/haproxy/cert/desktop.example.com.pem
    mode http
    ...
    default_backend be_rdp_tsc


backend be_rdp_tsc
    ...
    mode http
    ...

    #ŅĐžĐˇĐ´Đ°Ņ‚ŅŒ Ņ‚Đ°ĐąĐģиŅ†Ņƒ, ŅŅ‚Ņ€ĐžĐēОвŅƒŅŽ, 1000 ŅĐģĐĩĐŧĐĩĐŊŅ‚Ов, ĐŋŅ€ĐžŅ‚ŅƒŅ…Đ°ĐĩŅ‚ Ņ‡ĐĩŅ€ĐĩС 15 ŅĐĩĐē, СаĐŋиŅĐ°Ņ‚ŅŒ ĐēĐžĐģ-вО ĐžŅˆĐ¸ĐąĐžĐē Са ĐŋĐžŅĐģĐĩĐ´ĐŊиĐĩ 10 ŅĐĩĐē
    stick-table type string len 128 size 1k expire 15s store http_err_rate(10s)
    #СаĐŋĐžĐŧĐŊиŅ‚ŅŒ ip
    http-request track-sc0 src
    #СаĐŋŅ€ĐĩŅ‚иŅ‚ŅŒ Ņ http ĐžŅˆĐ¸ĐąĐēОК 429, ĐĩŅĐģи Са ĐŋĐžŅĐģĐĩĐ´ĐŊиĐĩ 10 ŅĐĩĐē йОĐģŅŒŅˆĐĩ 4 ĐžŅˆĐ¸ĐąĐžĐē
    http-request deny deny_status 429 if { sc_http_err_rate(0) gt 4 }
	
	...
    server rdgw01 192.168.1.33:443 maxconn 1000 weight 10 ssl check cookie rdgw01
    server rdgw02 192.168.2.33:443 maxconn 1000 weight 10 ssl check cookie rdgw02

āĻ¸ā§‡āĻ°āĻž āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ¨āĻ¯āĻŧ, āĻ†āĻ¸ā§āĻ¨ āĻāĻŸāĻŋāĻ•ā§‡ āĻœāĻŸāĻŋāĻ˛ āĻ•āĻ°āĻŋāĨ¤ āĻ†āĻŽāĻ°āĻž āĻŦā§āĻ¯āĻžāĻ•āĻāĻ¨ā§āĻĄā§‡ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻŦ āĻāĻŦāĻ‚ āĻĢā§āĻ°āĻ¨ā§āĻŸāĻāĻ¨ā§āĻĄā§‡ āĻŦā§āĻ˛āĻ• āĻ•āĻ°āĻŦāĨ¤

āĻ†āĻŽāĻ°āĻž āĻ†āĻ•ā§āĻ°āĻŽāĻŖāĻ•āĻžāĻ°ā§€āĻ° āĻ¸āĻžāĻĨā§‡ āĻ…āĻ­āĻĻā§āĻ° āĻ†āĻšāĻ°āĻŖ āĻ•āĻ°āĻŦ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ° TCP āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻŦāĻžāĻĻ āĻĻā§‡āĻŦāĨ¤

frontend fe_rdp_tsc
    bind *:443 ssl crt /etc/haproxy/cert/ertelecom_ru_2020_06_11.pem
    mode http
    ...
    #ŅĐžĐˇĐ´Đ°Ņ‚ŅŒ Ņ‚Đ°ĐąĐģиŅ†Ņƒ ip Đ°Đ´Ņ€ĐĩŅĐžĐ˛, 1000 ŅĐģĐĩĐŧĐĩĐŊŅ‚Ов, ĐŋŅ€ĐžŅ‚ŅƒŅ…ĐŊĐĩŅ‚ Ņ‡ĐĩŅ€ĐĩС 15 ŅĐĩĐē, ŅĐžŅ…Ņ€ŅĐŊŅŅ‚ŅŒ иС ĐŗĐģОйаĐģŅŒĐŊĐžĐŗĐž ŅŅ‡Ņ‘Ņ‚Ņ‡Đ¸ĐēĐ°
    stick-table type ip size 1k expire 15s store gpc0
    #вСŅŅ‚ŅŒ иŅŅ‚ĐžŅ‡ĐŊиĐē
    tcp-request connection track-sc0 src
    #ĐžŅ‚ĐēĐģĐžĐŊиŅ‚ŅŒ tcp ŅĐžĐĩдиĐŊĐĩĐŊиĐĩ, ĐĩŅĐģи ĐŗĐģОйаĐģŅŒĐŊŅ‹Đš ŅŅ‡Ņ‘Ņ‚Ņ‡Đ¸Đē >0
    tcp-request connection reject if { sc0_get_gpc0 gt 0 }
	
    ...
    default_backend be_rdp_tsc


backend be_rdp_tsc
    ...
    mode http
    ...
	
    #ŅĐžĐˇĐ´Đ°Ņ‚ŅŒ Ņ‚Đ°ĐąĐģиŅ†Ņƒ ip Đ°Đ´Ņ€ĐĩŅĐžĐ˛, 1000 ŅĐģĐĩĐŧĐĩĐŊŅ‚Ов, ĐŋŅ€ĐžŅ‚ŅƒŅ…ĐŊĐĩŅ‚ Ņ‡ĐĩŅ€ĐĩС 15 ŅĐĩĐē, ŅĐžŅ…Ņ€Đ°ĐŊŅŅ‚ŅŒ ĐēĐžĐģ-вО ĐžŅˆĐ¸ĐąĐžĐē Са 10 ŅĐĩĐē
    stick-table type ip size 1k expire 15s store http_err_rate(10s)
    #ĐŧĐŊĐžĐŗĐž ĐžŅˆĐ¸ĐąĐžĐē, ĐĩŅĐģи ĐēĐžĐģ-вО ĐžŅˆĐ¸ĐąĐžĐē Са 10 ŅĐĩĐē ĐŋŅ€ĐĩвŅ‹ŅĐ¸ĐģĐž 8
    acl errors_too_fast sc1_http_err_rate gt 8
    #ĐŋĐžĐŧĐĩŅ‚иŅ‚ŅŒ Đ°Ņ‚Đ°ĐēŅƒ в ĐŗĐģОйаĐģŅŒĐŊĐžĐŧ ŅŅ‡Ņ‘Ņ‚Ņ‡Đ¸ĐēĐĩ (ŅƒĐ˛ĐĩĐģиŅ‡Đ¸Ņ‚ŅŒ ŅŅ‡Ņ‘Ņ‚Ņ‡Đ¸Đē)
    acl mark_as_abuser sc0_inc_gpc0(fe_rdp_tsc) gt 0
    #ОйĐŊŅƒĐģиŅ‚ŅŒ ĐŗĐģОйаĐģŅŒĐŊŅ‹Đš ŅŅ‡Ņ‘Ņ‚Ņ‡Đ¸Đē
    acl clear_as_abuser sc0_clr_gpc0(fe_rdp_tsc) ge 0
    #вСŅŅ‚ŅŒ иŅŅ‚ĐžŅ‡ĐŊиĐē
    tcp-request content track-sc1 src
    #ĐžŅ‚ĐēĐģĐžĐŊиŅ‚ŅŒ, ĐŋĐžĐŧĐĩŅ‚иŅ‚ŅŒ, Ņ‡Ņ‚Đž Đ°Ņ‚Đ°ĐēĐ°
    tcp-request content reject if errors_too_fast mark_as_abuser
    #Ņ€Đ°ĐˇŅ€ĐĩŅˆĐ¸Ņ‚ŅŒ, ŅĐąŅ€ĐžŅĐ¸Ņ‚ŅŒ Ņ„ĐģĐ°ĐļĐžĐē Đ°Ņ‚Đ°Đēи
    tcp-request content accept if !errors_too_fast clear_as_abuser
	
    ...
    server rdgw01 192.168.1.33:443 maxconn 1000 weight 10 ssl check cookie rdgw01
    server rdgw02 192.168.2.33:443 maxconn 1000 weight 10 ssl check cookie rdgw02

āĻāĻ•āĻ‡ āĻœāĻŋāĻ¨āĻŋāĻ¸, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻŦāĻŋāĻ¨āĻ¯āĻŧā§‡āĻ° āĻ¸āĻžāĻĨā§‡, āĻ†āĻŽāĻ°āĻž āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻŸāĻŋ āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻŦ http 429 (āĻ…āĻ¨ā§‡āĻ• āĻ…āĻ¨ā§āĻ°ā§‹āĻ§)

frontend fe_rdp_tsc
    ...
    stick-table type ip size 1k expire 15s store gpc0
    http-request track-sc0 src
    http-request deny deny_status 429 if { sc0_get_gpc0 gt 0 }
    ...
    default_backend be_rdp_tsc

backend be_rdp_tsc
    ...
    stick-table type ip size 1k expire 15s store http_err_rate(10s)
    acl errors_too_fast sc1_http_err_rate gt 8
    acl mark_as_abuser sc0_inc_gpc0(fe_rdp_tsc) gt 0
    acl clear_as_abuser sc0_clr_gpc0(fe_rdp_tsc) ge 0
    http-request track-sc1 src
    http-request allow if !errors_too_fast clear_as_abuser
    http-request deny deny_status 429 if errors_too_fast mark_as_abuser
    ...

āĻ†āĻŽāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŋ: āĻ†āĻŽāĻŋ mstsc āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻāĻ˛ā§‹āĻŽā§‡āĻ˛ā§‹āĻ­āĻžāĻŦā§‡ āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻŋāĨ¤ āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻĒā§āĻ°āĻšā§‡āĻˇā§āĻŸāĻžāĻ° āĻĒāĻ°ā§‡, 10 āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻŸāĻŋ āĻ†āĻŽāĻžāĻ•ā§‡ āĻĒāĻŋāĻ›āĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻ¯āĻŧ āĻāĻŦāĻ‚ mstsc āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ˛āĻ—ā§‡ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤

āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž. āĻ†āĻŽāĻŋ āĻāĻ•āĻœāĻ¨ āĻšā§āĻ¯āĻžāĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ āĻŽāĻžāĻ¸ā§āĻŸāĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻĻā§‚āĻ°ā§‡āĨ¤ āĻ†āĻŽāĻŋ āĻŦā§āĻāĻ¤ā§‡ āĻĒāĻžāĻ°āĻ›āĻŋ āĻ¨āĻž āĻ•ā§‡āĻ¨, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ
http-āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ…āĻ¸ā§āĻŦā§€āĻ•āĻžāĻ° āĻ•āĻ°ā§āĻ¨ deny_status 429 āĻ¯āĻĻāĻŋ { sc_http_err_rate(0) gt 4 }
āĻāĻŸāĻŋ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 10āĻŸāĻŋ āĻ­ā§āĻ˛ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤

āĻ†āĻŽāĻŋ āĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻžāĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻ•āĻ°āĻ›āĻŋ. āĻšā§āĻ¯āĻžāĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋāĻ° āĻ“āĻ¸ā§āĻ¤āĻžāĻĻ, āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻžāĻ•ā§‡ āĻĒāĻ°āĻŋāĻĒā§‚āĻ°āĻ• āĻ•āĻ°ā§‡āĻ¨, āĻ†āĻŽāĻžāĻ•ā§‡ āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°ā§‡āĻ¨, āĻ†āĻŽāĻžāĻ•ā§‡ āĻ†āĻ°āĻ“ āĻ­āĻžāĻ˛ āĻ•āĻ°ā§‡āĻ¨ āĻ¤āĻŦā§‡ āĻ†āĻŽāĻŋ āĻ–ā§āĻļāĻŋ āĻšāĻŦāĨ¤

āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§‡ āĻ†āĻĒāĻ¨āĻŋ RD āĻ—ā§‡āĻŸāĻ“āĻ¯āĻŧā§‡ āĻ°āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻžāĻ¯āĻŧā§‡āĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻāĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻāĻŸāĻŋ āĻ…āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻž āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻšāĻŦā§‡āĨ¤

āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹āĻœ āĻ°āĻŋāĻŽā§‹āĻŸ āĻĄā§‡āĻ¸ā§āĻ•āĻŸāĻĒ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ (mstsc) āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡, āĻāĻŸāĻŋ āĻ˛āĻ•ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻ¯ā§‡ āĻāĻŸāĻŋ TLS1.2 āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡ āĻ¨āĻž (āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹āĻœ 7 āĻ), āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻžāĻ•ā§‡ TLS1 āĻ›ā§‡āĻĄāĻŧā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛; āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻžāĻ‡āĻĢāĻžāĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡ āĻ¨āĻž, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻžāĻ•ā§‡āĻ“ āĻĒā§āĻ°āĻžāĻ¨ā§‹āĻ—ā§āĻ˛āĻŋ āĻ›ā§‡āĻĄāĻŧā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤

āĻ¯āĻžāĻ°āĻž āĻ•āĻŋāĻ›ā§āĻ‡ āĻŦā§‹āĻā§‡āĻ¨ āĻ¨āĻž, āĻļā§āĻ§ā§ āĻļāĻŋāĻ–āĻ›ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻ­āĻžāĻ˛ā§‹ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ¨ āĻ¤āĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĻā§‡āĻŦāĨ¤

haproxy.conf

global
        log /dev/log    local0
        log /dev/log    local1 notice
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
        stats timeout 30s
        user haproxy
        group haproxy
        daemon

        # Default SSL material locations
        ca-base /etc/ssl/certs
        crt-base /etc/ssl/private

        # See: https://ssl-config.mozilla.org/#server=haproxy&server-version=2.0.3&config=intermediate
        #ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE
-RSA-AES256-GCM-SHA384
        ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
        ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
        #ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
        ssl-default-bind-options no-sslv3
        ssl-server-verify none


defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        timeout connect 5000
        timeout client  15m
        timeout server  15m
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http


frontend fe_rdp_tsc
    bind *:443 ssl crt /etc/haproxy/cert/dektop.example.com.pem
    mode http
    capture request header Host len 32
    log global
    option httplog
    timeout client 300s
    maxconn 1000

    stick-table type ip size 1k expire 15s store gpc0
    tcp-request connection track-sc0 src
    tcp-request connection reject if { sc0_get_gpc0 gt 0 }

    acl rdweb_domain hdr(host) -i beg dektop.example.com
    http-request deny deny_status 400 if !rdweb_domain
    default_backend be_rdp_tsc


backend be_rdp_tsc
    balance source
    mode http
    log global

    stick-table type ip size 1k expire 15s store http_err_rate(10s)
    acl errors_too_fast sc1_http_err_rate gt 8
    acl mark_as_abuser sc0_inc_gpc0(fe_rdp_tsc) gt 0
    acl clear_as_abuser sc0_clr_gpc0(fe_rdp_tsc) ge 0
    tcp-request content track-sc1 src
    tcp-request content reject if errors_too_fast mark_as_abuser
    tcp-request content accept if !errors_too_fast clear_as_abuser

    option forwardfor
    http-request add-header X-CLIENT-IP %[src]

    option httpchk GET /
    cookie RDPWEB insert nocache
    default-server inter 3s    rise 2  fall 3
    server rdgw01 192.168.1.33:443 maxconn 1000 weight 10 ssl check cookie rdgw01
    server rdgw02 192.168.2.33:443 maxconn 1000 weight 10 ssl check cookie rdgw02


frontend fe_stats
    mode http
    bind *:8080
    acl ip_allow_admin src 192.168.66.66
    stats enable
    stats uri /stats
    stats refresh 30s
    #stats admin if LOCALHOST
    stats admin if ip_allow_admin

āĻŦā§āĻ¯āĻžāĻ•āĻāĻ¨ā§āĻĄā§‡ āĻĻā§āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ•ā§‡āĻ¨? āĻ•āĻžāĻ°āĻŖ āĻāĻ­āĻžāĻŦā§‡āĻ‡ āĻ†āĻĒāĻ¨āĻŋ āĻĻā§‹āĻˇ āĻ¸āĻšāĻ¨āĻļā§€āĻ˛āĻ¤āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻšā§āĻ¯āĻžāĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ¸āĻŽāĻžāĻ¨ āĻ¸āĻžāĻĻāĻž āĻ†āĻ‡āĻĒāĻŋ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻĻā§āĻŸāĻŋāĻ“ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨: āĻ†āĻĒāĻ¨āĻŋ "āĻŸā§ āĻ—āĻŋāĻ—, āĻĻā§āĻ‡ āĻ•ā§‹āĻ°, āĻ—ā§‡āĻŽāĻŋāĻ‚ āĻĒāĻŋāĻ¸āĻŋ" āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻ‰āĻ‡āĻ•āĻŋāĻĒāĻŋāĻĄāĻŋāĻ¯āĻŧāĻž āĻāĻ‡ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻœāĻ¨ā§āĻ¯ āĻ¯āĻĨā§‡āĻˇā§āĻŸ āĻšāĻŦā§‡.

āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸:

HAProxy āĻĨā§‡āĻ•ā§‡ rdp-āĻ—ā§‡āĻŸāĻ“āĻ¯āĻŧā§‡ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡
āĻ†āĻŽāĻŋ āĻāĻ•āĻŽāĻžāĻ¤ā§āĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¤āĻžāĻ°āĻž āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻŸāĻŋ āĻœāĻŦāĻ°āĻĻāĻ¸ā§āĻ¤āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻŦāĻŋāĻ°āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨