IPSec VPN рд╕рд░реНрд╡рд░ рдХреЛ iOS рдкрд░ strongSwan рдФрд░ рдСрди-рдбрд┐рдорд╛рдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ

рдЗрд╕ рд╕рдВрджреЗрд╢ рдиреЗ рдореБрдЭреЗ рдХреИрд╕реЗ рдкрд░реЗрд╢рд╛рди рдХрд┐рдпрд╛?

рдпрд╣ рд╕рдм рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖред рдФрд░ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдЖрдИрдкреИрдб рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрд░реЗрд╢рд╛рди рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдЖрдИрдУрдПрд╕ рдкрд░ рдЖрдИрдкреАрдПрд╕рдИ рдПрдХреНрд╕ рд╕реА рдФрд░ рдСрди-рдбрд┐рдорд╛рдВрдб рд╡реАрдкреАрдПрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ред рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдордЬрдмреВрддрд╡рд╛рди рдХреЗ рдЬрд░рд┐рдП рдмрдврд╝рд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдХреИрд╕реЗ рд╕рддрд╛рдпрд╛ ... рдКрдкрд░ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕ рд╕рдВрджреЗрд╢ рд╕реЗ рдХреИрд╕реЗ рдирдлрд░рдд рдХреА ... рдЗрдВрдЯрд░рдиреЗрдЯ рд▓реЗрдЦреЛрдВ рдФрд░ рддреИрдпрд╛рд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рднрд░рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдФрд░ рдЕрдм рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордп рдмрдЪрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕ рдХрдВрдЯреАрд▓реЗ рд░рд╛рд╕реНрддреЗ рд╕реЗ рдЬрд╛рдиреЗ рдХреА рд╣рд┐рдореНрдордд рдХрд░рддреЗ рд╣реИрдВред



рд░рд╛рд╕реНрддреЗ рдХреА рд╢реБрд░реБрдЖрдд


рддрдп рдХрд░реЗрдВ рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП:

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
рдЬреИрд╕реЗ рд╣реА рд╣рдо рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрд╕реНрдЯ рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВ, рд╡реАрдкреАрдПрди рдХреЛ рдЖрдИрдкреИрдб рдкрд░ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "ya.ru"ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб рдорд╛рдВрдЧреЗ рдмрд┐рдирд╛ред
рд╣рдо рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:

рд╣рдо рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ:

рдкрд╣рд▓рд╛ рдЦреВрди


рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, strongSwan рдореЗрдВ RSA рдкреНрд░рдорд╛рдгреАрдХрд░рдг xauth рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдЗрд╕реА xauth, рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рд▓реЙрдЧрд┐рди рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рд╕реНрдЯреНрд░рд╛рдВрдЧрд╕реНрд╡рд╛рди рдХреЗ рдкрд╛рд╕ рдЖрдИрдкреАрдПрд╕ рд╡реАрдкреАрдПрди рдХреЛ рдЖрдИрдУрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╡рд┐рд╡рд░рдг рд╣реИ ред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдЕрдиреБрд░реЛрдз рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдХрд▓реНрдк рд╣рдорд╛рд░реЗ рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рд╣реИред

рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ! рдЯреЛрдмреАрд╕ рдмреНрд░реВрдирд░ рдФрд░ рдЙрдирдХреА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╣рдореЗрдВ рдмрдЪрд╛рдПрдЧреА! рдЗрд╕ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЗ рдмрд┐рдирд╛, рд╣рдо рд╕рдлрд▓ рдирд╣реАрдВ рд╣реЛрддреЗред рдЖрдкрдХрд╛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдХреЛрдб рдПрдХ xauth рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╛рдиреА рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдХреЗрд╡рд▓ RSA рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╣реЛрддрд╛ рд╣реИред рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП!

рдкреНрд░рдорд╛рдгрдкрддреНрд░


рдореИрдВ рдЪрд╛рдмрд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдпрд╣ strongSwan рд╕реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдмрд╣реБрдд рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИ ред рдореИрдВ рд╕рд┐рд░реНрдл рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:
  1. рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо (CN) рдлрд╝реАрд▓реНрдб рдХрд╛ рдорд╛рди, VPN рд╕рд░реНрд╡рд░ рдХреЗ IP рдпрд╛ рдбреЛрдореЗрди рдирд╛рдо рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдореЗрдЬрд╝рди EC2 рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛ "ecX-XX-XXX-XX-XX.eu-west-1.compute.amazonaws.com"ред
  2. IPad рдкрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ PKCS # 12 (* .p12) рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд░реВрдЯ рдПрдХ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рдЗрд╕реЗ caCert.pem рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред


рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ


рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЖрдк рд╣реИрдХрд┐рдВрдЧ рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХреЛ рдкрдврд╝реЗрдВ рдФрд░ рдзреНрдпрд╛рди рджреЗрдВред рдпрд╛ рдмрд▓реНрдХрд┐, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдЗрдП рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреА рдУрд░ рдмрдврд╝рддреЗ рд╣реИрдВ:
  1. рд╣рдо рдПрдХ рд╣реА рдЬрд╛рджреВ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рд╢рд╛рдЦрд╛ рдХреЛ рдЕрд╢реБрджреНрдз рдХрд░рддреЗ рд╣реИрдВ: git рдХреНрд▓реЛрди git: //git.strongswan.org/strongswan.git xauth-noauth strongswan-git-xauth-noauth /
  2. рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдБ: ./autogen.sh
  3. рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ: ./configure --prefix = / usr --sysconfdir = / etc --enable-xauth-noauth
  4. рдЖрдЗрдП рдкреИрдХреЗрдЬ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ: sudo checkinstall -D --install = no
  5. рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ: dpkg -i strongswan-git-xauth_5.0.3-xauth-noauth-1_amd64.deb

рдлрд╛рдпрд░рд╡рд╛рд▓ рдкрд░ 500 рдФрд░ 4500 рдпреВрдбреАрдкреА рдкреЛрд░реНрдЯ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛, рдЬреИрд╕рд╛ рдХрд┐ IPSec рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдкреИрдХреЗрдЯ рдХреЛ рдиреИрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рджреЗрдВ:
 iptables --table nat --append POSTROUTING --jump MASQUERADE
 рдЧреВрдВрдЬ 1> / proc / sys / net / ipv4 / ip_forward
 рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП / proc / sys / net / ipv4 / conf / *
 рдХрд░рдирд╛
     рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ 0> $ рдкреНрд░рддреНрдпреЗрдХ / accept_redirects
     рдЗрдХреЛ 0> $ рдкреНрд░рддреНрдпреЗрдХ / send_redirects
 рдХрд┐рдпрд╛

рдЕрдВрдд рдореЗрдВ, рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

/etc/ipsec.conf

 рд╕рдВрд╕реНрдХрд░рдг 2.0 # ipsec.conf рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреЗ рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ

 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрдЕрдк
        
 рдХреЛрди рдЖрдпреЛрд╕
       keyexchange = ikev1
       xauth = рд╕рд░реНрд╡рд░
       рдмрд╛рдпрд╛рдБрда = рд░рд╕
       рджрд╛рд╣рд┐рдирд╛ = рд░рд╕рд╛
       rightauth2 = xauth-noauth
       рдмрд╛рдПрдБ =% рдбрд┐рдлрд╝реЙрд▓реНрдЯ
       leftsubnet = 0.0.0.0 / 0
       leftfirewall = рд╣рд╛рдБ
       leftcert = serverCert.pem
       рд╕рд╣реА =% рдХреЛрдИ рднреА
       рд░рд╛рдЗрдЯреНрд╕рдмрдиреЗрдЯ = 10.0.0.0 / 24
       рд░рд╛рдЗрдЯреНрд╕рд╕реЛрд░реНрд╕ = 10.0.0.0 / 24
       rightcert = clientCert.pem
       рдСрдЯреЛ = рдЬреЛрдбрд╝реЗрдВ


/etc/ipsec.secrets

 : RSA serverKey.pem


/etc/strongswan.conf

 рдЪрд╛рд░реЛрди {

         # рдЪрд░рдиреЛрдВ рдореЗрдВ рдордЬрджреВрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛
         рд╕реВрддреНрд░ = резрем
         dns1 = 8.8.8.8

         рдкреНрд▓рдЧрдЗрдиреНрд╕ {
         }
 }

 рд▓рд┐рдмреНрд░рд╕реНрдЯреНрд░реЙрдиреНрдЧрд╡рд╛рди {
 }

Init.d рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд╣реБрдд рд▓рдВрдмреА рд╣реИред рдЙрд╕реЗ рдпрд╣рд╛рдВ рдЙрдард╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

IOS рдкрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ (clientCert.p12 рдФрд░ caCert.pem):

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ iPhone рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдХреЗрд╡рд▓ рд╡рд╣реАрдВ рдЖрдк рдбреЛрдореЗрди рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдСрди-рдбрд┐рдорд╛рдВрдб рд╡реАрдкреАрдПрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреНрд░рд╢реНрди, рдЯрд┐рдкреНрдкрдгреА, рдЖрд▓реЛрдЪрдирд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/In169463/


All Articles