Настройка маршрутов пользователя
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 – такого адреса нет, и в консоль ничего не выведет
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"
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
где ключи
v – verbose т.е. подробный вывод
n – numeric, вывод адресов в цифровом формате. По умолчанию он пытается вместо адресов прописать имена хостов
L – list. Собственно, вывести все содержимое
В ответ мы получим достаточно большую табличку с правилами.
Основными полями являются 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 и удостоверимся, что правило появилось
7. (Опционально) Перезапуск openvpn. На случай если при подключении от пользователя, по какой-то причине не применились правила, или что-то работает не корректно. При данном действии, у других пользователей могут порваться сессии, и он отвалятся.
systemctl restart openvpn@server
8. ОБЯЗАТЕЛЬНО ЗАРЕЗЕРВИРОВАТЬ IP КОМПЬЮТЕРА, ИНАЧЕ ПОСЛЕ СМЕНЫ IP НЕОБХОДИМО БУДЕТ МЕНЯТЬ ПРАВИЛО




No Comments