Четверг, 20 Январь 2022 22:45

Настройка сервера OpenVPN на FreeBSD

Автор
Оцените материал
(9 голосов)

Решил попробовать настроить сервер OpenVPN, но уже FreeBSD. На Linux Fedora я это уже делал, описывая процесс настройки тут: 

https://typical-admin.ru/obshaya/linux-fedora/router-linux-part4

Это решение очень хорошо себя показало в боевых условиях. Но с тех пор прошло много времени, появилась уже более свежая версия OpenVPN — посмотрю, сильно ли она отличается. Да и давненько уже хотелось попробовать это сделать на FreeBSD.

Итак, имею вот такую простейшую схему, по которой и буду настраивать:

Цели будет две:

1. присоединять удалённых клиентов к сети 10.0.0.0/24
2. хостам из внутренней сети 10.0.0.0/24 обеспечить доступ в интернет. 

Начну с установки FreeBSD. На данный момент это версия 12.3 В качестве данного OpenVPN сервера подойдёт обычный ПК с двумя сетевыми картами. Установка и первичная настройка у меня уже описана здесь:

https://typical-admin.ru/obshaya/freebsd/home-web-mail-ftp-server1

На FreeBSD 12.3 я в этом процессе не заметил никаких особых отличий от FreeBSD 9.0. Отмечу лишь, что, в этот раз, я решил не собирать пакеты из портов, а воспользоваться пакетным менеджером pkg. Ибо опции, с которыми собраны готовые пакеты, меня вполне устраивают.

Значит подключаюсь к серверу FreeBSD по ssh под рутом и ввожу команду pkg. При первом запуске утилиты pkg, система попросит её скачать и установить. Нажимаем «Y»: 

# pkg
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y

Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/FreeBSD:12:amd64/quarterly, please wait...
Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
Installing pkg-1.17.5...
Extracting pkg-1.17.5: 100%

После этого необходимо обновить репозиторий: 

# pkg update

Updating FreeBSD repository catalogue...
Fetching meta.conf: 100% 163 B 0.2kB/s 00:01
Fetching packagesite.pkg: 100% 6 MiB 1.3MB/s 00:05
Processing entries: 100%
FreeBSD repository update completed. 31446 packages processed.
All repositories are up to date. 

Далее сразу устанавливаю базовые инструменты, с которыми я привык работать. Это Midnight Commander и текстовый редактор Nano. Во время установки пакетный менеджер уведомляет, что для установки требуемых мне пакетов, надо установить ещё другие пакеты по зависимостям. Жму «Y»:

# pkg install mc nano

Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Updating database digests format: 100%
The following 26 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
diffutils: 3.8
gettext-runtime: 0.21
glib: 2.70.2,2
indexinfo: 0.3.1
libX11: 1.7.2,1
libXau: 1.0.9
libXdmcp: 1.1.3
libXext: 1.3.4,1
libffi: 3.3_1
libiconv: 1.16
libpthread-stubs: 0.4
libsigsegv: 2.12
libslang2: 2.3.2_2
libssh2: 1.10.0,3
libxcb: 1.14_1
libxml2: 2.9.12
mc: 4.8.27_1
mpdecimal: 2.5.1
nano: 5.9
pcre: 8.45
perl5: 5.32.1_1
png: 1.6.37_1
python38: 3.8.12_1
readline: 8.1.1
xorgproto: 2021.5
zip: 3.0_1

Number of packages to be installed: 26

The process will require 251 MiB more space.
45 MiB to be downloaded.

Proceed with this action? [y/N]: y 

Далее устанавливаю Webmin: 

# pkg install webmin

Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 4 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
p5-Authen-PAM: 0.16_2
p5-IO-Tty: 1.16
p5-Net-SSLeay: 1.90
webmin: 1.981_1

Number of packages to be installed: 4

The process will require 128 MiB more space.
30 MiB to be downloaded.

Proceed with this action? [y/N]: y 

После установки вижу сообщение о том, что надо запустить скрипт по конфигурированию вебмина и что надо добавить строчку webmin_enable="YES" в файл /etc/rc.conf: 

After installing Webmin for the first time you should perform the following
steps as root:

* Configure Webmin by running /usr/local/lib/webmin/setup.sh

* Add webmin_enable="YES" to your /etc/rc.conf

* Start Webmin for the first time by running "service webmin start" 

Собственно, запускаю скрипт конфигурирования и отвечаю на его вопросы:

# /usr/local/lib/webmin/setup.sh
***********************************************************************
Welcome to the Webmin setup script, version 1.981
***********************************************************************
Webmin is a web-based interface that allows Unix-like operating
systems and common Unix services to be easily administered.

Installing Webmin in /usr/local/lib/webmin ...

***********************************************************************
Webmin uses separate directories for configuration files and log files.
Unless you want to run multiple versions of Webmin at the same time
you can just accept the defaults.

Log file directory [/var/log/webmin]: <тут жму enter>

***********************************************************************
Webmin is written entirely in Perl. Please enter the full path to the
Perl 5 interpreter on your system.

Full path to perl (default /usr/local/bin/perl): <тут жму enter>

Testing Perl ...
Perl seems to be installed ok

***********************************************************************
Operating system name: FreeBSD
Operating system version: 12.3

***********************************************************************
Webmin uses its own password protected web server to provide access
to the administration programs. The setup script needs to know :
- What port to run the web server on. There must not be another
web server already using this port.
- The login name required to access the web server.
- The password required to access the web server.
- If the webserver should use SSL (if your system supports it).
- Whether to start webmin at boot time.

Web server port (default 10000): <тут жму enter>
Login name (default admin): <тут жму enter>
Login password: <тут придумываю и ввожу пароль>
Password again: <тут снова ввожу этот пароль>
Use SSL (y/n): <тут жму Y>
***********************************************************************
Creating web server config files..
..done

Creating access control file..
..done

Creating start and stop scripts..
..done

Copying config files..
..done

Changing ownership and permissions ..
..done

Running postinstall scripts ..
..done

Enabling background status collection ..
..done

Далее ставлю пакеты OpenVPN и OpenSSL. Пока просто ставлю: 

# pkg install openvpn openssl

Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 6 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
easy-rsa: 3.0.8
liblz4: 1.9.3,1
lzo2: 2.10_1
openssl: 1.1.1m_1,1
openvpn: 2.5.5
pkcs11-helper: 1.27.0

Number of packages to be installed: 6

The process will require 17 MiB more space.
5 MiB to be downloaded.

Proceed with this action? [y/N]: y

После этого перезагружаю сервер.

После перезагрузки надо подготовить мост для OpenVPN. Для этого в /etc/rc.conf добавляю вот такую конструкцию: 

ifconfig_sk0="inet 192.168.0.250 netmask 255.255.255.0"
defaultrouter="192.168.0.1"

cloned_interfaces="tap0 bridge0"
ifconfig_bridge0="inet 10.0.0.1 netmask 255.255.255.0 addm re0 addm tap0 up"
ifconfig_tap0="up"
ifconfig_re0="up" 

Тут кое-какие пояснения: Сетевуха sk0 — это внешний сетевой интерфейс, в который подключен шнур провайдера и на котором должен быть прописать белый статический IP-адрес. В моём случае временно прописан адрес 192.168.0.250, который потом будет заменён после размещения сервера в боевой режим.

Сетевуха re0 — это внутренний сетевой интерфейс (смотрите схему выше). И вот эту сетевуху я объединяю в сетевой мост с виртуальным сетевым интерфейсом tap0, через который будут подключаться OpenVPN-клиенты.

Также, добавляю в /etc/rc.conf строчку для автозапуска вэбмина: 

webmin_enable="YES" 

Потом снова перезапускаю сервер и проверяю поднялся ли мост и запустился ли вебмин. Смотрю, что там с мостом: 

# ifconfig

sk0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80009<RXCSUM,VLAN_MTU,LINKSTATE>
ether 00:17:9a:b3:94:67
inet 192.168.0.250 netmask 0xffffff00 broadcast 192.168.0.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

re0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=82099<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
ether f0:79:59:62:73:64
media: Ethernet autoselect (1000baseT <full-duplex,master>)
status: active
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet 127.0.0.1 netmask 0xff000000
groups: lo
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

tap0: flags=8903<UP,BROADCAST,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80000<LINKSTATE>
ether 58:9c:fc:10:d5:5a
groups: tap
media: Ethernet autoselect
status: no carrier
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 02:c4:ac:7c:3b:00
inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
member: tap0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 port 4 priority 128 path cost 2000000
member: re0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 port 2 priority 128 path cost 55
groups: bridge
nd6 options=9<PERFORMNUD,IFDISABLED> 

Мост работает, сеть 10.0.0.0/24 через него доступна.

Теперь захожу в вэбмин, там требуется установить модуль для OpenVPN. Иду в меню WebminWebmin Configuration и там жму кнопку Webmin Modules.

Там выбираю установку From HTTP or FTP URL, в поле копирую ссылку на модуль: http://www.openit.it/downloads/OpenVPNadmin/openvpn-3.2.wbm.gz и жму Install Module:

На всякий случай, сохранил этот модуль и у себя:

https://disk.yandex.ru/d/ogos4lbzklwV1g

После это действия в меню вэбмина появится пункт OpenVPN + CA. Захожу в него и жму кнопку настройки этого модуля:

Вообще, забегая вперёд, надо сказать, что настройка через вэбмин будет проводиться лишь частично. Потому что данный модуль вэбмина, судя по всему делался под Linux. Во FreeBSD там работает не всё. Напомню, что под линуксом я уже настраивал OpenVPN сервер. И там настройка почти целиком и полностью была через вэбмин: 

https://typical-admin.ru/obshaya/linux-fedora/router-linux-part4

Возвращаясь к FreeBSD, в настройках модуля OpenVPN + CA делаю такие настройки:

Но это не всё. Внизу есть кнопка «Save and Next», жму её и заполняю правильно пути:

Это будет:

Command to start Bridge: /usr/local/lib/webmin/openvpn/br_scripts/bridge_start
Command to stop Bridge: /usr/local/lib/webmin/openvpn/br_scripts/bridge_end
Path to DOWN-ROOT-PLUGIN: /usr/local/lib/openvpn/plugins/openvpn-plugin-down-root.so

Тут надо бы сказать, что данные скрипты написаны под Linux и мне вряд ли пригодятся. Но всё равно указываю верные пути к ним.

Теперь создаю каталог /usr/local/etc/openvpn

mkdir /usr/local/etc/openvpn 

После чего в модуле появились кнопочки:

Также, модуль создал вот такие каталоги и конфигурационный файл для OpenSSL:

И тут важно вот что: Надо в конфигурационном файле openvpn-ssl.cnf найти вот эту строчку: 

default_md = md5 # use public key default MD 

И «md5» исправить на «sha256». Будет так: 

default_md = sha256 # use public key default MD 

Если этого не сделать, то, впоследствии, при запуске OpenVPN будет вываливаться ошибка: 

OpenSSL: error:140AB18E:SSL routines:SSL_CTX_use_certificate:ca md too weak
Cannot load certificate file keys/office1/forserv.crt
Exiting due to fatal error 

Далее, уже в вэбмине жму на кнопку Certification Authority List:

И там дальше заполняю поля для генерации основного сертификата:

Жму Save. Генерация сертификата займёт некоторое время. Надо дождаться. Таким образом, вэбмин сам выполнил следующие команды:

 

 

Потом захожу вот сюда:

Там надо создать сертификат для сервера и для клиентов. Создаю сначала для сервера:

Жму Save. Получаю информацию об успешном генерировании сертификата:

Потом создаю для первого клиента:

Жму Save, получаю очередное уведомление об успешном создании сертификата. И по аналогии создаю сертификат для второго клиента. В итоге имею три сертификата:

Теперь перехожу в VPN List:

Там жму на новый VPN сервер:

Там заполняю поля примерно так. Главное запомнить, какое название вверху написал:

Остальное всё не важно, ибо всё равно при нажатии кнопки Save, вылезет всякая ругань:

Этого бы не было, если бы это всё происходило на линуксе. Можно было бы и дальше продолжить настройку через Webmin. Но на FreeBSD процесс посложнее. Благодаря этой попытке создать конфиг, вэбмин сделал нужные каталоги:

# tree

.
|-- clients
| `-- golovnoy
|-- keys
| `-- office1
| |-- 01.pem
| |-- 02.pem
| |-- 03.pem
| |-- 04.pem
| |-- ca.config
| |-- ca.crt
| |-- ca.key
| |-- ca.pem
| |-- crl.pem
| |-- dh2048.pem
| |-- forserv.crt
| |-- forserv.csr
| |-- forserv.key
| |-- forserv.server
| |-- index.txt
| |-- index.txt.attr
| |-- index.txt.attr.old
| |-- index.txt.old
| |-- klient1.crt
| |-- klient1.csr
| |-- klient1.key
| |-- klient2.crt
| |-- klient2.csr
| |-- klient2.key
| |-- revoke-test.pem
| |-- serial
| `-- serial.old
|-- openvpn-ssl.cnf
`-- servers
`-- golovnoy
|-- bin
| |-- golovnoy.down-root
| `-- golovnoy.up
|-- ccd
`-- logs

Серверный конфиг создам вручную. Конфигом будет вот этот файл: /usr/local/etc/openvpn/golovnoy.conf. Вот его содержимое:

#порт, принимающий соединения
port 1194

#по протоколу udp и используя IPv4
proto udp4

#использовать программное сетевое устройство TAP и его номер
dev tap0

#далее идёт указание путей к сертификатам
ca keys/office1/ca.crt
cert keys/office1/forserv.crt
key keys/office1/forserv.key
dh keys/office1/dh2048.pem
crl-verify keys/office1/crl.pem

#Разрешить OpenVPN управлять собственным пулом клиентских IP-адресов
server-bridge 10.0.0.1 255.255.255.0 10.0.0.10 10.0.0.20

#наличие этой строки указывает, что перед тем как выдать клиенту свободный адрес из пула, сервер должен свериться с файлом ipp.txt, в котором прописывается привязка имени пользователя к ip-адресу.
ifconfig-pool-persist servers/golovnoy/logs/ipp.txt

# выбор метода шифрования
cipher AES-256-GCM

# от чьего имени запускать демона
user nobody
group nobody

# расположение логов
status servers/golovnoy/logs/openvpn-status.log
log-append servers/golovnoy/logs/openvpn.log

# контролирует точность вывода логов от 0 до 15
verb 2

# для заглушения повторяющихся сообщений одной и той же категории.
Mute 20

# максимальное количество клиентов
max-clients 100

# каждые 10 секунд посылать ping на удаленный хост, и, если за 120 секунд не было получено ни одного пакета - то перезапускать туннель.
keepalive 10 120

# каталог для пользовательских файлов конфигурации клиента. После аутентификации подключающегося клиента OpenVPN будет искать в этом каталоге файл с именем, совпадающим с общим именем клиента. Если такой файл существует, он будет открыт и разобран на предмет параметров конфигурации, специфичных для клиента.
client-config-dir /usr/local/etc/openvpn/servers/golovnoy/ccd

# Это позволяет OpenVPN обрабатывать трафик между клиентами внутри сети, минуя системные таблицы маршрутизации, а также правила системного брандмауэра
client-to-client

# указывает не перечитавать файлы ключей при перезапуске туннеля.
persist-key

# данная опция оставляет без изменения устройства tun/tap при перезапуске OpenVPN.
persist-tun

# Требовать условие, чтобы подключающийся клиент имел файл client-config-dir.
ccd-exclusive

# последние две строчки нужны для выполнения скрипта tapup.sh после запуска демона.
script-security 2
up servers/golovnoy/bin/tapup.sh 

Вижу, что в вэбмине данный конфиг отобразился. Перехожу в Client List:

Там жму New VPN Client:

Вверху выбираю на какой клиентский сертификат создаю подключение, отключаю сжатие:

Потом спускаюсь ниже, нахожу поле Additional Configurations и в нём прописываю параметры:

remote-cert-tls server
auth-nocache

Вот скриншот:

Потом жму Save. Аналогично создаю ещё одно подключение уже выбрав сертификат второго клиента. В итоге у меня появилось два клиента. Нажав кнопку Export я получу zip-файл с конфигом и сертификатами.

Этот zip-файл надо передать на компьютер клиента и распаковать его в каталог C:\Program Files\OpenVPN\config в случае Windows. В случае же unix-подобных ОС, каталог распаковки может быть в разных местах. Например, в случае с Fedora, CentOS и Debian это /etc/openvpn. На FreeBSD, как уже понятно из этой статьи, каталог будет /usr/local/etc/openvpn.

Теперь надо создать скрипт tapup.sh, упомянутый в серверной части конфига: 

nano /usr/local/etc/openvpn/servers/golovnoy/bin/tapup.sh 

И наполняю файл таким содержимым: 

#!/bin/sh

/sbin/ifconfig tap0 up 

Сохраняю и даю этому файлу права на исполнение: 

chmod 755 /usr/local/etc/openvpn/servers/golovnoy/bin/tapup.sh 

Объясняю, для чего этот скрипт. Дело в том, что если демона OpenVPN остановить или перезапустить, то в системе отваливается интерфейс tap0. Соответственно, когда демона запускаю обратно, то клиентам более не доступна сеть 10.0.0.0/24. Данный скрипт заново поднимает в системе интерфейс tap0. Демон выполняет этот скрипт сразу после своего запуска. 

Осталось кое-что добавить в файл /etc/rc.conf

openvpn_enable="YES"
openvpn_if="tap"
openvpn_configfile="/usr/local/etc/openvpn/golovnoy.conf"
openvpn_dir="/usr/local/etc/openvpn" 

Затем перезагружаю сервер, чтобы проверить, запустится ли демон OpenVPN автоматически. После загрузки смотрю, что там у меня в лог-файле /usr/local/etc/openvpn/servers/golovnoy/logs/openvpn.log. Вижу предупреждение о том, что внешняя сеть у меня 192.168.0.0/24 и что может быть конфуз из-за этого. Ну это само собой, в моём случае это решение временное, поэтому игнорирую и смотрю дальше. А дальше вижу записи об успешном запуске: 

CRL: loaded 1 CRLs from file keys/office1/crl.pem
TUN/TAP device tap0 exists previously, keep at program end
TUN/TAP device /dev/tap0 opened
UDPv4 link local (bound): [AF_INET][undef]:1194
UDPv4 link remote: [AF_UNSPEC]
GID set to nobody
UID set to nobody
Initialization Sequence Completed 

Что ж, пробую подключиться с Windows компа. Подключение успешное:

Высветившееся предупреждение совсем не критично, можно не обращать внимание. На сервер ESXi доступ тоже есть:

Первую задачу можно считать завершённой. Теперь надо включить и настроить фаервол, чтобы сам EXSi и его виртуалки могли выходить в интернет. 

Для решения второй задачи надо пересобрать ядро, активировав в нём фаервол и nat. Сначала подстрахуюсь и сохраню текущее ядро на тот случай, если тюнинг ядра не удастся. Делаю команду: 

cp -Rp /boot/kernel /boot/kernel.good 

Потом перехожу в каталог /usr/src/sys/amd64/conf и нахожу файл GENERIC. Тут же, делаю его копию с каким-нибудь своим названием. Например, я сделал с названием mykernel. Затем, надо отредактировать свой файл. Самым первым делом нахожу вот эту строчку: 

ident GENERIC 

И меняем её на моё имя ядра: 

ident mykernel 

А для активации фаервола и nat добавляю в конец файла строчки: 

# включить фаервол
options IPFIREWALL

# делать логи пакетов, для которых в правилах есть опция 'log'
options IPFIREWALL_VERBOSE

# Ограничение повторяющихся логов на случай атак типа флудинга.
options IPFIREWALL_VERBOSE_LIMIT=50

# включение возможности NAT
options IPFIREWALL_NAT
options LIBALIAS

# Включение возможности ограничивать скорость трафика.
options DUMMYNET

options ROUTETABLES=2
options HZ="1000" 

После того, как редактировать закончил, перехожу в каталог /usr/src и там делаю команды:

make buildkernel KERNCONF=mykernel
make installkernel KERNCONF=mykernel 

Первая команда делает сборку ядра, она будет долго отрабатывать. Вторая команда установит это ядро в систему.

Далее добавляю строчки в rc.conf: 

firewall_enable="YES"
firewall_type="/etc/ipfw.rules"
ipfw_enable="YES"
firewall_nat_enable="YES"
gateway_enable="YES" 

Затем, в файл /etc/sysctl.conf добавляю строчку: 

net.inet.ip.fw.one_pass=1 

Теперь надо сразу прописать правила трафика для фаервола. Создаю файл /etc/ipfw.rules и наполняю его вот таким содержимым: 

# сброс всех правил
-f flush

# разрешить любой доступ через интерфейс-петлю
add 00050 allow all from any to any via lo0

# правила для OpenVPN-соединений: они перекидывают трафик дальше к правилу 65, минуя все NATы.
add 00051 skipto 00065 udp from any to me 1194 via sk0

# это если кому-то извне нужен доступ по ssh или в вэбмин. Тоже перекидывает на правило 65, минуя NATы
add 00052 skipto 00065 tcp from 192.168.0.86 to me 22,10000 via sk0

# второй NAT, чтобы проходил ping везде. В том числе сервер будет пинговаться извне.
nat 2 config if sk0 reset same_ports
add 00063 nat 2 icmp from any to any icmptypes 0,8 via sk0

# NAT для локальной сети. ESXi и виртуалки будут ходить в интернет.
nat 3 config if sk0 reset same_ports deny_in
add 00064 nat 3 all from any to any via sk0

# разрешить любой исходящий трафик с сервера
add 00065 allow all from me to any

# разрешить прохождение пакетов со статусом 'установлен'
add 00075 allow tcp from any to any established

# разрешить весь icmp трафик
add 00100 allow icmp from any to any

# разрешить весь трафик через локалку, мост и впн
add 00102 allow all from any to any via tap0
add 00103 allow all from any to any via bridge0
add 00104 allow all from any to any via re0

# разрешить серверу обмениваться любым трификом со DNS-сервером
add 00150 allow all from 192.168.0.1 to me via sk0

# открытые порты к серверу извне
add 00160 allow tcp from 192.168.0.86 to me 22,10000 via sk0
add 00161 allow udp from any to me 1194 via sk0

# Запретить всё остальное
add 10000 deny all from any to any 

Напомню, что у меня сеть 192.168.0.0/24 эмулирует интернет. Все адреса из этой сети заменятся на белые адреса глобальной сети.

Теперь можно перезагрузить сервер и после загрузки проверить работу OpenVPN; проверить, могут ли виртуалки выходить в интернет; проверить, доступен ли сервер по SSH для левых компов из внешней сети — должен быть Недоступен. Если всё так, то задание выполнено, можно статью завершать.

Донаты принимаются на кошельки:

Yoomoney:
4100118091867315

BTC:
bc1qzw9vam8mv6derwscxl0vrnd6m9t2rpjg273mna

ETH / BNB BSC / Polygon MATIC:
0x5cc07FF76490350ac6112fbFdA1B545Bc794602F

Tron:
TJUz8sJr9XYMjVqzmFNnCzzRWfPa57X2RV

USDT/USDC в сетях ETH/BSC/Polygon:
0x5cc07FF76490350ac6112fbFdA1B545Bc794602F

USDT в сети TRX (Tron):
TJUz8sJr9XYMjVqzmFNnCzzRWfPa57X2RV

LTC:
LRMZaFCSyCT6FUF62WEX1BokWV7v2dh2zo

Doge:
DTEnGLZRps9XaWNtAhchJWSeD4uTNDRxg7

XMR:
4A6uP1WxEc7HktToZFyiJuK6YmjdL8bSn2aY653qPwABhT4Y56iFuedgHcmpvLwWE55u8qkjGc715ZJs761FqedA8gkgznr

TON:
UQAdSPiWIDx2Q1VIeezkUV3s4sNlZM90w2ohSO6bD2-okwgY

Прочитано 1946 раз Последнее изменение Пятница, 15 Декабрь 2023 15:47

You have no rights to post comments

Вы здесь: Home Мои статьи FreeBSD Настройка сервера OpenVPN на FreeBSD