WireGuard VPN на Rocky Linux 8

Thank you for reading this post, don't forget to subscribe!

WireGuard – это бес­плат­ная VPN с откры­тым исход­ным кодом и совре­мен­ной криптографией.

Wireguard рабо­та­ет в архи­тек­ту­ре сер­вер-кли­ент, где сер­вер WireGuard отве­ча­ет за марш­ру­ти­за­цию тра­фи­ка кли­ен­тов в опре­де­лен­ные сети.

Установка WireGuard VPN сервера на Rocky Linux 8

Ниже опи­са­ны шаги, как уста­но­вить WireGuard VPN сер­вер на Rocky Linux 8.

Шаг 1. Установка релиза Epel

Уста­но­ви­те релиз EPEL на Rocky Linux 8.

Это помо­жет нам загру­зить паке­ты WireGuard, кото­рые недо­ступ­ны в стан­дарт­ном репо­зи­то­рии Rocky Linux.

sudo dnf install epel-release elrepo-release -y

Шаг 2. Установка сервера WireGuard VPN на Rocky Linux 8

Уста­но­ви­те wireguard vpn и необ­хо­ди­мые зави­си­мо­сти, как пока­за­но ниже:

Шаг 3. Настройка WireGuard VPN на Rocky Linux 8

После загруз­ки сле­ду­ю­щим шагом будет настрой­ка VPN-сер­ве­ра WireGuard на Rocky Linux 8.

Создай­те рабо­чий ката­лог WireGuard, в кото­ром WireGuard будет хра­нить фай­лы конфигурации.

sudo mkdir /etc/wireguard

Шаг 4. Генерация ключей WireGuard

Нам потре­бу­ет­ся сге­не­ри­ро­вать откры­тый и закры­тый клю­чи для WireGuard.

Генерация закрытых ключей для WireGuard

Исполь­зуй­те коман­ду wg genkey для гене­ра­ции закры­тых клю­чей WireGuard.

Что­бы сге­не­ри­ро­вать ключ, выпол­ни­те сле­ду­ю­щую команду:

umask 077 | wg genkey | sudo tee /etc/wireguard/wireguard.key
Убе­ди­тесь, что файл был запи­сан по ука­зан­но­му выше пути:

# cat /etc/wireguard/wireguard.key
6Eh08BtDiAqkTJ0rC6AbXi+UXyg+ZZoDU4n/ariG2Hg=
Гене­ра­ция откры­тых клю­чей для Wireguard
Сге­не­ри­руй­те откры­тый ключ на осно­ве закры­то­го клю­ча, создан­но­го на преды­ду­щем этапе.

wg pubkey < /etc/wireguard/wireguard.key > /etc/wireguard/wireguard.pub.key
Про­верь­те содер­жи­мое фай­ла откры­то­го ключа.

[root@Rocky ~]# cat /etc/wireguard/wireguard.pub.key
BXfVP+JcQbwZUkhHtVJQIVEOw4oXM1fj1FDkC1f0ais=

Шаг 5. Создание сетевой конфигурации для WireGuard

Создай­те сете­вую кон­фи­гу­ра­цию для wireguard, как пока­за­но ниже.

Не забудь­те исполь­зо­вать закры­тый ключ ваше­го сервера.

Шаг 6. Включим переадресацию IP-адресов на Rocky Linux 8

Вклю­чи­те IP-пере­ад­ре­са­цию на Rocky Linux, что­бы обес­пе­чить марш­ру­ти­за­цию паке­тов для VPN-кли­ен­тов к необ­хо­ди­мым пунк­там назначения.

Добавь­те стро­ку net.ipv4.ip_forward = 1 в файл /etc/sysctl.conf.

echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
Пере­за­гру­зи­те настрой­ки sysctl:

sudo sysctl -p

Шаг 7. Запуск сервера WireGuard VPN

Запу­сти­те сер­вер WireGuard VPN с помо­щью инстру­мен­та wg-quick.

Про­верь­те и убе­ди­тесь, что интер­фейс Wireguard поднят.

Вы так­же може­те управ­лять служ­бой Wireguard с помо­щью Systemd.

Что­бы запу­стить службу:

sudo systemctl start wg-quick@wg0

Что­бы про­ве­рить ста­тус службы:

Настройка клиента WireGuard на Rocky Linux 8

После успеш­ной настрой­ки сер­ве­ра WireGuard  нам нуж­но настро­ить кли­ент WireGuard на дру­гой машине Rocky Linux 8.

Уста­но­ви­те пакет Wireguard на Rocky Linux

dnf install epel-release elrepo-release -y
dnf install kmod-wireguard wireguard-tools -y
Настрой­те закры­тый и откры­тый клю­чи для кли­ент­ской маши­ны Rocky Linux:

sudo su -
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
Настрой­те интер­фейс WireGuard для кли­ен­та Rocky Linux

Убе­ди­тесь, что в при­ве­ден­ной выше кон­фи­гу­ра­ции исполь­зу­ют­ся пра­виль­ные дан­ные для PrivateKey, PublicKey и Endpoint.

На VPN-сер­ве­ре выпол­ни­те при­ве­ден­ную ниже коман­ду, что­бы раз­ре­шить одно­ран­го­вое соеди­не­ние с кли­ент­ской машиной

sudo wg set wg0 peer <client-public-key> allowed-ips 10.0.0.2
На кли­ент­ской машине запу­сти­те интер­фейс Wireguard с помо­щью при­ве­ден­ной ниже команды: