====== Настраиваем OpenVPN ====== Начнем пожалуй с установки пакета, который поможет нам в приятном виде отдавать архивы с ключами и конфигурационным файлом наших пользователей System -> Packages Выбираем **OpenVPN Client Export Utility** устанавливаем. {{:pfsense:ovpntun:23.png?direct&200|}} Теперь сам **OpenVPN** VPN -> OpenVPN {{:pfsense:ovpntun:1.png?direct&200|}} Не будем ничего придумывать. Будем пользоваться "визардом". Выбираем вкладку **Wizards**. На первом шаге **Select an Authentication Backend Type** выбираем **Local User Access**, жмем **Next**. {{:pfsense:ovpntun:2.png?direct&200|}} В процессе установки мы должны создать два сертификат. Один для сервера и один самоподписанный. В первую очередь создается корневой самоподписанный сертификат: **Create a New Certificate Authority (CA) Certificate**. {{:pfsense:ovpntun:3.png?direct&200|}} Далее сертификат сервера **Create a New Server Certificate**. {{:pfsense:ovpntun:4.png?direct&200|}} Заполняем поля по усмотрению и жмем **Create new Certificate** и попадаем в настройки конфигурации самого сервера. {{:pfsense:ovpntun:5.png?direct&200|}} Следующим шагом нам предлагают автоматом включить правила файрволла. Ставим галки и **Next**. {{:pfsense:ovpntun:6.png?direct&200|}} В финишном окне напоминают, что нужно поставить пакет **OpenVPN Client Export Utility** - мы его поставили сразу. {{:pfsense:ovpntun:7.png?direct&200|}} Смотрим, что у нас получилось, {{:pfsense:ovpntun:8.png?direct&200|}} и немного подредактируем конфигурацию. В **Server Mode** я выбрал **Remote Access (SSL/TLS)** чтобы не запрашивались пароли пользователей, которые будут подключаться. Так же выбрал **Enable NetBIOS over TCP/IP**, пусть будет. Сохраняемся. {{:pfsense:ovpntun:9.png?direct&200|}} Посмотрим на наши сертификаты System -> Cert Manager {{:pfsense:ovpntun:10.png?direct&200|}} {{:pfsense:ovpntun:11.png?direct&200|}} Теперь создадим пользователей. System -> User Manager В создании пользователя нет ничего особенного. Не забываем поставить галку ** Click to create a user certificate.** Заполняем по своему усмотрению и **Save** {{:pfsense:ovpntun:12.png?direct&200|}} {{:pfsense:ovpntun:13.png?direct&200|}} {{:pfsense:ovpntun:14.png?direct&200|}} На этом этапе можно забрать сертификаты и настройки клиента и начинать работать. VPN -> OpenVPN Вкладка **Client Export** Выкачиваем что нам надо, устанавливаем и работаем. {{:pfsense:ovpntun:15.png?direct&200|}} Теперь каснемся важного момента отлучения так сказать клиента от сервера. Что если вдруг нужно прекратить (запретить) доступ определенному клиенту? Для этого мы сделаем так называемый **Certificate Revocation List** System -> Cert Manager {{:pfsense:ovpntun:16.png?direct&200|}} Вкладка **Certificate Revocation**. Давим плюсик дабы создать этот самый **LIst** (список). Называем его как нибудь, сохраняемся **Save**. {{:pfsense:ovpntun:17.png?direct&200|}} Видим, что что-то появилось. {{:pfsense:ovpntun:18.png?direct&200|}} Список этот мы можем экспортировать, редактировать и удалить. Нажмем на кнопочку **e** - попытаемся поредактировать. Нужно выбрать нужный сертификат из списка, выбрать необязательное поле причины отказа и нажать кнопочку **Add** {{:pfsense:ovpntun:19.png?direct&200|}} Видим, что в списке у нас 1 сертификат. Если вдруг пользователь одумается можно удалить из списка отзывов его сертификат и он снова сможет подключиться к серверу. {{:pfsense:ovpntun:20.png?direct&200|}} {{:pfsense:ovpntun:21.png?direct&200|}} Чтобы сервер знал о том, какие сертификаты отозваны, ему нажно указать наш созданный лист **Peer Certificate Revocation List** {{:pfsense:ovpntun:22.png?direct&200|}} Иногда возникает необходимость выдавать определенному клиенту постоянный IP адрес. Делается это достаточно просто. Идем VPN -> OpenVPN -> **Client Cpecific Overrides** В поле **Common Name** впишем имя сертификата клиента, которому хотим выделить постоянный адрес. В поле **Advanced** впишем команду, которая и присвоит нужный IP: ifconfig-push 10.0.17.22 255.255.255.0; {{:pfsense:ovpntun:24.png?direct&200|}} Особо обращаю внимание на второй аргумент этой команды. Это маска подсети. Дело в том, что в настройках сервера я указал использовать 1 адрес для клиента (topology subnet), вместо изолированной подсети (topology net30). {{:pfsense:ovpntun:25.png?nolink|}} Если бы опция **Topology** Allocate only one IP per client (topology subnet), rather than an isolated subnet per client (topology net30). была бы выключена, тогда вторым аргументом я должен бы был указать IP адрес самого сервера, то есть IP на стороне сервера из подсети по маске **/30**