WireGuard е популярен комуникационен протокол от точка на точка с отворен код, който се използва за създаване на сигурен и бърз тунел за виртуална частна мрежа. Тази VPN е проектирана за използване в ядрото на Linux. WireGuard е лека VPN мрежа, която осигурява изключително бързи скорости на потребителите.
Тази статия ви показва как да инсталирате и настроите WireGuard на вашата система CentOS 8. Инсталирането и настройката на WireGuard са много по-лесни от вече съществуващите VPN, като OpenVPN, и това е основна причина за нарастващата му популярност в Linux общността.
Общ преглед
Тази статия се състои от два раздела:
- В първия раздел ще инсталираме и конфигурираме машина CentOS 8, която ще действа като VPN сървър WireGuard.
- Във втория раздел ще инсталираме и конфигурираме машина CentOS 8, която ще действа като VPN клиент на WireGuard.
Инсталиране и конфигуриране на WireGuard на сървър CentOS 8
В този раздел ще настроим машина CentOS 8, която ще действа като сървър, като инсталира WireGuard.
Стъпка 1: Добавете EPEL и Elrepo хранилища
За да започнете с инсталирането на WireGuard на CentOS 8, първо добавете хранилищата EPEL и Elrepo, за да инсталирате модулите на ядрото и инструментите WireGuard.
$ sudo dnf инсталирайте epel-release elrepo-release -y
Сега, след като инсталирате необходимите хранилища, инсталирайте модулите на ядрото и инструментите WireGuard.
Стъпка 2: Инсталирайте модули на ядрото и WireGuard Tools
Модулите на ядрото и инструментите WireGuard могат да бъдат инсталирани бързо от хранилищата EPEL и Elrepo чрез издаване на следната команда:
$ sudo dnf инсталирайте kmod-wireguard wireguard-tools
Когато бъдете подканени за разрешение да импортирате и добавите GPG ключовете към системата CentOS 8, разрешете това действие, като напишете „Y“ и натиснете „Enter.”
След като успешно инсталирахме инструментите WireGuard, сега ще изпълним някои конфигурации.
Стъпка 3: Създайте публични и частни ключове
Първо, ще създадем нова директория „/ etc / wireguard“, за да можем да конфигурираме VPN сървъра в директорията. За да създадете нова директория '/ etc / wireguard' в системата CentOS 8, издайте следната команда.
sudo mkdir / etc / wireguard
След като създадете директорията, създайте публичния и частния ключ, като използвате инструментите за команден ред “wg” и “tee”. Командата за създаване на частни и публични ключове е както следва.
$ wg genkey | sudo tee / etc / wireguard / privatekey | wg pubkey | sudo tee / etc / wireguard / publickey
Генерираният ключ ще бъде отпечатан при изпълнение на горната команда.
Стъпка 4: Конфигуриране на тунелно устройство за маршрутизиране на VPN трафик
За да настроите устройство, създайте конфигурационен файл в директорията '/ etc / wireguard' и отворете файла с помощта на nano редактор.
Преди да създадете конфигурационния файл, вземете частния ключ, като използвате следната команда.
$ sudo cat / etc / wireguard / privatekey
Запазете някъде частния ключ; този ключ ще ви е необходим по-късно в конфигурационния файл.
Сега създайте “wg0.conf ”файл.
$ sudo nano / etc / wireguard / wg0.конф
Добавете съдържанието, дадено по-долу, към „/ etc / wireguard / wg0.conf ”файл.
[Интерфейс]## IP адрес на VPN сървър ##
Адрес = 192.168.18.200/24
## Запазете конфигурацията, когато нов клиент ще добави ##
SaveConfig = вярно
## номер на порт на VPN сървър ##
ListenPort = 51820
## Частен ключ на VPN сървър ##
PrivateKey = SERVER_PRIVATE_KEY
## Команда, която трябва да се изпълни преди стартиране на интерфейса ##
PostUp = firewall-cmd --zone = public --add-port 51820 / udp && firewall-cmd --zone = public --add-masquerade
## Команда, която трябва да бъде изпълнена преди да изключите интерфейса ##
PostDown = firewall-cmd --remove-port 51820 / udp --zone = public && firewall-cmd --remove-masquerade --zone = public
Този конфигурационен файл съдържа следните ключови термини:
- Адрес - частният IP адрес за интерфейса (wg0).
- SaveConfig = true - запазва състоянието на интерфейса при рестартиране или изключване на сървъра.
- ListenPort - пристанището, където прослушва демонът WireGuard.
- PrivateKey - ключът, който току-що генерирахме.
- Публикувате - тази команда ще бъде изпълнена преди задействане на интерфейса
- PostDown - тази команда ще бъде изпълнена преди да изключите интерфейса.
Сега, когато разбирате конфигурационния файл доста добре, можете да запазите файла и да излезете с помощта на клавишните комбинации (CTRL + S) и (CTRL + X).
Стъпка 5: Задайте привилегии на конфигурацията и файла „privatekey“
Сега ще направим VPN сървъра малко по-сигурен. Основният потребител не трябва да има привилегиите да чете конфигурационния файл и файла 'privatekey'. За да осигурим достъп до тези файлове, ще променим режима на тези два файла на 600. Командата за задаване на разрешенията е дадена по-долу.
$ sudo chmod 600 / etc / wireguard / privatekey$ sudo chmod 600 / etc / wireguard / wg0.конф
След финализиране на разрешенията, ние ще активираме интерфейса (wg0) с помощта на инструмента за команден ред wg-quick.
Стъпка 6: Стартирайте интерфейса
За да активирате интерфейса, издайте командата, дадена по-долу:
$ sudo wg-бързо нагоре wg0
Ако сте получили изхода, показан на екранната снимка по-горе, успешно сте стартирали интерфейса. Сега ще проверим състоянието на интерфейса.
$ sudo wg
Активирайте интерфейса за автоматично стартиране на интерфейса при зареждане на сървъра CentOS 8.
$ sudo systemctl активира wg-quick @ wg0
На този етап настройката на сървъра е завършена. Сега, ако искате да настроите този VPN сървър за NAT, ще трябва да активирате препращането на IPv4.
Стъпка 7: Активирайте IPv4 Forwarding
За да активирате пренасочването на IPv4 за NAT, създайте “99-custom.conf ”в“ / etc / sysctl.d ”директория с помощта на nano редактора.
$ sudo nano / etc / sysctl.г / 99-по поръчка.конф
Добавете следното съдържание към “/ etc / sysctl.г / 99-по поръчка.доверие ”
## за разрешаване на препращане на IPv4 ##нето.ipv4.ip_forward = 1
За да активирате пренасочването на IPv6, добавете следното съдържание към “/ etc / sysctl.г / 99-по поръчка.conf ”, също.
## за разрешаване на препращане на IPv6 ##нето.ipv6.конф.всичко.препращане = 1
След като активирате пренасочването на IPv4, запазете файла и излезте с помощта на преките пътища (CTRL + S) и (CTRL + X).
Нека сега преминем към настройването на клиентска машина WireGuard.
Инсталиране и конфигуриране на WireGuard VPN на клиент CentOS 8
В този раздел ще настроим машина CentOS 8, която ще действа като клиент. Процесът на инсталиране и конфигуриране на WireGuard VPN клиент ще бъде почти същият, както при WireGuard VPN сървъра.
Стъпка 1: Добавете EPEL и Elrepo хранилища
Първо, ще добавим EPEL и Elrepo хранилищата, за да инсталираме модулите на ядрото и инструментите WireGuard:
$ sudo dnf инсталирайте epel-release elrepo-release -y
След инсталирането на необходимите хранилища ще инсталираме модулите на ядрото и WireGuard Tools.
Стъпка 2: Инсталирайте модули на ядрото и WireGuard Tools
Модулите на ядрото и инструментите WireGuard вече могат да бъдат инсталирани от хранилищата EPEL и Elrepo чрез издаване на следната команда.
$ sudo dnf инсталирайте kmod-wireguard wireguard-tools
Когато бъдете помолени за разрешение да импортирате и добавите GPG ключовете към системата CentOS 8, разрешете промените, като напишете „Y“ и натиснете „Enter.”
След като инструментите WireGuard са инсталирани успешно, клиентската машина CentOS 8 също трябва да бъде конфигурирана.
Стъпка 3: Създайте публични и частни ключове
В тази стъпка ще създадем нова директория „/ etc / wireguard“ в клиентската машина. За да създадете новата директория '/ etc / wireguard' във вашата система CentOS 8, въведете следната команда.
sudo mkdir / etc / wireguard
След като създадете директорията, създайте публичния и частния ключ, като използвате инструментите за команден ред “wg” и “tee”. Командата за създаване на частни и публични ключове е предоставена по-долу.
$ wg genkey | sudo tee / etc / wireguard / privatekey | wg pubkey | sudo tee / etc / wireguard / publickey
Сега генерираните ключове ще бъдат отпечатани.
Стъпка 4: Конфигурация за маршрутизиране на VPN трафик
В тази стъпка ще създадем конфигурационен файл в директорията '/ etc / wireguard' и ще го отворим с помощта на nano редактора.
Преди да създадете конфигурационния файл, вземете частния ключ, като използвате следната команда.
$ sudo cat / etc / wireguard / privatekey
Запазете някъде частния ключ; ще ви трябва по-късно в конфигурационния файл.
Сега създайте “wg0.conf ”файл.
$ sudo nano / etc / wireguard / wg0.конф
Добавете съдържанието, дадено по-долу, към „/ etc / wireguard / wg0.conf ”файл
[Интерфейс]## Частен ключ на VPN клиент ##
PrivateKey = 8D8puLQCbUw + 51wPE3Q7KutGxQhUvsy + a + DBgamb + 3o =
## IP адрес на VPN клиент ##
Адрес = 192.168.18.201/24
[Връстник]
## Публичен ключ на CentOS 8 VPN сървър ##
PublicKey = VWndJ4oB7ZJwC / 7UOm ++ OLDrbAxMPsR2yd0cl3sEkUI =
## задайте ACL ##
AllowedIPs = 0.0.0.0/0
## IP адрес и порт на CentOS 8 VPN сървър ##
Крайна точка = 192.168.18.200: 51820
Конфигурационният файл съдържа следните ключови термини:
- PrivateKey - ключът, генериран на клиентската машина.
- Адрес - IP адресът за интерфейса (wg0).
- PublicKey - публичният ключ на VPN сървърната машина, към която искаме да се свържем.
- Разрешени IP - всички разрешени IP адреси за поток от трафик с помощта на VPN.
- Крайна точка - ще предоставим IP адреса и номера на порта на сървърната машина CentOS 8, към която искаме да се свържем.
Вече конфигурирахме и клиентската машина. Запазете файла и излезте с помощта на клавишните комбинации (CTRL + S) и (CTRL + X).
Стъпка 5: Задайте привилегии на конфигурацията и файла „privatekey“
Сега ще променим режима и ще зададем привилегиите на конфигурационния файл и файла „privatekey“ на 600. Въведете следната команда, за да зададете разрешенията.
$ sudo chmod 600 / etc / wireguard / privatekey$ sudo chmod 600 / etc / wireguard / wg0.конф
След като финализирахме разрешенията, можем да активираме интерфейса (wg0), използвайки инструмента за команден ред “wg-quick”.
Стъпка 6: Стартирайте интерфейса
За да активирате интерфейса, издайте командата, дадена по-долу:
$ sudo wg-бързо нагоре wg0
Вече стартирахме успешно интерфейса. След това ще проверим състоянието на интерфейса.
$ sudo wg
Активирайте интерфейса за автоматично стартиране на интерфейса при зареждане на сървъра CentOS 8.
$ sudo systemctl активира wg-quick @ wg0
На този етап се настройва и клиентът.
Стъпка 7: Добавете IP адрес и публичен ключ на клиента към CentOS 8 Server
Последната стъпка е да добавите IP адреса и публичния ключ на VPN клиентската машина към конфигурационния файл на CentOS 8 WireGuard VPN сървърната машина.
Върнете се към сървърната машина и добавете следното съдържание към “/ etc / wireguard / wg0.conf ”файл.
[Връстник]## Публичен ключ на VPN клиент ##
PublicKey = dmfO9pirB315slXOgxXtmrBwAqPy07C57EvPks1IKzA =
## IP адрес на VPN клиент ##
РазрешениIPs = 192.168.10.2/32
След актуализиране на конфигурационния файл на VPN сървъра, запазете файла и излезте с помощта на клавишните комбинации (CTRL + S) и (CTRL + X).
Тунелът вече е установен и целият трафик ще бъде преминат през VPOS сървъра CentOS 8 WireGuard.
Стъпка 8: Проверете тунелната връзка
За да проверите дали CentOS 8 WireGuard VPN сървърът е инсталиран и конфигуриран правилно, издайте командата, дадена по-долу, за да проверите дали трафикът протича през конфигурирания VPN сървър WireGuard.
$ sudo wg
И това е всичко! Успешно сте конфигурирали и установили WireGuard VPN сървър.
Заключение
Тази статия ви показа как да инсталирате и конфигурирате WireGuard VPN на вашата машина CentOS 8 и да настроите системата като VPN сървър. Също така ви показахме как да настроите CentOS 8 WireGuard VPN клиент и да конфигурирате клиента да насочва трафика през VPN сървъра WireGuard.