Книга Β«Linux Π² дСйствии»

Книга «Linux Π² дСйствии» ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€ΠΎΠΆΠΈΡ‚Π΅Π»ΠΈ! Π’ ΠΊΠ½ΠΈΠ³Π΅ Дэвид ΠšΠ»ΠΈΠ½Ρ‚ΠΎΠ½ описываСт 12 Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π² Ρ‚ΠΎΠΌ числС автоматизация систСмы Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования ΠΈ восстановлСния, настройка Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°ΠΊΠ° Π² стилС Dropbox ΠΈ созданиС собствСнного сСрвСра MediaWiki. На интСрСсных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π²Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ΅ восстановлСниС, обСспСчСниС бСзопасности, Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ DevOps ΠΈ устранСниС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ систСмы. КаТдая Π³Π»Π°Π²Π° заканчиваСтся ΠΎΠ±Π·ΠΎΡ€ΠΎΠΌ практичСских Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ, глоссариСм Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² ΠΈ упраТнСниями.

ΠžΡ‚Ρ€Ρ‹Π²ΠΎΠΊ Β«10.1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ туннСля OpenVPNΒ»

Π’ этой ΠΊΠ½ΠΈΠ³Π΅ я ΡƒΠΆΠ΅ Π½Π΅ΠΌΠ°Π»ΠΎ рассказал ΠΎ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠΈ. SSH ΠΈ SCP ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ соСдинСния (Π³Π»Π°Π²Π° 3), ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² позволяСт Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ Π½Π° сСрвСрС (Π³Π»Π°Π²Π° 8), Π° сСртификаты TLS/SSL способны Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ сайтами ΠΈ клиСнтскими Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ (Π³Π»Π°Π²Π° 9). Но ΠΈΠ½ΠΎΠ³Π΄Π° ваши Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π² Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ спСктрС соСдинСний. НапримСр, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ вашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ приходится Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π΄ΠΎΡ€ΠΎΠ³Π΅, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡΡΡŒ ΠΊ сСти ΠΏΠΎ Wi-Fi Ρ‡Π΅Ρ€Π΅Π· общСдоступныС Ρ‚ΠΎΡ‡ΠΊΠΈ доступа. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½Π΅ стоит ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ доступа бСзопасны, Π½ΠΎ вашим людям Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ΅Π½ способ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ рСсурсам ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ β€” ΠΈ Π² этом случаС ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ VPN.

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ спроСктированный VPN-Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ обСспСчиваСт прямоС соСдинСниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ сСрвСром Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΏΠΎ нСбСзопасной сСти. Ну ΠΈ Ρ‡Ρ‚ΠΎ? Π’Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ. РСальная Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ VPN состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ, ΠΎΡ‚ΠΊΡ€Ρ‹Π² Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ сСти, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ всС вмСстС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ смыслС Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠ±Ρ…ΠΎΠ΄.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π°ΠΊΡƒΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ, администраторы ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° своих сСрвСрах ΠΈΠ· любого мСста. Но, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, компания с рСсурсами, распрСдСлСнными ΠΏΠΎ нСскольким Ρ„ΠΈΠ»ΠΈΠ°Π»Π°ΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… всС Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ ΠΈ доступными для всСх Π³Ρ€ΡƒΠΏΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π½ΠΈΡ… Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ, Π³Π΄Π΅ Π±Ρ‹ ΠΎΠ½ΠΈ Π½ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ (рис. 10.1).

Π‘Π°ΠΌ ΠΏΠΎ сСбС Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. Но ΠΎΠ΄ΠΈΠ½ ΠΈΠ· стандартов ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² структуру сСти, Ρ‡Ρ‚ΠΎ сущСствСнно ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ бСзопасности. Π’ΡƒΠ½Π½Π΅Π»ΠΈ, созданныС с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π° OpenVPN с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚ΠΎ ΠΆΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ TLS/SSL, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ ΡƒΠΆΠ΅ Ρ‡ΠΈΡ‚Π°Π»ΠΈ. OpenVPN Π½Π΅ СдинствСнный доступный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для туннСлирования, Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых извСстных. БчитаСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ быстрСС ΠΈ бСзопаснСС, Ρ‡Π΅ΠΌ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» уровня 2, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ IPsec.

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² вашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ всС бСзопасно ΠΎΠ±Ρ‰Π°Π»ΠΈΡΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² Π΄ΠΎΡ€ΠΎΠ³Π΅ ΠΈΠ»ΠΈ работая Π² Ρ€Π°Π·Π½Ρ‹Ρ… зданиях? Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сСрвСр OpenVPN, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ совмСстноС использованиС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ доступ ΠΊ локальной сСтСвой срСдС сСрвСра. Π§Ρ‚ΠΎΠ±Ρ‹ это Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ, достаточно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄Π²Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈΠ»ΠΈ Π΄Π²Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°: ΠΎΠ΄Π½Ρƒ для выполнСния Ρ€ΠΎΠ»ΠΈ сСрвСра/хоста, Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ β€” для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ VPN β€” нСпростой процСсс, поэтому, вСроятно, стоит ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ нСсколько ΠΌΠΈΠ½ΡƒΡ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСбС ΠΎΠ±Ρ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ.

Книга «Linux Π² дСйствии»

10.1.1. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сСрвСра OpenVPN

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ, Π΄Π°ΠΌ Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ совСт. Если Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ (Π° я Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ это), Ρ‚ΠΎ, вСроятно, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с нСсколькими Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ Π½Π° Π Π°Π±ΠΎΡ‡Π΅ΠΌ столС, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΊ своСй машинС. Π•ΡΡ‚ΡŒ риск, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹ Π²Π²Π΅Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π΅ Ρ‚ΠΎ Π² ΠΎΠΊΠ½ΠΎ. Π’ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ hostname, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ имя ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, Π½Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Π²Π°ΠΌ ΠΎ Ρ‚ΠΎΠΌ, Π³Π΄Π΅ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сдСлаСтС это, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΉΡ‚ΠΈ с сСрвСра ΠΈ Π·Π°ΠΉΡ‚ΠΈ снова, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ настройки вступили Π² силу. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это выглядит:

Книга «Linux Π² дСйствии»
ΠŸΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡΡΡŒ этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΈ присваивая ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· машин, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅, Π²Ρ‹ смоТСтС Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ, Π³Π΄Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ.

ПослС использования hostname Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΌΠΈ сообщСниями Unable to Resolve Host OpenVPN-Server ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄. ОбновлСниС Ρ„Π°ΠΉΠ»Π° /etc/hosts с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ хоста Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° вашСго сСрвСра для OpenVPN

Для установки OpenVPN Π½Π° вашСм сСрвСрС трСбуСтся Π΄Π²Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°: openvpn ΠΈ easy-rsa (для управлСния процСссом Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ). ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ CentOS Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈ нСобходимости сначала ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ epel-release, ΠΊΠ°ΠΊ Π²Ρ‹ Π΄Π΅Π»Π°Π»ΠΈ это Π² Π³Π»Π°Π²Π΅ 2. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ доступ ΠΊ сСрвСрному ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Π΅Π±-сСрвСр Apache (apache2 для Ubuntu ΠΈ httpd Π½Π° CentOS).

Пока Π²Ρ‹ настраиваСтС сСрвСр, ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ брандмауэр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ всС ΠΏΠΎΡ€Ρ‚Ρ‹, ΠΊΡ€ΠΎΠΌΠ΅ 22 (SSH) ΠΈ 1194 (ΠΏΠΎΡ€Ρ‚ OpenVPN ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ). Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ufw Π² Ubuntu, Π½ΠΎ я ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Π²Ρ‹ всС Π΅Ρ‰Π΅ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ firewalld CentOS ΠΈΠ· Π³Π»Π°Π²Ρ‹ 9:

# ufw enable
# ufw allow 22
# ufw allow 1194

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ сСтСвыми интСрфСйсами Π½Π° сСрвСрС, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ строку (net.ipv4.ip_forward = 1) Π² Ρ„Π°ΠΉΠ»Π΅ /etc/sysctl.conf. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости послС ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π§Ρ‚ΠΎΠ±Ρ‹ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π», запуститС sysctl -p:

# nano /etc/sysctl.conf
# sysctl -p

Π’Π΅ΠΏΠ΅Ρ€ΡŒ сСрвСрная срСда ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ настроСна, Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹: придСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги (ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим ΠΈΡ… Π΄Π°Π»Π΅Π΅).

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½Π° сСрвСрС Π½Π°Π±ΠΎΡ€ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ инфраструктуры ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (PKI) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сцСнариСв, поставляСмых с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ easy-rsa. По сути, сСрвСр OpenVPN Ρ‚Π°ΠΊΠΆΠ΅ дСйствуСт ΠΊΠ°ΠΊ собствСнный Ρ†Π΅Π½Ρ‚Ρ€ сСртификации (Π¦Π‘).
  2. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡ΠΈ для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°
  3. Π‘ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» server.conf для сСрвСра
  4. НастройтС ваш ΠΊΠ»ΠΈΠ΅Π½Ρ‚ OpenVPN
  5. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ свой VPN

Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒ Тизнь, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ свою ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ инфраструктуру Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ машинС, Π³Π΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ сСрвСр OpenVPN. Однако Π² рСкомСндациях ΠΏΠΎ бСзопасности ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдлагаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр Π¦Π‘ для Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΉ Π² производствСнной срСдС. ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ распрСдСлСния рСсурсов ΠΊΠ»ΡŽΡ‡Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ для использования Π² OpenVPN ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° рис. 10.2.

Книга «Linux Π² дСйствии»
Когда Π²Ρ‹ устанавливали OpenVPN, автоматичСски Π±Ρ‹Π» создан ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /etc/openvpn/, Π½ΠΎ Π² Π½Π΅ΠΌ ΠΏΠΎΠΊΠ° Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅Ρ‚. ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ openvpn ΠΈ easy-rsa ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² шаблонов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ основу для своСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ процСсс сСртификации, скопируйтС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ шаблона easy-rsa ΠΈΠ· /usr/share/ Π² /etc/openvpn ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ easy-rsa/:

# cp -r /usr/share/easy-rsa/ /etc/openvpn
$ cd /etc/openvpn/easy-rsa

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ easy-rsa Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ довольно ΠΌΠ½ΠΎΠ³ΠΎ сцСнариСв. Π’ Ρ‚Π°Π±Π». 10.1 пСрСчислСны инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.

Книга «Linux Π² дСйствии»

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ root, поэтому Ρ‡Π΅Ρ€Π΅Π· sudo su Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΡ‚Π°Ρ‚ΡŒ root.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ„Π°ΠΉΠ», с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, называСтся vars ΠΈ содСрТит ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ easy-rsa ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ собствСнныС значСния вмСсто Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ» (листинг 10.1).

Листинг 10.1. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Ρ„Π°ΠΉΠ»Π° /etc/openvpn/easy-rsa/vars

export KEY_COUNTRY="CA"
export KEY_PROVINCE="ON"
export KEY_CITY="Toronto"
export KEY_ORG="Bootstrap IT"
export KEY_EMAIL="[email protected]"
export KEY_OU="IT"

Запуск Ρ„Π°ΠΉΠ»Π° vars ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ значСния Π² срСду ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² содСрТимоС Π²Π°ΡˆΠΈΡ… Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Π° sudo сама ΠΏΠΎ сСбС Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚? ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС ΠΌΡ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ сцСнарий с ΠΈΠΌΠ΅Π½Π΅ΠΌ vars, Π° Π·Π°Ρ‚Π΅ΠΌ примСняСм Π΅Π³ΠΎ. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» vars ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ свои значСния Π² срСду ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² содСрТимоС Π²Π°ΡˆΠΈΡ… Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ запуститС Ρ„Π°ΠΉΠ» ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½ΠΎΠ²ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π½Π΅Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΉ процСсс. Когда это Π±ΡƒΠ΄Π΅Ρ‚ сдСлано, сцСнарий ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π²Π°ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ сцСнарий, clean-all, для удалСния любого содСрТимого Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /etc/openvpn/easy-rsa/keys/:

Книга «Linux Π² дСйствии»
ЕстСствСнно, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом Π±ΡƒΠ΄Π΅Ρ‚ запуск сцСнария clean-all, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт build-ca, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сцСнарий pkitool для создания ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ сСртификата. Вас попросят ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ настройки ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, прСдоставлСнныС vars:

# ./clean-all
# ./build-ca
Generating a 2048 bit RSA private key

Π”Π°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ‚ скрипт build-key-server. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ сцСнарий pkitool вмСстС с Π½ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ сСртификатом, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚Π΅ ΠΆΠ΅ вопросы для подтвСрТдСния создания ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. ΠšΠ»ΡŽΡ‡Π°ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ присвоСны ΠΈΠΌΠ΅Π½Π° Π½Π° основС ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π²Π°ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π΅ запускаСтС нСсколько VPN Π½Π° этом ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ server, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

# ./build-key-server server
[...]
Certificate is to be certified until Aug 15 23:52:34 2027 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

OpenVPN ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, сгСнСрированныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π”ΠΈΡ„Ρ„ΠΈ β€” Π₯Π΅Π»Π»ΠΌΠ°Π½Π° (с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ build-dh), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚ΡŒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ для Π½ΠΎΠ²Ρ‹Ρ… соСдинСний. Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ здСсь Ρ„Π°ΠΉΠ» Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ сСкрСтным, Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ сгСнСрирован с использованиСм сцСнария build-dh для ΠΊΠ»ΡŽΡ‡Π΅ΠΉ RSA, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹. Если Π²Ρ‹ создадитС Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ RSA Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π½Π° основС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π”ΠΈΡ„Ρ„ΠΈ β€” Π₯Π΅Π»Π»ΠΌΠ°Π½Π°:

# ./build-dh

Π’Π°ΡˆΠΈ ΠΊΠ»ΡŽΡ‡ΠΈ Π½Π° сторонС сСрвСра Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /etc/openvpn/easy-rsa/keys/, Π½ΠΎ OpenVPN этого Π½Π΅ Π·Π½Π°Π΅Ρ‚. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ OpenVPN Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ Π² /etc/openvpn/, поэтому скопируйтС ΠΈΡ…:

# cp /etc/openvpn/easy-rsa/keys/server* /etc/openvpn
# cp /etc/openvpn/easy-rsa/keys/dh2048.pem /etc/openvpn
# cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

Как Π²Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, Π² TLS-ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ: ΠΎΠ΄ΠΈΠ½ установлСн Π½Π° сСрвСрС, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ понадобятся ΠΊΠ»ΡŽΡ‡ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Наш старый Π΄Ρ€ΡƒΠ³ pkitool β€” ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для этого. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, запуская ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /etc/openvpn/easy-rsa/, ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΅ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ client для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ client.crt ΠΈ client.key:

# ./pkitool client

Π”Π²Π° клиСнтских Ρ„Π°ΠΉΠ»Π° вмСстС с исходным Ρ„Π°ΠΉΠ»ΠΎΠΌ ca.crt, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ всС Π΅Ρ‰Π΅ находится Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ keys/, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ бСзопасно ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ. Из-Π·Π° ΠΈΡ… принадлСТности ΠΈ ΠΏΡ€Π°Π² доступа это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ Ρ‚Π°ΠΊΠΈΠΌ Π»Π΅Π³ΠΊΠΈΠΌ Π΄Π΅Π»ΠΎΠΌ. Π‘Π°ΠΌΡ‹ΠΉ простой ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€” Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС исходного Ρ„Π°ΠΉΠ»Π° (ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ этого содСрТимого) Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π½Π° Π Π°Π±ΠΎΡ‡Π΅ΠΌ столС вашСго ПК (Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ тСкст, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° Π½Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π² мСню ΠΏΡƒΠ½ΠΊΡ‚ Copy (ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ)). Π—Π°Ρ‚Π΅ΠΌ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ это Π² Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ создаСтС Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ.

Но вСдь любой ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ. Π’Ρ‹ ΠΆΠ΅ вмСсто этого Π΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΊΠ°ΠΊ администратор, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ вас Π½Π΅ всСгда Π±ΡƒΠ΄Π΅Ρ‚ доступ ΠΊ GUI, Π³Π΄Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° опСрация вырСзания/вставки. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² домашний ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ вашСго ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Ρ‡Ρ‚ΠΎΠ±Ρ‹ удалСнная опСрация scp ΠΌΠΎΠ³Π»Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½ΠΈΠΌ доступ), Π° Π·Π°Ρ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ chown ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Ρ„Π°ΠΉΠ»ΠΎΠ² с root Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ root, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ дСйствиС scp. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС ваши Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ установлСны ΠΈ доступны. На ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π²Ρ‹ пСрСмСститС ΠΈΡ… Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅:

# cp /etc/openvpn/easy-rsa/keys/client.key /home/ubuntu/
# cp /etc/openvpn/easy-rsa/keys/ca.crt /home/ubuntu/
# cp /etc/openvpn/easy-rsa/keys/client.crt /home/ubuntu/
# chown ubuntu:ubuntu /home/ubuntu/client.key
# chown ubuntu:ubuntu /home/ubuntu/client.crt
# chown ubuntu:ubuntu /home/ubuntu/ca.crt

Π‘ ΠΏΠΎΠ»Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ сСрвСру, ΠΊΠ°ΠΊ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ VPN. Π­Ρ‚ΠΎ дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π°ΠΉΠ»Π° server.conf.

УмСньшаСм количСство Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ клавиш

Блишком ΠΌΠ½ΠΎΠ³ΠΎ приходится ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ? Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ со скобками ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ эти ΡˆΠ΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄ΠΎ Π΄Π²ΡƒΡ…. Π― ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Π²Ρ‹ смоТСтС ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ эти Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит. Π§Ρ‚ΠΎ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, Π²Ρ‹ смоТСтС ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΊ опСрациям, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌ дСсятки ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ сотни элСмСнтов:

# cp /etc/openvpn/easy-rsa/keys/{ca.crt,client.{key,crt}} /home/ubuntu/
# chown ubuntu:ubuntu /home/ubuntu/{ca.crt,client.{key,crt}}

Настройка Ρ„Π°ΠΉΠ»Π° server.conf

ΠžΡ‚ΠΊΡƒΠ΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ» server.conf? ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ шаблон ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° easy-rsa, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ скопировали ΠΈΠ· /usr/share/? ΠŸΡ€ΠΈ установкС OpenVPN остался сТатый Ρ„Π°ΠΉΠ» шаблона ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² /etc/openvpn/. Π― Π±ΡƒΠ΄Ρƒ ΠΎΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ шаблон Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½, ΠΈ познакомлю вас с ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ инструмСнтом: zcat.

Π’Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π΅ тСкстового содСрТимого Ρ„Π°ΠΉΠ»Π° Π½Π° экран с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cat, Π½ΠΎ Ρ‡Ρ‚ΠΎ, Ссли Ρ„Π°ΠΉΠ» сТат с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ gzip? Π’Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ», ΠΈ Ρ‚ΠΎΠ³Π΄Π° cat с ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ΠΌ Π΅Π³ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚, Π½ΠΎ это Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π° шага большС, Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ. ВмСсто этого, ΠΊΠ°ΠΊ Π²Ρ‹ ΡƒΠΆΠ΅, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, догадались, ΠΌΠΎΠΆΠ½ΠΎ ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ zcat для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ распакованного тСкста Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Π·Π° ΠΎΠ΄ΠΈΠ½ шаг. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ тСкст Π½Π° экранС, Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ server.conf:

# zcat 
  /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz 
  > /etc/openvpn/server.conf
$ cd /etc/openvpn

ΠžΡΡ‚Π°Π²ΠΈΠΌ Π² сторонС ΠΎΠ±ΡˆΠΈΡ€Π½ΡƒΡŽ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, ΠΏΡ€ΠΈΠ»Π°Π³Π°Π΅ΠΌΡƒΡŽ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, ΠΈ посмотрим, ΠΊΠ°ΠΊ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ° с запятой (;) ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ OpenVPN Π½Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку (листинг 10.2).

Книга «Linux Π² дСйствии»
ΠŸΡ€ΠΎΠΉΠ΄Π΅ΠΌΡΡ ΠΏΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠ· этих настроСк.

  • По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ OpenVPN Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ€Ρ‚ 1194. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Ρ‰Π΅ большС ΡΠΊΡ€Ρ‹Ρ‚ΡŒ свои дСйствия ΠΈΠ»ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ туннСлями. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ 1194 Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ минимальной ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ, Π»ΡƒΡ‡ΡˆΠ΅ всСго ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ.
  • OpenVPN примСняСт для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» управлСния ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ (TCP), Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Ρ‚Π°Π³Ρ€Π°ΠΌΠΌ (UDP). TCP ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Π½ΠΎ ΠΎΠ½ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ΅Π½ ΠΈ с большСй Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ понятСн прилоТСниям, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ Π½Π° ΠΎΠ±ΠΎΠΈΡ… ΠΊΠΎΠ½Ρ†Π°Ρ… туннСля.
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ dev tun, ΠΊΠΎΠ³Π΄Π° Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ простой ΠΈ эффСктивный IP-Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ содСрТимоС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ большС. Если, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π²Π°ΠΌ потрСбуСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько сСтСвых интСрфСйсов (ΠΈ сСтСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚), создав мост Ethernet, Ρ‚ΠΎ придСтся Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ dev tap. Если Π²Ρ‹ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ всС это Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ tun.
  • Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ строки ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ OpenVPN ΠΈΠΌΠ΅Π½Π° Ρ‚Ρ€Π΅Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° сСрвСрС ΠΈ Ρ„Π°ΠΉΠ» ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² dh2048, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ создали Ρ€Π°Π½Π΅Π΅.
  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° server устанавливаСт Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈ маску подсСти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для присваивания IP-адрСсов ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ Π² систСму.
  • ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ push Β«route 10.0.3.0 255.255.255.0Β» позволяСт ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ частным подсСтям Π·Π° сСрвСром. Для выполнСния этой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ трСбуСтся настройка сСти Π½Π° самом сСрвСрС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ частная ΠΏΠΎΠ΄ΡΠ΅Ρ‚ΡŒ Π·Π½Π°Π»Π° ΠΎ подсСти OpenVPN (10.8.0.0).
  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° port-share localhost 80 позволяСт ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ клиСнтский Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ€Ρ‚ 1194, Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π΅Π±-сСрвСр, ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΡ€Ρ‚ 80. (Π‘ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Π±-сСрвСр для тСстирования вашСй VPN.) Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Π±Ρ€Π°Π½ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» tcp.
  • Π‘Ρ‚Ρ€ΠΎΠΊΠΈ user nobody ΠΈ group nogroup Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ β€” для этого Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой (;). ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ΄ nobody ΠΈ nogroup Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ сСансы Π½Π° сСрвСрС Π±ΡƒΠ΄ΡƒΡ‚ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ.
  • log ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ записи Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ старыС записи ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС OpenVPN, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ log-append добавляСт Π½ΠΎΠ²Ρ‹Π΅ записи Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» ΠΆΡƒΡ€Π½Π°Π»Π°. Π‘Π°ΠΌ Ρ„Π°ΠΉΠ» openvpn.log записываСтся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /etc/openvpn/.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ часто Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ client-to-client, Ρ‡Ρ‚ΠΎΠ±Ρ‹ нСсколько ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠ³Π»ΠΈ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ сСрвСру OpenVPN. Если Π²Ρ‹ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½Ρ‹ своСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ сСрвСр OpenVPN:

# systemctl start openvpn

Из-Π·Π° ΠΌΠ΅Π½ΡΡŽΡ‰Π΅Π³ΠΎΡΡ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ OpenVPN ΠΈ systemd для запуска слуТбы ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΎΠΉ синтаксис: systemctl start openvpn@server.

Запуск ip addr для отобраТСния списка сСтСвых интСрфСйсов вашСго сСрвСра Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ вывСсти ссылку Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ интСрфСйс с ΠΈΠΌΠ΅Π½Π΅ΠΌ tun0. OpenVPN создаст Π΅Π³ΠΎ для обслуТивания входящих ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²:

$ ip addr
[...]
4: tun0: mtu 1500 qdisc [...]
      link/none
      inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
          valid_lft forever preferred_lft forever

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ потрСбуСтся ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ сСрвСр, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ всС Π½Π°Ρ‡Π½Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ остановка β€” клиСнтский ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

10.1.2. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° OpenVPN

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ Ρ‚ΡƒΠ½Π½Π΅Π»ΠΈ строятся ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ с двумя Π²Ρ‹Ρ…ΠΎΠ΄Π°ΠΌΠΈ (ΠΈΠ½Π°Ρ‡Π΅ ΠΌΡ‹ Π±Ρ‹ Π½Π°Π·Ρ‹Π²Π°Π»ΠΈ ΠΈΡ… ΠΏΠ΅Ρ‰Π΅Ρ€Π°ΠΌΠΈ). ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСнный OpenVPN Π½Π° сСрвСрС направляСт Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π² Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ ΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ с ΠΎΠ΄Π½ΠΎΠΉ стороны. Но Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅ туннСля.

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ€ΡƒΡ‡Π½ΠΎΠΉ настройкС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° с Linux Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² качСствС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° OpenVPN. Но это Π½Π΅ СдинствСнный способ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ доступна такая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ. OpenVPN ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ клиСнтскиС прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… ΠΈ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ°Ρ… с Windows ΠΈΠ»ΠΈ macOS, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° смартфонах ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π°Ρ… Π½Π° Π±Π°Π·Π΅ Android ΠΈ iOS. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ см. Π½Π° сайтС openvpn.net.

ΠŸΠ°ΠΊΠ΅Ρ‚ OpenVPN Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° клиСнтском ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΠΊΠ°ΠΊ ΠΎΠ½ Π±Ρ‹Π» установлСн Π½Π° сСрвСрС, хотя здСсь Π½Π΅Ρ‚ нСобходимости Π² easy-rsa, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π²Π°ΠΌΠΈ ΠΊΠ»ΡŽΡ‡ΠΈ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» шаблона client.conf Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /etc/openvpn/, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹Π» создан. На этот Ρ€Π°Π· Ρ„Π°ΠΉΠ» Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½, поэтому обычная ΠΊΠΎΠΌΠ°Π½Π΄Π° cp ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ справится с Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ:

# apt install openvpn
# cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf 
  /etc/openvpn/

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ настроСк Π² вашСм Ρ„Π°ΠΉΠ»Π΅ client.conf Π±ΡƒΠ΄ΡƒΡ‚ довольно понятными: ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ значСниям Π½Π° сСрвСрС. Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ»Π°, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ являСтся remote 192.168.1.23 1194, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ IP-адрСс сСрвСра. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ это адрСс вашСго сСрвСра. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ сСртификата сСрвСра, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡƒΡŽ Π°Ρ‚Π°ΠΊΡƒ Β«Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ посСрСдинС». Один ΠΈΠ· способов ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это β€” Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строку remote-cert-tls server (листинг 10.3).

Книга «Linux Π² дСйствии»
Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /etc/openvpn/ ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ сСртификации с сСрвСра. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ IP-адрСс сСрвСра ΠΈΠ»ΠΈ имя Π΄ΠΎΠΌΠ΅Π½Π° Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ своими значСниями:

Книга «Linux Π² дСйствии»
НичСго Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ, скорСС всСго, Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ запуститС OpenVPN Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π²Ρ‹ сдСлаСтС это ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. АргумСнт —tls-client сообщаСт OpenVPN, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ TLS, Π° —config ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ваш Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ:

# openvpn --tls-client --config /etc/openvpn/client.conf

Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹. Если Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это связано с нСсоотвСтствиСм настроСк ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сСрвСра ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ сСтСвого ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ/брандмауэра. Π’ΠΎΡ‚ нСсколько совСтов, ΠΊΠ°ΠΊ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΊΠΈ.

  • Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ OpenVPN Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅. Он часто содСрТит Ρ†Π΅Π½Π½Ρ‹Π΅ совСты ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ.
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π² Ρ„Π°ΠΉΠ»Π°Ρ… openvpn.log ΠΈ openvpn-status.log Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /etc/openvpn/ Π½Π° сСрвСрС.
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ связанныС с OpenVPN ΠΈ подходящиС ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ сообщСния Π² систСмных ΠΆΡƒΡ€Π½Π°Π»Π°Ρ… Π½Π° сСрвСрС ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅. (journalctl -ce Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π½Π° экран самыС послСдниС записи.)
  • Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ сСтСвоС соСдинСниС ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСром ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ β€” Π² Π³Π»Π°Π²Π΅ 14).

Об Π°Π²Ρ‚ΠΎΡ€Π΅

Дэвид ΠšΠ»ΠΈΠ½Ρ‚ΠΎΠ½ β€” систСмный администратор, ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ ΠΈ ΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ. Он администрировал, писал ΠΎΠ± этом ΠΈ создавал ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ для ΠΌΠ½ΠΎΠ³ΠΈΡ… Π²Π°ΠΆΠ½Ρ‹Ρ… тСхничСских дисциплин, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ систСмы Linux, ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ вычислСния (Π² частности AWS) ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Docker. Он написал ΠΊΠ½ΠΈΠ³Ρƒ Learn Amazon Web Services in a Month of Lunches (Manning, 2017). МногиС ΠΈΠ· Π΅Π³ΠΎ ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… видСокурсов ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° сайтС Pluralsight.com, Π° ссылки Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΅Π³ΠΎ ΠΊΠ½ΠΈΠ³ΠΈ (ΠΏΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Linux ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сСрвСров) доступны ΠΏΠΎ адрСсу bootstrap-it.com.

Β» Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ с ΠΊΠ½ΠΈΠ³ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π½Π° сайтС ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°
» ОглавлСниС
Β» ΠžΡ‚Ρ€Ρ‹Π²ΠΎΠΊ

Для Π₯Π°Π±Ρ€ΠΎΠΆΠΈΡ‚Π΅Π»Π΅ΠΉ скидка 25% ΠΏΠΎ ΠΊΡƒΠΏΠΎΠ½Ρƒ β€” Linux
По Ρ„Π°ΠΊΡ‚Ρƒ ΠΎΠΏΠ»Π°Ρ‚Ρ‹ Π±ΡƒΠΌΠ°ΠΆΠ½ΠΎΠΉ вСрсии ΠΊΠ½ΠΈΠ³ΠΈ Π½Π° e-mail высылаСтся элСктронная ΠΊΠ½ΠΈΠ³Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com