Skip to main content

Настройка маршрутов пользователя

1.       Нам необходимо определить какой адрес будет у пользователя при подключении и куда ему разрешается ходить.

2.       Для начала найдем свободный ip-адрес

 grep -rn 10.8.0. /etc/openvpn/ccd

 Команда grep пройдет по всем файлам в директории и выведет в консоль все совпадения с 10.8.0. – адресация openvpn

 3.       Выбираем любой адрес, которого нет в списке от 2 до 254

Проверить что вы не просмотрели свободный адрес, можно той же командой grep, вбив адрес целиком. К примеру:

grep -rn 10.8.0.38 /etc/openvpn/ccd  - найдет в конфиге такой адрес и выведет его в консоль
grep -rn 10.8.0.119 /etc/openvpn/ccd – такого адреса нет, и в консоль ничего не выведет

 

image.png

4.    Создаем конфигурационный файл пользователя

touch /etc/openvpn/ccd/fursov.m

5.    Прописываем в нем конфигурацию

 nano /etc/openvpn/ccd/fursov.m

ifconfig-push 10.8.0.111 255.255.255.0

push "route 10.10.20.105 255.255.255.255"

image.png

Ifconfig-push – какой адрес и какую маску присваивать клиенту

push route – какой маршрут ему давать (до какого узла внутри сети можно будет ходить). В данном случае задан один адрес, но при желании можно указать несколько.

push "route 10.10.20.105 255.255.255.255"

push "route 10.10.20.106 255.255.255.255"

push "route 10.10.20.107 255.255.255.255"

и т.д.

6.       Сохраняем данный конфиг и оставляем в этой директории.

Настройка фаервола

 

      6.1.       На данном шаге у нас уже имеются сертификаты пользователя, его конфиг и настройка. Осталось добавить разрешающие правила в фаервол, чтобы сервер пропустил клиента к его рабочему месту.

      6.2.       В качестве фаервола на сервере настроен iptables

      6.3.       Чтобы посмотреть текущие настройки iptables, можно ввести команду

iptables -vnL

где ключи 

vverbose т.е. подробный вывод

nnumeric, вывод адресов в цифровом формате. По умолчанию он пытается вместо адресов прописать имена хостов

Llist. Собственно, вывести все содержимое

В ответ мы получим достаточно большую табличку с правилами.

image.png

Основными полями являются source (откуда) destination (куда) ну и комментарий, чтобы каждый раз не искать по конфигам, чей это адрес.

    4.       Для того чтобы добавить новое правило, пишем

iptables -I FORWARD -i tun0 -o eth0 -s 10.8.0.122/32 -d 10.10.10.96/32 -m conntrack --ctstate NEW -j ACCEPT -m comment --comment "fursov.m– 1C"

Соответственно -s источник отправления (наш адрес клиента), -d адрес назначения, куда мы ему разрешаем ходить. Ну и комментарий.

   5.   Если необходимо прописать еще и порт

iptables -I FORWARD -i tun0 -o eth0 -s 10.8.0.119/32 -d 10.10.21.151/32 -p tcp --destination-port 3389 -m conntrack --ctstate NEW -j ACCEPT -m comment --comment "fursov.m – 1C" 

   6.      Еще раз выведем iptables и удостоверимся, что правило появилось

image.png

   7.       (Опционально) Перезапуск openvpn. На случай если при подключении от пользователя, по какой-то причине не применились правила, или что-то работает не корректно. При данном действии, у других пользователей могут порваться сессии, и он отвалятся.

 systemctl restart openvpn@server

   8.       ОБЯЗАТЕЛЬНО ЗАРЕЗЕРВИРОВАТЬ IP КОМПЬЮТЕРА, ИНАЧЕ ПОСЛЕ СМЕНЫ IP НЕОБХОДИМО БУДЕТ МЕНЯТЬ ПРАВИЛО