|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> программы
—> OpenVPN + LDAP
OpenVPN с авторизацией в OpenLDAP
Автор: aleksey.kravchenko.
Статья о том, как настроить OpenVPN с авторизацией пользователей в OpenLDAP. OpenVPN настраивал по статье Openvpn + FreeBSD.
Задача: обеспечить безопасный удаленный доступ к ресурсам локальной сети, используя для
авторизации доменные учетные записи, хранящиеся в OpenLDAP. После подключения клиенту должен
выдаваться IP-адрес и адрес локального DNS-сервера. Основной шлюз клиента меняться не будет,
чтобы сохранить доступ к другим ресурсам Интернет.
Условия: в локальной сети 192.168.1.0 есть маршрутизатор, который имеет IP-адрес
192.168.1.1. Маршрутизвтор подключен к провайдеру по PPPoE и имеет реальный IP-адрес
22.22.22.22. Модем настроен в режиме "мост". Для подключения используется ppp. На этом
маршрутизаторе запущен DNS-сервер BIND и межсетевой экран ipfw, и именно он будет
выполнять функцию VPN-сервера. Версия FreeBSD - 6.2. OpenLDAP-сервер имеет IP-адрес
192.168.1.3.
1. Установка программ
Шаг 1
Установите OpenVPN из портов. Не удаляйте исходный код!
# cd /usr/ports/security/openvpn/
# make install
# rehash
| Шаг 2
Установите из портов re2c:
# cd /usr/ports/devel/re2c
# make install clean
# rehash
| Шаг 3
Скачайте архив http://openvpn-auth-ldap.googlecode.com/files/auth-ldap-2.0.3.tar.gz и установите:
# cd /home/krav/install/
# tar xzpf auth-ldap-2.0.3.tar.gz
# cd auth-ldap-2.0.3
# ./configure \
? -–prefix=/usr/local \
? –-with-openldap=/usr/local \
? –-with-openvpn=/usr/ports/security/openvpn/work/openvpn-2.0.6/
# make
# make install
| Примечание! Это для FreeBSD 6.2. В 7-ке появился порт /usr/ports/security/openvpn-auth-ldap
2. Создание сертификатов
Эта часть практически полностью скопирована из статьи http://www.lissyara.su/?id=1549
Шаг 1
Загрузите переменные в оболочку:
# cd /usr/local/share/doc/openvpn/easy-rsa/
# sh
# . ./vars
| Шаг 2
Запустите скрипт для создания серийного и индексного файла для новых ключей:
Шаг 3
Создайте сертификат. При создании сертификата введите всю необходимую информацию:
# ./build-ca
Generating a 1024 bit RSA private key
.....++++++
....++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [KG]:UA
State or Province Name (full name) [NA]:Dnepropetrovsk
Locality Name (eg, city) [BISHKEK]:Dnepropetrovsk
Organization Name (eg, company) [OpenVPN-TEST]:server
Organizational Unit Name (eg, section) []:server
Common Name (eg, your name or your server's hostname) []:server
Email Address [me@myhost.mydomain]:kravchenko@xxxxxx.dp.ua
| Шаг 4
Создайте сертификат X.509 для сервера. На вопросы отвечайте как и на предыдущем шаге, после этого введите пароль и имя организации, и подтвердите подпись:
# ./build-key-server server
Generating a 1024 bit RSA private key
...........................++++++
..........................................++++++
writing new private key to 'server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [KG]:UA
State or Province Name (full name) [NA]:Dnepropetrovsk
Locality Name (eg, city) [BISHKEK]:Dnepropetrovsk
Organization Name (eg, company) [OpenVPN-TEST]:server
Organizational Unit Name (eg, section) []:server
Common Name (eg, your name or your server's hostname) []:server
Email Address [me@myhost.mydomain]:kravchenko@xxxxxx.dp.ua
| Шаг 5
Создайте ключ Диффи Хельман:
Шаг 6
Выйдите из оболочки sh и создайте ключ для tls-аутентификации:
# exit
# openvpn --genkey --secret \
? /usr/local/share/doc/openvpn/easy-rsa/keys/server/ta.key
| Серверу достаются файлы ca.crt, dh1024.pem, server.crt, server.key, ta.key, а клиенту ca.crt и ta.key.
3. Настройка сервера
Шаг 1
Создайте 2 директории:
# mkdir /usr/local/etc/openvpn
# mkdir/usr/local/etc/openvpn/keys
| Шаг 2
Скопируйте все ключи (ca.crt, dh1024.pem, server.crt, server.key, ta.key) в /usr/local/etc/openvpn/keys.
Шаг 3
Создайте конфигурационный файл /usr/local/etc/openvpn/server.conf:
# Включаем плагин и в качестве аргумента - конфигурационный файл
plugin /usr/local/lib/openvpn-auth-ldap.so "/usr/local/etc/openvpn/openvpn-auth-ldap.conf"
port 2000
proto tcp
# На tun0 у меня провайдер PPPoE
dev tun1
ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/server.crt
client-cert-not-required
key /usr/local/etc/openvpn/keys/server.key
dh /usr/local/etc/openvpn/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0"
push "dhcp-option DNS 192.168.1.1"
#client-config-dir ccd
route 10.8.0.0 255.255.255.252
tls-server
tls-auth /usr/local/etc/openvpn/keys/ta.key 0
tls-timeout 120
auth MD5
cipher BF-CBC
keepalive 10 120
comp-lzo
max-clients 100
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
verb 3
| Шаг 4
Создайте директории и файлы, указанные в переменных status и log:
# mkdir /var/log/openvpn/
# cd /var/log/openvpn/
# touch openvpn-status.log openvpn.log
| Шаг 5
В директории /usr/local/etc/openvpn/ создайте файл openvpn-auth-ldap.conf следующего содержания:
<LDAP>
# Адрес OpenLDAP сервера
URL ldap://192.168.1.3
# Пользователь в LDAP с правом поиска
BindDN cn=manager,dc=mycompany,dc=local
# Его пароль
Password password
Timeout 15
TLSEnable no
FollowReferrals yes
</LDAP>
<Authorization>
BaseDN "ou=users,dc=mycompany,dc=local"
SearchFilter "(&(uid=%u)(objectclass=posixAccount))"
RequireGroup false
# Group у меня не используется
<Group>
BaseDN "ou=groups,dc=mycompany,dc=local"
SearchFilter "(|(cn=developers)(cn=artists))"
MemberAttribute uniqueMember
</Group>
</Authorization>
| Шаг 6
Для запуска OpenVPN внесите в файл /etc/rc.conf строки:
openvpn_enable="YES"
openvpn_if="tun"
openvpn_configfile="/usr/local/etc/openvpn/server.conf"
openvpn_dir="/usr/local/etc/openvpn"
| Шаг 7
Внесите изменения в конфигурационный файл BIND, чтобы VPN-клиенты могли использовать DNS 192.168.1.1. К перечисленным сетям в переменной allow-auery добавьте сеть 10.8.0.0/24:
allow-query { 192.168.1.0/24; 127.0.0.1; 10.8.0.0/24; };
| Шаг 8
Добавьте правила в межсетевой экран:
${FwCMD} add allow all from any to me dst-port 2000
${FwCMD} add allow all from 10.8.0.0/24 to ${lan_net}
${FwCMD} add allow all from ${lan_net} to 10.8.0.0/24
| Шаг 9
Запустите OpenVPN:
# /usr/local/etc/rc.d/openvpn start
| 4. Настройка клиента Windows XP
Шаг 1
Скачайте и установите openvpn-2.0.6-gui-1.0.3-install.exe
Шаг 2
Создайте конфигурационный файл C:\Program Files\OpenVPN\config\openvpn.ovpn. И скопируйте в эту директорию сертификат ca.crt и ключ ta.key.
auth-user-pass
dev tun
proto tcp
# Внешний IP сервера OpenVPN
remote 22.22.22.22
port 2000
client
resolv-retry infinite
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
tls-client
tls-auth "C:\\Program Files\\OpenVPN\\config\\ta.key" 1
auth MD5
cipher BF-CBC
ns-cert-type server
comp-lzo
persist-key
persist-tun
push "dhcp-option DNS 192.168.1.1"
verb 3
| Шаг 3
Подключитесь к серверу OpenVPN. Для этого:
1. Нажмите правой кнопкой мыши на иконке «OpenVPN GUI» --> «Connect».
2. На приглашение ввести логин и пароль, введите свой логин и пароль в домене (LDAP-е).
Примечание! При таких настройках клиенту не будет выдаваться шлюз по умолчанию, только IP, DNS.
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
|
Комментарии пользователей [10 шт.]