āĻāĻāĻŋ āĻā§āĻ¨ āĻā§āĻĒāĻ¨ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻ¨āĻ¯āĻŧ āĻ¯ā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ˛ āĻĒāĻ°āĻŋāĻŦā§āĻļāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¤ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§ āĻāĻāĻŋ āĻ¤āĻžāĻ¤ā§āĻā§āĻˇāĻŖāĻŋāĻāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻžāĻĒāĻ āĻāĻā§āĻ°āĻŽāĻŖ āĻāĻŦāĻ āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ° āĻļāĻŋāĻāĻžāĻ° āĻšāĻ¯āĻŧāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ
āĻāĻžāĻ°āĻĒāĻŋāĻ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻĻ āĻĒā§āĻ°ā§āĻ āĻ¯āĻž āĻāĻāĻ¤ āĻ¸āĻāĻ¯ā§āĻāĻā§āĻ˛āĻŋāĻā§ āĻ§ā§āĻ° āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻĒāĻā§āĻˇā§āĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ āĻĒā§āĻ°ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻ¸āĻāĻ¯ā§āĻāĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻŦā§āĻ¨ āĻ¨āĻžā§ˇ āĻ¤āĻžāĻā§ āĻ¤āĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ¨āĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻŽāĻž āĻļā§āĻˇ āĻ¨āĻž āĻšāĻāĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻŦāĻž āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻāĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ, āĻāĻžāĻ°āĻĒāĻŋāĻāĻā§āĻ˛āĻŋ āĻ¸ā§āĻ°āĻā§āĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ° āĻā§āĻŽāĻŋ āĻĨā§āĻā§ āĻ°āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻļāĻ˛āĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻāĻŦāĻ āĻāĻāĻ¨ āĻāĻāĻŋ āĻ¸ā§āĻĒā§āĻ¯āĻžāĻŽāĻžāĻ° āĻāĻŦāĻ āĻāĻŦā§āĻˇāĻāĻĻā§āĻ° āĻā§āĻŦāĻ¨ āĻ¨āĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ° āĻŦāĻŋāĻ¸ā§āĻ¤ā§āĻ¤ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨āĻŋāĻāĻ¯āĻŧā§ āĻ¨āĻŋāĻ¯ā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§ (āĻšāĻžāĻŦā§āĻ°ā§āĻ¤ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ:
āĻā§āĻ°āĻŋāĻ¸ āĻāĻ¯āĻŧā§āĻ˛āĻ¨āĻ¸ āĻ¨āĻžāĻŽā§ āĻāĻāĻāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ
ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻā§āĻ°ā§āĻāĻ° āĻĻā§āĻļā§āĻ¯āĻ¤ āĻāĻ āĻ
āĻĒāĻŽāĻžāĻ¨ āĻĻā§āĻā§ āĻā§āĻ˛āĻžāĻ¨ā§āĻ¤ āĻšāĻ¯āĻŧā§ āĻĒāĻĄāĻŧā§āĻāĻŋāĻ˛ā§āĻ¨ - āĻāĻŦāĻ āĻ¤āĻŋāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻā§āĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ˛āĻŋāĻā§āĻāĻŋāĻ˛ā§āĻ¨
āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨:
$ make
$ ./endlessh &
$ ssh -p2222 localhost
āĻāĻāĻāĻŋ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻžāĻ°āĻĒāĻŋāĻ āĻāĻā§āĻ°āĻŽāĻŖāĻāĻžāĻ°ā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĨā§āĻā§ āĻŦā§āĻļāĻŋ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¨ā§āĻŦā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻž āĻ¸āĻŽā§āĻĒāĻĻā§āĻ° āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ°āĻ āĻ¨āĻ¯āĻŧāĨ¤ āĻ˛ā§āĻāĻ
āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻŽā§āĻĄā§, āĻāĻ¨ā§āĻĄāĻ˛ā§āĻļ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻāĻŋāĻā§ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻĒā§āĻ°ā§āĻ 22-āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻā§āĻ¨ā§āĻĄāĻžāĻ°āĻž āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻ¨āĻ āĻāĻ°ā§āĨ¤ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļāĻā§āĻ˛āĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž SSH-āĻā§ āĻāĻāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°ā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻ¯āĻŧ, āĻ¯āĻž āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻāĻāĻāĻŋ āĻā§āĻ°āĻŽ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻ˛āĻā§āĻ° āĻāĻāĻžāĻ° āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°ā§āĨ¤
āĻā§āĻ°āĻŋāĻ¸ āĻāĻ¯āĻŧā§āĻ˛āĻ¨āĻ¸ āĻŦāĻ˛ā§āĻā§āĻ¨ āĻ¯ā§ āĻ¤āĻžāĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ
āĻ¨ā§āĻā§āĻā§āĻĻāĻā§ āĻāĻžāĻā§ āĻ˛āĻžāĻāĻŋāĻ¯āĻŧā§āĻā§ SSH-
.
āĻāĻ¨ā§āĻĄāĻ˛ā§āĻļ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻ āĻŋāĻ āĻāĻāĻŋāĻ āĻāĻ°ā§: āĻāĻāĻŋ āĻĒāĻžāĻ āĻžāĻ¯āĻŧ āĻ
āĻŦāĻŋāĻ°āĻžāĻŽ āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĻāĻžāĻŦā§ āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻĒā§āĻ°āĻŦāĻžāĻš, āĻ¯āĻž RFC 4253 āĻŽā§āĻ¨ā§ āĻāĻ˛ā§, āĻ
āĻ°ā§āĻĨāĻžā§, āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖā§āĻ° āĻāĻā§ āĻĒāĻžāĻ āĻžāĻ¨, āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ˛āĻžāĻāĻ¨ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ SSH-
āĻāĻŦāĻ āĻ˛āĻžāĻāĻ¨ āĻļā§āĻˇ āĻ
āĻā§āĻˇāĻ° āĻ¸āĻš 255 āĻ
āĻā§āĻˇāĻ°ā§āĻ° āĻŦā§āĻļāĻŋ āĻ¨āĻ¯āĻŧāĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻ¸āĻŦāĻāĻŋāĻā§ āĻŽāĻžāĻ¨ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻšāĻ¯āĻŧāĨ¤
āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ 10 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§ āĻāĻžāĻāĻŽ āĻāĻāĻ āĻšāĻ¤ā§ āĻŦāĻžāĻ§āĻž āĻĻā§āĻ¯āĻŧ, āĻ¤āĻžāĻ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻŋāĻ°āĻ¤āĻ°ā§ āĻāĻāĻāĻž āĻĒāĻĄāĻŧā§ āĻ¯āĻžāĻŦā§āĨ¤
āĻ¯ā§āĻšā§āĻ¤ā§ āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻā§āĻ°āĻžāĻĢāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻĄā§āĻāĻž āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ, āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻšāĻāĨ¤ āĻāĻāĻŋ āĻā§āĻ¨ā§ āĻ¸āĻžāĻāĻĢāĻžāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ āĻāĻŦāĻ āĻāĻāĻžāĻ§āĻŋāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§āĨ¤
āĻ˛ā§āĻāĻ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻā§āĻ¨ āĻ¯ā§ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§ āĻāĻŦāĻ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ āĻ˛āĻā§āĻˇāĻŋāĻ¤āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻ§ā§āĻ¨āĻŋāĻ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋāĻāĻžāĻāĻ°āĻžāĻ¸ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ "āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ" āĻĨā§āĻā§ āĻāĻŋāĻ¨ā§āĻ¨, āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ°āĻā§ āĻ§ā§āĻ° āĻāĻ°ā§ āĻĻā§āĻŦā§ āĻ¨āĻžāĨ¤ āĻ¤āĻŋāĻ¨āĻŋ āĻāĻāĻā§ āĻŦā§āĻļāĻŋ āĻ§ā§āĻ°ā§āĻ¤ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻžāĻ°āĻŖā§ āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ āĻāĻŦāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻāĻ°āĻ āĻāĻāĻ¯āĻŧāĻ āĻāĻŽāĻŋāĻ¯āĻŧā§ āĻāĻ¨āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ¨āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻ¯ā§āĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻžāĻ˛ā§ āĻāĻ°ā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻāĻā§āĻ°āĻŽāĻŖāĻāĻžāĻ°ā§āĻ°āĻž āĻŽā§āĻļāĻŋāĻ¨ā§ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻ¨āĻŋāĻˇā§āĻāĻžāĻļāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸āĻāĻ¯ā§āĻ āĻā§āĻ˛āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻāĻŋ DDoS āĻāĻā§āĻ°āĻŽāĻŖ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¸āĻāĻ¯ā§āĻ āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻāĻāĻŋ āĻĨā§āĻ°ā§āĻĄāĻ āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¨āĻ¯āĻŧ, āĻāĻžāĻ°āĻŖ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻĨā§āĻ°ā§āĻĄ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ° āĻ¸āĻŽā§āĻĒāĻĻ āĻ¨āĻˇā§āĻ āĻāĻ°āĻŦā§āĨ¤
āĻāĻ āĻāĻžāĻ°āĻŖā§āĻ āĻā§āĻ°āĻŋāĻ¸ āĻāĻ¯āĻŧā§āĻ˛āĻ¨āĻ¸ āĻāĻ¨ā§āĻĄāĻ˛ā§āĻļā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻšāĻžāĻ˛āĻāĻž āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻā§āĻ¨: āĻāĻāĻāĻŋ āĻāĻāĻ-āĻĨā§āĻ°ā§āĻĄā§āĻĄ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° poll(2)
, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĢāĻžāĻāĻĻā§ āĻĨāĻžāĻāĻž āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻ°āĻž āĻāĻžāĻ°ā§āĻ¯āĻ¤ āĻā§āĻ¨āĻ āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§ āĻ¨āĻž, āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§ āĻ¸āĻā§āĻ āĻ
āĻŦāĻā§āĻā§āĻ āĻāĻŖāĻ¨āĻž āĻāĻ°ā§ āĻ¨āĻž āĻāĻŦāĻ Endless-āĻ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ°āĻ 78 āĻŦāĻžāĻāĻāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ°āĻŋāĻ¸āĻŋāĻ āĻāĻŦāĻ āĻ¸ā§āĻ¨ā§āĻĄ āĻŦāĻžāĻĢāĻžāĻ° āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ¨āĻž āĻāĻ°āĻ¤ā§, Endlessh āĻāĻāĻāĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸āĻā§āĻ āĻā§āĻ˛ā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ
āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ TCP/IP āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻā§ āĻŦāĻžāĻāĻĒāĻžāĻ¸ āĻāĻ°ā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ TCP āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ āĻ
āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°ā§āĨ¤ āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻŦāĻžāĻĢāĻžāĻ°ā§āĻ° āĻāĻĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ, āĻāĻžāĻ°āĻŖ āĻāĻŽāĻ°āĻž āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻĄā§āĻāĻžāĻ¤ā§ āĻāĻā§āĻ°āĻšā§ āĻ¨āĻāĨ¤
āĻ˛ā§āĻāĻ āĻŦāĻ˛ā§āĻā§āĻ¨, āĻ¤āĻžāĻ° āĻ
āĻ¨ā§āĻˇā§āĻ āĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĄ
import asyncio
import random
async def handler(_reader, writer):
try:
while True:
await asyncio.sleep(10)
writer.write(b'%xrn' % random.randint(0, 2**32))
await writer.drain()
except ConnectionResetError:
pass
async def main():
server = await asyncio.start_server(handler, '0.0.0.0', 2222)
async with server:
await server.serve_forever()
asyncio.run(main())
Asyncio tarpits āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĻāĻ°ā§āĻļāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ āĻšā§āĻāĻāĻŋ āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻĢāĻā§āĻ¸, āĻā§āĻ°ā§āĻŽ āĻŦāĻž āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¨ā§ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§ āĻšāĻŋāĻŽāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻŦā§ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻ° HTTP āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ āĻ¨ā§āĻ āĻāĻ¨ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻā§:
import asyncio
import random
async def handler(_reader, writer):
writer.write(b'HTTP/1.1 200 OKrn')
try:
while True:
await asyncio.sleep(5)
header = random.randint(0, 2**32)
value = random.randint(0, 2**32)
writer.write(b'X-%x: %xrn' % (header, value))
await writer.drain()
except ConnectionResetError:
pass
async def main():
server = await asyncio.start_server(handler, '0.0.0.0', 8080)
async with server:
await server.serve_forever()
asyncio.run(main())
āĻ
āĻ¨āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ˛āĻŋāĻĻā§āĻ° āĻļāĻžāĻ¸ā§āĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ Tarpit āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻšāĻžāĻ¤āĻŋāĻ¯āĻŧāĻžāĻ°āĨ¤ āĻ¸āĻ¤ā§āĻ¯, āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ā§, āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ
āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻāĻāĻ°āĻŖā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻĻā§āĻˇā§āĻāĻŋ āĻāĻāĻ°ā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻāĻŋāĻā§ āĻā§āĻāĻāĻŋ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻā§āĻ
āĻšāĻžāĻŦ:
āĻĒāĻžāĻāĻĨāĻ¨, āĻ¤āĻĨā§āĻ¯ āĻ¸ā§āĻ°āĻā§āĻˇāĻž, āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ¨
āĻā§āĻ¯āĻžāĻā§āĻ¸:
SSH, Endless, tarpit, tarpit, trap, asycio
āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ SSH āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻžāĻāĻĻ (āĻāĻžāĻ°āĻĒāĻŋāĻ)
āĻāĻāĻŋ āĻā§āĻ¨ āĻā§āĻĒāĻ¨ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻ¨āĻ¯āĻŧ āĻ¯ā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ˛ āĻĒāĻ°āĻŋāĻŦā§āĻļāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¤ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§ āĻāĻāĻŋ āĻ¤āĻžāĻ¤ā§āĻā§āĻˇāĻŖāĻŋāĻāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻžāĻĒāĻ āĻāĻā§āĻ°āĻŽāĻŖ āĻāĻŦāĻ āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ° āĻļāĻŋāĻāĻžāĻ° āĻšāĻ¯āĻŧāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ
āĻāĻžāĻ°āĻĒāĻŋāĻ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻĻ āĻĒā§āĻ°ā§āĻ āĻ¯āĻž āĻāĻāĻ¤ āĻ¸āĻāĻ¯ā§āĻāĻā§āĻ˛āĻŋāĻā§ āĻ§ā§āĻ° āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻĒāĻā§āĻˇā§āĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ āĻĒā§āĻ°ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻ¸āĻāĻ¯ā§āĻāĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻŦā§āĻ¨ āĻ¨āĻžā§ˇ āĻ¤āĻžāĻā§ āĻ¤āĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ¨āĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻŽāĻž āĻļā§āĻˇ āĻ¨āĻž āĻšāĻāĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻŦāĻž āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻāĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ, āĻāĻžāĻ°āĻĒāĻŋāĻāĻā§āĻ˛āĻŋ āĻ¸ā§āĻ°āĻā§āĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ° āĻā§āĻŽāĻŋ āĻĨā§āĻā§ āĻ°āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻļāĻ˛āĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻāĻŦāĻ āĻāĻāĻ¨ āĻāĻāĻŋ āĻ¸ā§āĻĒā§āĻ¯āĻžāĻŽāĻžāĻ° āĻāĻŦāĻ āĻāĻŦā§āĻˇāĻāĻĻā§āĻ° āĻā§āĻŦāĻ¨ āĻ¨āĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ° āĻŦāĻŋāĻ¸ā§āĻ¤ā§āĻ¤ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨āĻŋāĻāĻ¯āĻŧā§ āĻ¨āĻŋāĻ¯ā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§ (āĻšāĻžāĻŦā§āĻ°ā§āĻ¤ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ:
āĻā§āĻ°āĻŋāĻ¸ āĻāĻ¯āĻŧā§āĻ˛āĻ¨āĻ¸ āĻ¨āĻžāĻŽā§ āĻāĻāĻāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ
ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻā§āĻ°ā§āĻāĻ° āĻĻā§āĻļā§āĻ¯āĻ¤ āĻāĻ āĻ
āĻĒāĻŽāĻžāĻ¨ āĻĻā§āĻā§ āĻā§āĻ˛āĻžāĻ¨ā§āĻ¤ āĻšāĻ¯āĻŧā§ āĻĒāĻĄāĻŧā§āĻāĻŋāĻ˛ā§āĻ¨ - āĻāĻŦāĻ āĻ¤āĻŋāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻā§āĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ˛āĻŋāĻā§āĻāĻŋāĻ˛ā§āĻ¨
āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨:
$ make
$ ./endlessh &
$ ssh -p2222 localhost
āĻāĻāĻāĻŋ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻžāĻ°āĻĒāĻŋāĻ āĻāĻā§āĻ°āĻŽāĻŖāĻāĻžāĻ°ā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĨā§āĻā§ āĻŦā§āĻļāĻŋ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¨ā§āĻŦā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻž āĻ¸āĻŽā§āĻĒāĻĻā§āĻ° āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ°āĻ āĻ¨āĻ¯āĻŧāĨ¤ āĻ˛ā§āĻāĻ
āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻŽā§āĻĄā§, āĻāĻ¨ā§āĻĄāĻ˛ā§āĻļ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻāĻŋāĻā§ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻĒā§āĻ°ā§āĻ 22-āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻā§āĻ¨ā§āĻĄāĻžāĻ°āĻž āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻ¨āĻ āĻāĻ°ā§āĨ¤ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļāĻā§āĻ˛āĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž SSH-āĻā§ āĻāĻāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°ā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻ¯āĻŧ, āĻ¯āĻž āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻāĻāĻāĻŋ āĻā§āĻ°āĻŽ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻ˛āĻā§āĻ° āĻāĻāĻžāĻ° āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°ā§āĨ¤
āĻā§āĻ°āĻŋāĻ¸ āĻāĻ¯āĻŧā§āĻ˛āĻ¨āĻ¸ āĻŦāĻ˛ā§āĻā§āĻ¨ āĻ¯ā§ āĻ¤āĻžāĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ
āĻ¨ā§āĻā§āĻā§āĻĻāĻā§ āĻāĻžāĻā§ āĻ˛āĻžāĻāĻŋāĻ¯āĻŧā§āĻā§ SSH-
.
āĻāĻ¨ā§āĻĄāĻ˛ā§āĻļ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻ āĻŋāĻ āĻāĻāĻŋāĻ āĻāĻ°ā§: āĻāĻāĻŋ āĻĒāĻžāĻ āĻžāĻ¯āĻŧ āĻ
āĻŦāĻŋāĻ°āĻžāĻŽ āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĻāĻžāĻŦā§ āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻĒā§āĻ°āĻŦāĻžāĻš, āĻ¯āĻž RFC 4253 āĻŽā§āĻ¨ā§ āĻāĻ˛ā§, āĻ
āĻ°ā§āĻĨāĻžā§, āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖā§āĻ° āĻāĻā§ āĻĒāĻžāĻ āĻžāĻ¨, āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ˛āĻžāĻāĻ¨ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ SSH-
āĻāĻŦāĻ āĻ˛āĻžāĻāĻ¨ āĻļā§āĻˇ āĻ
āĻā§āĻˇāĻ° āĻ¸āĻš 255 āĻ
āĻā§āĻˇāĻ°ā§āĻ° āĻŦā§āĻļāĻŋ āĻ¨āĻ¯āĻŧāĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻ¸āĻŦāĻāĻŋāĻā§ āĻŽāĻžāĻ¨ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻšāĻ¯āĻŧāĨ¤
āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ 10 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§ āĻāĻžāĻāĻŽ āĻāĻāĻ āĻšāĻ¤ā§ āĻŦāĻžāĻ§āĻž āĻĻā§āĻ¯āĻŧ, āĻ¤āĻžāĻ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻŋāĻ°āĻ¤āĻ°ā§ āĻāĻāĻāĻž āĻĒāĻĄāĻŧā§ āĻ¯āĻžāĻŦā§āĨ¤
āĻ¯ā§āĻšā§āĻ¤ā§ āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻā§āĻ°āĻžāĻĢāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻĄā§āĻāĻž āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ, āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻšāĻāĨ¤ āĻāĻāĻŋ āĻā§āĻ¨ā§ āĻ¸āĻžāĻāĻĢāĻžāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ āĻāĻŦāĻ āĻāĻāĻžāĻ§āĻŋāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§āĨ¤
āĻ˛ā§āĻāĻ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻā§āĻ¨ āĻ¯ā§ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§ āĻāĻŦāĻ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ āĻ˛āĻā§āĻˇāĻŋāĻ¤āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻ§ā§āĻ¨āĻŋāĻ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋāĻāĻžāĻāĻ°āĻžāĻ¸ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ "āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ" āĻĨā§āĻā§ āĻāĻŋāĻ¨ā§āĻ¨, āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ°āĻā§ āĻ§ā§āĻ° āĻāĻ°ā§ āĻĻā§āĻŦā§ āĻ¨āĻžāĨ¤ āĻ¤āĻŋāĻ¨āĻŋ āĻāĻāĻā§ āĻŦā§āĻļāĻŋ āĻ§ā§āĻ°ā§āĻ¤ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻžāĻ°āĻŖā§ āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ āĻāĻŦāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻāĻ°āĻ āĻāĻāĻ¯āĻŧāĻ āĻāĻŽāĻŋāĻ¯āĻŧā§ āĻāĻ¨āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ¨āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻ¯ā§āĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻžāĻ˛ā§ āĻāĻ°ā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻāĻā§āĻ°āĻŽāĻŖāĻāĻžāĻ°ā§āĻ°āĻž āĻŽā§āĻļāĻŋāĻ¨ā§ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻ¨āĻŋāĻˇā§āĻāĻžāĻļāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸āĻāĻ¯ā§āĻ āĻā§āĻ˛āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻāĻŋ DDoS āĻāĻā§āĻ°āĻŽāĻŖ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¸āĻāĻ¯ā§āĻ āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻāĻāĻŋ āĻĨā§āĻ°ā§āĻĄāĻ āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¨āĻ¯āĻŧ, āĻāĻžāĻ°āĻŖ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻĨā§āĻ°ā§āĻĄ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ° āĻ¸āĻŽā§āĻĒāĻĻ āĻ¨āĻˇā§āĻ āĻāĻ°āĻŦā§āĨ¤
āĻāĻ āĻāĻžāĻ°āĻŖā§āĻ āĻā§āĻ°āĻŋāĻ¸ āĻāĻ¯āĻŧā§āĻ˛āĻ¨āĻ¸ āĻāĻ¨ā§āĻĄāĻ˛ā§āĻļā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻšāĻžāĻ˛āĻāĻž āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻā§āĻ¨: āĻāĻāĻāĻŋ āĻāĻāĻ-āĻĨā§āĻ°ā§āĻĄā§āĻĄ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° poll(2)
, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĢāĻžāĻāĻĻā§ āĻĨāĻžāĻāĻž āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻ°āĻž āĻāĻžāĻ°ā§āĻ¯āĻ¤ āĻā§āĻ¨āĻ āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§ āĻ¨āĻž, āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§ āĻ¸āĻā§āĻ āĻ
āĻŦāĻā§āĻā§āĻ āĻāĻŖāĻ¨āĻž āĻāĻ°ā§ āĻ¨āĻž āĻāĻŦāĻ Endless-āĻ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ°āĻ 78 āĻŦāĻžāĻāĻāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ°āĻŋāĻ¸āĻŋāĻ āĻāĻŦāĻ āĻ¸ā§āĻ¨ā§āĻĄ āĻŦāĻžāĻĢāĻžāĻ° āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ¨āĻž āĻāĻ°āĻ¤ā§, Endlessh āĻāĻāĻāĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸āĻā§āĻ āĻā§āĻ˛ā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ
āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ TCP/IP āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻā§ āĻŦāĻžāĻāĻĒāĻžāĻ¸ āĻāĻ°ā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ TCP āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ āĻ
āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°ā§āĨ¤ āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻŦāĻžāĻĢāĻžāĻ°ā§āĻ° āĻāĻĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ, āĻāĻžāĻ°āĻŖ āĻāĻŽāĻ°āĻž āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻĄā§āĻāĻžāĻ¤ā§ āĻāĻā§āĻ°āĻšā§ āĻ¨āĻāĨ¤
āĻ˛ā§āĻāĻ āĻŦāĻ˛ā§āĻā§āĻ¨, āĻ¤āĻžāĻ° āĻ
āĻ¨ā§āĻˇā§āĻ āĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĄ
import asyncio
import random
async def handler(_reader, writer):
try:
while True:
await asyncio.sleep(10)
writer.write(b'%xrn' % random.randint(0, 2**32))
await writer.drain()
except ConnectionResetError:
pass
async def main():
server = await asyncio.start_server(handler, '0.0.0.0', 2222)
async with server:
await server.serve_forever()
asyncio.run(main())
Asyncio tarpits āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĻāĻ°ā§āĻļāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ āĻšā§āĻāĻāĻŋ āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻĢāĻā§āĻ¸, āĻā§āĻ°ā§āĻŽ āĻŦāĻž āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¨ā§ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§ āĻšāĻŋāĻŽāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻŦā§ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻ° HTTP āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ āĻ¨ā§āĻ āĻāĻ¨ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻā§:
import asyncio
import random
async def handler(_reader, writer):
writer.write(b'HTTP/1.1 200 OKrn')
try:
while True:
await asyncio.sleep(5)
header = random.randint(0, 2**32)
value = random.randint(0, 2**32)
writer.write(b'X-%x: %xrn' % (header, value))
await writer.drain()
except ConnectionResetError:
pass
async def main():
server = await asyncio.start_server(handler, '0.0.0.0', 8080)
async with server:
await server.serve_forever()
asyncio.run(main())
āĻ
āĻ¨āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ˛āĻŋāĻĻā§āĻ° āĻļāĻžāĻ¸ā§āĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ Tarpit āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻšāĻžāĻ¤āĻŋāĻ¯āĻŧāĻžāĻ°āĨ¤ āĻ¸āĻ¤ā§āĻ¯, āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ā§, āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ
āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻāĻāĻ°āĻŖā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻĻā§āĻˇā§āĻāĻŋ āĻāĻāĻ°ā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻāĻŋāĻā§ āĻā§āĻāĻāĻŋ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻā§āĻ
āĻāĻ¤ā§āĻ¸: www.habr.com