āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ WireGuard āĻāĻŦāĻ‚ Raspberry Pi āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ VPN āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°ā§āĻ¨ā§ˇ

āĻ•āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻ—āĻžāĻ°ā§āĻĄ āĻ…āĻ‚āĻļ āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻŦā§‡ āĻ†āĻ¸āĻ¨ā§āĻ¨ āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ 5.6-āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡, āĻ†āĻŽāĻŋ āĻāĻ‡ āĻ­āĻŋāĻĒāĻŋāĻāĻ¨āĻ•ā§‡ āĻ†āĻŽāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻāĻ•ā§€āĻ­ā§‚āĻ¤ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻž āĻĻā§‡āĻ–āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ āĻ°āĻžāĻ¸ā§āĻĒāĻŦā§‡āĻ°āĻŋ āĻĒāĻžāĻ‡āĻ¤ā§‡ āĻāĻ˛āĻŸāĻŋāĻ‡ āĻ°āĻžāĻ‰āĻŸāĻžāĻ°/āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ.

āĻ‰āĻĒāĻ•āĻ°āĻŖ

  • LTE āĻŽāĻĄāĻŋāĻ‰āĻ˛ āĻāĻŦāĻ‚ āĻ¸āĻ°ā§āĻŦāĻœāĻ¨ā§€āĻ¨ IP āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ¸āĻš āĻ°āĻžāĻ¸ā§āĻĒāĻŦā§‡āĻ°āĻŋ āĻĒāĻžāĻ‡ 3āĨ¤ āĻāĻ–āĻžāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ VPN āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĨāĻžāĻ•āĻŦā§‡ (āĻāĻ°āĻĒāĻ°ā§‡ āĻāĻŸāĻŋāĻ•ā§‡ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻŸā§‡āĻ•ā§āĻ¸āĻŸā§‡ edgewalker)
  • āĻāĻ•āĻŸāĻŋ Android āĻĢā§‹āĻ¨ āĻ¯āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ VPN āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ā§ˇ
  • Linux āĻ˛ā§āĻ¯āĻžāĻĒāĻŸāĻĒ āĻ¯āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ VPN āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤

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

āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĨā§‡ āĻ¤āĻžāĻ°āĻ¯ā§āĻ•ā§āĻ¤ āĻāĻŦāĻ‚ āĻŦā§‡āĻ¤āĻžāĻ° āĻ¸āĻ‚āĻ¯ā§‹āĻ—āĻ—ā§āĻ˛āĻŋ āĻ•āĻŽ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻšāĻ¯āĻŧā§‡ āĻ‰āĻ āĻ›ā§‡ āĻ¤āĻž āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°ā§‡ (āĻ˛āĻ•ā§āĻˇā§āĻ¯āĻŦāĻ¸ā§āĻ¤ā§ āĻšāĻžāĻŽāĻ˛āĻž, KRACK WPA2 āĻ•ā§āĻ°ā§āĻ¯āĻžāĻ•āĻŋāĻ‚ āĻ†āĻ•ā§āĻ°āĻŽāĻŖ и WPA3 āĻāĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§‡ āĻĄā§āĻ°āĻžāĻ—āĻ¨āĻŦā§āĻ˛āĻžāĻĄ āĻ†āĻ•ā§āĻ°āĻŽāĻŖ), āĻ†āĻŽāĻŋ āĻ†āĻŽāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ WireGuard āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦ āĻ¸āĻšāĻ•āĻžāĻ°ā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻ›āĻŋ, āĻ¤āĻžāĻ°āĻž āĻ¯ā§‡ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡āĻ‡ āĻĨāĻžāĻ•ā§āĻ• āĻ¨āĻž āĻ•ā§‡āĻ¨āĨ¤

āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨

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

āĻ†āĻŽāĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻ¸āĻ°ā§āĻŦāĻļā§‡āĻˇ āĻĢā§‡āĻĄā§‹āĻ°āĻž āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ 31 āĻ†āĻ›ā§‡, āĻāĻŦāĻ‚ āĻ†āĻŽāĻŋ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŸāĻŋ āĻĒāĻĄāĻŧāĻ¤ā§‡ āĻ–ā§āĻŦ āĻ…āĻ˛āĻ¸ āĻ›āĻŋāĻ˛āĻžāĻŽāĨ¤ āĻāĻ‡āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ—ā§‡āĻ›ā§‡ wireguard-tools, āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°ā§āĻ¨, āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ•ā§‡āĻ¨ āĻ•āĻŋāĻ›ā§āĻ‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ›ā§‡ āĻ¨āĻž āĻ¤āĻž āĻŦā§‡āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĻŋā§ˇ āĻ†āĻ°āĻ“ āĻ¤āĻĻāĻ¨ā§āĻ¤ā§‡ āĻœāĻžāĻ¨āĻž āĻ—ā§‡āĻ›ā§‡ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœāĻŸāĻŋ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻ¨ā§‡āĻ‡ wireguard-dkms (āĻāĻ•āĻŸāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻ¸āĻš), āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻŋ āĻ†āĻŽāĻžāĻ° āĻŦāĻŋāĻ¤āĻ°āĻŖā§‡āĻ° āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§‡ āĻ›āĻŋāĻ˛ āĻ¨āĻžāĨ¤

āĻ†āĻŽāĻŋ āĻ¯āĻĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻĒāĻĄāĻŧāĻ¤āĻžāĻŽ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻŋ āĻ¸āĻ āĻŋāĻ• āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒ āĻ¨āĻŋāĻ¤āĻžāĻŽ:

$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools

āĻ†āĻŽāĻžāĻ° āĻ°āĻžāĻ¸ā§āĻĒāĻŦā§‡āĻ°āĻŋ āĻĒāĻžāĻ‡āĻ¤ā§‡ āĻ°āĻžāĻ¸ā§āĻĒāĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻŦāĻžāĻ¸ā§āĻŸāĻžāĻ° āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻļāĻ¨ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻ†āĻ›ā§‡, āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ wireguard, āĻāĻŸāĻŋ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°ā§āĻ¨:

$ sudo apt install wireguard

āĻ†āĻŽāĻžāĻ° āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻĄā§āĻ°āĻ¯āĻŧā§‡āĻĄ āĻĢā§‹āĻ¨ā§‡ āĻ†āĻŽāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°ā§‡āĻ›āĻŋ āĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻ—āĻžāĻ°ā§āĻĄ āĻ­āĻŋāĻĒāĻŋāĻāĻ¨ āĻ…āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ—ā§āĻ—āĻ˛ āĻ…ā§āĻ¯āĻžāĻĒ āĻ¸ā§āĻŸā§‹āĻ° āĻ•ā§āĻ¯āĻžāĻŸāĻžāĻ˛āĻ— āĻĨā§‡āĻ•ā§‡āĨ¤

āĻ•ā§€āĻ—ā§āĻ˛āĻŋāĻ° āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨

āĻĒāĻŋāĻ¯āĻŧāĻžāĻ° āĻĒā§āĻ°āĻŽāĻžāĻŖā§€āĻ•āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻ—āĻžāĻ°ā§āĻĄ āĻ­āĻŋāĻĒāĻŋāĻāĻ¨ āĻ¸āĻšāĻ•āĻ°ā§āĻŽā§€āĻĻā§‡āĻ° āĻĒā§āĻ°āĻŽāĻžāĻŖā§€āĻ•āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤/āĻĒāĻžāĻŦāĻ˛āĻŋāĻ• āĻ•ā§€ āĻ¸ā§āĻ•āĻŋāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¸āĻšāĻœā§‡āĻ‡ VPN āĻ•ā§€ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

$ wg genkey | tee wg-laptop-private.key |  wg pubkey > wg-laptop-public.key
$ wg genkey | tee wg-server-private.key |  wg pubkey > wg-server-public.key
$ wg genkey | tee wg-mobile-private.key |  wg pubkey > wg-mobile-public.key

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

āĻ­āĻŋāĻĒāĻŋāĻāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ (āĻ°āĻžāĻ¸ā§āĻĒāĻŦā§‡āĻ°āĻŋ āĻĒāĻžāĻ‡)

āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨āĻŸāĻŋ āĻŦā§‡āĻļ āĻ¸āĻšāĻœ, āĻ†āĻŽāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›āĻŋ /etc/wireguard/wg0.conf:

[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = <copy private key from wg-server-private.key>
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wwan0 -j MASQUERADE

[Peer]
# laptop
PublicKey = <copy public key from wg-laptop-public.key>
AllowedIPs = 10.200.200.2/32

[Peer]
# mobile phone
PublicKey = <copy public key from wg-mobile-public.key>
AllowedIPs = 10.200.200.3/32

āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ¨ā§‹āĻŸ:

  • āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•ā§€ āĻ¸āĻš āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻĨā§‡āĻ•ā§‡ āĻ˛āĻžāĻ‡āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§‡āĻļ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡
  • āĻ†āĻŽāĻžāĻ° āĻ­āĻŋāĻĒāĻŋāĻāĻ¨ āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻŦā§āĻ¯āĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ›ā§‡ 10.200.200.0/24
  • āĻĻāĻ˛āĻ—ā§āĻ˛ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ PostUp/PostDown āĻ†āĻŽāĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ wwan0 āĻ†āĻ›ā§‡, āĻ†āĻĒāĻ¨āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ†āĻ˛āĻžāĻĻāĻž āĻĨāĻžāĻ•āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, eth0)

āĻ­āĻŋāĻĒāĻŋāĻāĻ¨ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ¸āĻšāĻœā§‡āĻ‡ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ‰āĻ¤ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧ:

$ sudo wg-quick up wg0

āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻŦāĻŋāĻļāĻĻ: DNS āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ†āĻŽāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ›āĻŋ dnsmasq āĻāĻ•āĻŸāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻŦāĻĻā§āĻ§ br0, āĻ†āĻŽāĻŋ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž wg0 āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻŋāĻ¤ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧāĨ¤ dnsmasq-āĻ āĻāĻŸāĻŋ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻ˛āĻžāĻ‡āĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ /etc/dnsmasq.confāĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ,

interface=br0
interface=wg0

āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻ†āĻŽāĻŋ UDP āĻ˛āĻŋāĻ¸ā§‡āĻ¨āĻŋāĻ‚ āĻĒā§‹āĻ°ā§āĻŸā§‡ (51280) āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ•ā§‡āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ iptable āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡āĻ›āĻŋ:

$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT

āĻāĻ–āĻ¨ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ•āĻžāĻœ āĻ•āĻ°āĻ›ā§‡, āĻ†āĻŽāĻ°āĻž āĻ­āĻŋāĻĒāĻŋāĻāĻ¨ āĻŸāĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ˛āĻžā§āĻš āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ:

$ sudo systemctl enable [email protected]

āĻ˛ā§āĻ¯āĻžāĻĒāĻŸāĻĒā§‡ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨

āĻāĻ•āĻŸāĻŋ āĻ˛ā§āĻ¯āĻžāĻĒāĻŸāĻĒā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ /etc/wireguard/wg0.conf āĻāĻ•āĻ‡ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻ¸āĻš:

[Interface]
Address = 10.200.200.2/24
PrivateKey = <copy private key from wg-laptop-private.key>

[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820

āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻ¸āĻŽā§‚āĻš:

  • āĻāĻœāĻ“āĻ¯āĻŧāĻžāĻ•āĻžāĻ°ā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ• āĻ†āĻ‡āĻĒāĻŋ āĻŦāĻž āĻ­āĻŋāĻĒāĻŋāĻāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻšā§‹āĻ¸ā§āĻŸ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡
  • āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ AllowedIPs āĻ‰āĻĒāĻ° 10.200.200.0/24, āĻ†āĻŽāĻ°āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻ¤ā§‡ VPN āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋāĨ¤ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ†āĻ‡āĻĒāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻž/āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• "āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•" āĻ–ā§‹āĻ˛āĻž āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻšāĻ˛āĻ¤ā§‡ āĻĨāĻžāĻ•āĻŦā§‡āĨ¤ āĻāĻŸāĻŋ āĻ˛ā§āĻ¯āĻžāĻĒāĻŸāĻĒā§‡ āĻĒā§‚āĻ°ā§āĻŦ-āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž DNS āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ“ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦā§‡āĨ¤

āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ˛āĻžā§āĻšā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻ‡ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋ wg-quick и systemd:

$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]

āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻĄā§āĻ°āĻ¯āĻŧā§‡āĻĄ āĻĢā§‹āĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻž

āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻĄā§āĻ°āĻ¯āĻŧā§‡āĻĄ āĻĢā§‹āĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ–ā§āĻŦ āĻ…āĻ¨ā§āĻ°ā§‚āĻĒ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋ (āĻ†āĻ¸ā§āĻ¨ āĻāĻŸāĻŋāĻ•ā§‡ āĻ•āĻ˛ āĻ•āĻ°āĻŋ mobile.conf):

[Interface]
Address = 10.200.200.3/24
PrivateKey = <copy private key from wg-mobile-private.key>
DNS = 10.200.200.1
        
[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 0.0.0.0/0
Endpoint = edgewalker:51820

āĻ˛ā§āĻ¯āĻžāĻĒāĻŸāĻĒā§‡āĻ° āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ā§‡, āĻĢā§‹āĻ¨āĻŸāĻŋāĻ•ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° VPN āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻŸāĻŋ DNS āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ (āĻ˛āĻžāĻ‡āĻ¨ DNS), āĻāĻŦāĻ‚ āĻ­āĻŋāĻĒāĻŋāĻāĻ¨ āĻŸāĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ• āĻĒāĻžāĻ¸ āĻ•āĻ°ā§āĻ¨ (AllowedIPs = 0.0.0.0/0).

āĻ†āĻĒāĻ¨āĻžāĻ° āĻŽā§‹āĻŦāĻžāĻ‡āĻ˛ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ā§‡ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ…āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ QR āĻ•ā§‹āĻĄā§‡ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf

QR āĻ•ā§‹āĻĄ ASCII āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•āĻ¨āĻ¸ā§‹āĻ˛ā§‡ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻšāĻŦā§‡āĨ¤ āĻāĻŸāĻŋ Android VPN āĻ…ā§āĻ¯āĻžāĻĒ āĻĨā§‡āĻ•ā§‡ āĻ¸ā§āĻ•ā§āĻ¯āĻžāĻ¨ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ VPN āĻŸāĻžāĻ¨ā§‡āĻ˛ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻŦā§‡āĨ¤

āĻ‰āĻĒāĻ¸āĻ‚āĻšāĻžāĻ°

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

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

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